This course presents hands-on labs for students to be familiar with the software development process, techniques, and tools. Students are asked to build real, useful applications (websites and/or mobile apps) accessible to the public.
This course is intended for junior students who understand
2017/06/07 - Final project - Mobile app: slides announced
2017/06/06 - 10. React Native: slides announced
2017/05/11 - Midterm project - Web app: slides announced
2017/05/10 - 09. Database Systems: slides announced
2017/04/29 - 08. Node.js and Backend Developement: slides announced
2017/04/19 - 07. Redux: slides announced
2017/04/01 - 06. React: slides announced
2017/03/09 - 03. Landing Page and Bootstrap: slides announced
2017/03/09 - Starting Up Your Project: A Lean Approach: slides announced
2017/03/04 - 02. CSS: slides announced
2017/02/23 - 01. Web Development and HTML: slides announced
2017/02/16 - 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.
This appendix guides you how to install Git command-line tool.
Basic CSS | Selector | Layout | Stacking order
This lab quiz asks you to build a simple blog page.
Here are some tips that help you to generate Good Idea.
Here are some basic entrepreneur concept you can use in your Final project.
Product Design | Landing Page Demo | Basic Bootstrap | Layout | Flexbox | Media Queries | Containers | Grid sysem | Components | Tools
Primitive Types | Object Types | Primitives v.s Objects | Expressions | Control Flows | Methods | DOM | Event Handling
This lab quiz asks you to improve the Color game by adding two extra modes.
Node.js | Webpack | Vendor Bundling | Packing CSS | Babel | Block Scoped Variables | Arrow Functions | Default Rest Spread | Destructuring | Template String Literals | Enhanced Object Literals | Classes and Inheritance | Symbols | Iterators and Generators | Property Initializers | OOP vs. FP
This lab quiz asks you to build a Tic-Tac-Toe.
React | Components | JSX | States and Data flow | Form Elements | More JSX | Client-side Routing | AJAX | Debugging | Weather mood project
Lab to study how to run tests in our applications.
Review React and introduce cookie.
Improve weathermood project by adding one page which can show 5 days forecast.
Redux | Why Redux | Action and Reducers | Splitting Reducers | Async Actions and Middleware | React+Redux | Remarkers | DevTools
Tracing the post function of Weathermood project.
Use Redux to re-write post function.
Node.js | Events and Asynchrnonous I/O | NPM and Yarg | Debugging | RESTful API | Express | Nodemon and Postman | Cloud Computing | Docker | AWS Elastic Beanstalk
Lab to guide you how to deploy your app to AWS.
Data Modeling | SQL Language | Surviving Big Data | Text Indexing | AWS RDS and Deployment
Introduce the data model.
Introduce some advanced SQL operation.
Introduce web security.
Improve weathermood todo function by using AWS RDS (relational database system).
Here is the grading policy of Midterm project.
React Native | Styling | Event Handling | Images and Icons | Data Access and Persistence | NativeBase | ScrollView and ListView | Navigation
Lab to guide you setting up React Native.
For more course materials (such as assigned reading, quiz, etc.) please refer to the GitLab.
For online forum please refer to the iLMS system.
Alexander Osterwalder, Business Model Generation: A Handbook for Visionaries, Game Changers, and Challengers, 2010
Eric Ries, The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses, 2011
Peter Thiel, Blake Masters, Zero to One: Notes on Startups, or How to Build the Future, 2014