一、Course Description (課程說明)
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:


Section 1: Introduction to Cross-Platform Development with Flutter and Dart
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.

Section 2: Exploring AI Fundamentals and Services
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.

Section 3: Software Design Process and User-Centric Development
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.

Prerequisites:
To maximize your success in this course, it is essential to have a solid
foundation in an object-oriented programming language, such as C++ or Java, and
familiarity with data structures.

二、Textbook (指定用書)
[1] Lecture notes

三、References (參考書籍)
N/A.

四、Teaching Method (教學方式)
Lectures and labs.

五、Syllabus (教學進度)
Section 1: Introduction to Cross-Platform Development with Flutter and Dart (~10
weeks)
Section 2: Exploring AI Fundamentals and Services (~3 weeks)
Section 3: Software Design Process and User-Centric Development (~3 weeks)

六、Evaluation (成績考核)
Labs: 40%
Design demo (with usability testing): 30%
Implementation demo: 30%
Bonus: up to 5%