The aim of this course this year is to provide students with a comprehensive understanding of software design processes and hands-on experience in developing web/mobile applications integrated with AI technologies. In this course, we will explore fundamental software design concepts, development tools, and cutting-edge technologies to prepare you for the dynamic world of software engineering. The syllabus is divided into three sections:
This section will immerse you in the exciting realm of cross-platform development using Flutter and its associated programming language, Dart. Extending your existing knowledge about C++ or Java, you will delve into more advanced programming concepts such as functional programming, null safety, and asynchronous programming. Additionally, we will explore the integration of cloud services, specifically Firebase, as a robust backend solution.
In the second section, we will demystify the world of Artificial Intelligence. You will learn some basic Machine Learning and Generative AI concepts, as well as hands-on experience with available services, including the OpenAI APIs. This knowledge will empower you to ideate and implement creative term projects, fostering innovation and critical thinking.
The final section of the course focuses on guiding you through the software design process. From identifying user needs to designing core features, building prototypes, and conducting usability tests, you will gain practical skills that are vital for successful software development. This section emphasizes user-centric approaches, ensuring that your applications meet the needs and expectations of end-users.
To maximize your success in this course, it is essential to possess a solid foundation in an object-oriented programming language, such as C++ or Java, familiarity with data structures, and the ability to navigate through a nontrivial project (e.g., one hosted on GitHub).
2024/02/16 - 00. Introduction: slides announced
2024/02/27 - 01. Flutter & Dart Basics I: slides announced
2024/03/05 - 02. Flutter & Dart Basics II: slides announced
2024/03/12 - 03. Widget Theme: slides announced
2024/03/19 - 04. Rendering & Responsive UI: slides announced
2024/03/26 - 05. ML & AI: slides announced
2024/04/02 - 06. Software design: slides announced
2024/04/23 - 07. State Management & Navigation : slides announced
2024/04/30 - 08. Animations : slides announced
2024/05/07 - 09. Backend Database & MVVM : slides announced
2024/05/14 - 10. Queries & Functions : slides announced
2024/05/14 - 11. Authentication & Image Upload : slides announced
2024/05/28 - 12. Security Rules & Push Messaging : slides announced
2024/06/06 - 13. Platform Integration : slides announced
If you have any feedback, feel free to contact: shwu [AT] cs.nthu.edu.tw
About This Course... | FAQ
This lab guides you through the main idea of version control systems, the basic usage of Git, and how to submit on our GitLab.
This appendix guides you how to install Git command-line tool.
Here are some course materials and resources related to this course. For code and its details (such as assigned reading, project links, quiz, etc.) please refer to the GitLab. For online forum please refer to the eeclass system.