This course presents hands-on labs in the software aspect for students to be familiar with software design and development processes. The class follows a mainstream of building a useful mobile app under selected topics. We introduce some important software design concepts and development tools.
The class is divided into three parts. In the first part, we guide students to identify user needs and design core features. In the second part, we will teach fast prototyping and feedback analysis. Finally, we talk about how to make the software intelligent by introducing some basic AI and machine learning concepts.
This course requires students to have solid understanding of
2022/06/09 - 15. Lab: slides announced.
2022/06/02 - 14. Lab: slides announced.
2022/05/31 - 14. Intelligence: slides announced.
2022/05/27 - 13. Lab: slides announced.
2022/05/25 - 13. Data Analytics: slides announced.
2022/05/19 - 12. Lab: slides announced.
2022/05/12 - 11. Lab: slides announced.
2022/05/10 - 11. Design for Execution 2: slides announced.
2022/05/05 - 10. Lab: slides announced.
2022/05/03 - 10. Design for Execution 1: slides announced.
2022/04/28 - 09. Lab: slides announced.
2022/04/26 - 08. Hi-fi Prototypes: slides updated.
2022/04/14 - 08. Hi-fi Prototypes: slides announced.
2022/04/14 - 07. Apollo server: slides and lab announced.
2022/04/12 - 07. Usability-study: slides announced.
2022/03/31 - 06. Prototype: slides and lab announced.
2022/03/24 - 05. Lab: slides announced.
2022/03/22 - 05. Ideate: slides announced.
2022/03/17 - 04. Android - Internet: lab slides announced.
2022/03/10 - 03. Android - Navigation: slides and example announced.
2022/03/08 - 03. Define Problems Worthy to Solve: slides announced.
2022/03/01 - 02. Empathizing with users: slides announced and 01. slides updated
2022/02/24 - 01. Design Thinking & Android: slides and lab announced
2022/02/17 - 00. Git: slides and lab announced
2022/02/14 - 00. Introduction: 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.
Learn Kotlin and build your first app.
Thinking as a Designer
This lab guides you through the folder structure of Android.
Build apps and imporve the user interface.
First UX research, User interview, Empathy Maps
This lab guides you through Layout and RecyclerView.
Enhance your users' ability to navigate across, into and back out from the various screens within your app for a consistent and predictable user experience.
Design sprints, User stories and journey map, "How might we", Problem statement
This lab gives an introduction to Option Menu, Bottom Navigation and Navigation Drawer.
This lab review what you have learned in the last 3 weeks in android basic course.
Write coroutines for complex code, and learn about HTTP and REST to get data from the internet.
Brainstorming and the Crazy 8. Competitive Aduit and Unique Value Proposition. Refining and deciding the best solutions.
This lab introduce more details of corutine.
Keep your apps working through any disruptions to essential networks or processes for a smooth and consistent user experience.
Design Sprint Day 3. Storyboarding, wireframing and Lo-fi prototyping.
This lab introduce why we use Flow and how to produce a Flow.
Use Android Jetpack’s WorkManager API to schedule necessary background work, like backing up data or downloading fresh content, that keeps running even if the app exits or the device restarts.
Design Sprint Day 5. Low-fi Prototype. 7 Key Elements of a good plan.
Download and set up Node.js. Start with your first server.
Improved Low-fi Prototypes. Creating Mockups. Getting feedback from design critic sessions. Hi-fi prototyping & usability tests.
Generate WeatherMapApi Key and build a Apollo server with Weathermap Api.
Try to build GraphQL server with your own Database.
A cognitive model for human brain. Optimizing context or touchpoints. Optimizing decision interface.
Try to combine Android app with GraphQL apollo server.
Design for retention and Growth. Know the reason why we are addicted to social media.
Introduction to clean code and architecture. Learn the new conecept of Dependency Injection in Android.
Introduction to jetpack compose in android. Learn how to build a simple layout by jetpack compose.
Introduce to Invisible Design Part I. Deep into Data Analysis and Business Intelligent.
understanding of @Composable and how it interact with State. Learn how to use Navigation in Compose and handle complex UI logic.
Introduce to Invisible Design Part II: Machine Learning and Web/App Intelligence. Give some basic concepts of machine learning and show the open source from Github.
Trace code in online project and learn how the Snapshot object work with Flow.
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.