Course Description
This course is an introduction to the design and programming of information systems. Topics include object oriented programming, data structures, mobile system and programming, design pattern and use of software libraries. Sample applications include Internet of Things, Android app and data analytics.
Prerequisites
- 10.014 Computational Thinking for Design (For AY2020 and subsequent batches)
Learning Objectives
- Identify and describe the requirements for an information system.
- Use object-oriented methodology to produce a modular and testable design.
- Work as part of a team to produce a working system on time.
Measurable Outcomes
- Apply the key concepts of Object Oriented Programming [exams].
- Use inheritance, polymorphism, encapsulation and method overloading in designing software systems. [projects, homework, exams].
- Identify classes, members of a class and the relationships among them needed for a specific problem [projects, homework, exams].
- Implement and test basic algorithms and data structures [projects, homework, exams).
- Apply basic principles of user-interface design [projects, homework].
- Develop skills in systematic testing and debugging [projects].
- Work together in a team [projects].
Topics Covered
- Java Introduction, Android Studio, Array, String, Static Checking, Class, OOP
- Inheritance, Abstract class, Interface
- Exception
- Test-first Programming
- Recursion
- Specifications
- Regular expressions and grammers
- IoT introduction, applications
- Mobile programming with Android
- IoT software framework, programming
- IoT data analytics and programming
- OO Design pattern
- GUI