Instructor: Suradet Jitprapaikulsarn
Office: EE-408
E-mail: suradet at nu.ac.th
This is the second programming course. In this course, the focus is on object-oriented programming. For most of the course, we will use Java as a vehicle to explore the object-oriented world. After the students become familiar to the new way of thinking, we will change the way we write a program from an individual component perspective to a group of collaborative components using design patterns. We then repeat the same process but in an accelerating manner with different object-oriented programming languages. In addition, the software engineering practices are emphasized throughout the course.
This is an object-oriented programming course with emphasis on systematic thinking process. After completing this course, students should:
There is no required textbook for this course. However, the books on various object-oriented programming languages may be helpful for completing the assignments of this course. The students benefit more from completing their own assignment than from lecturing. In other word, self-teaching is the key to be successful in this course.
| Week No. | Topics |
| 1 | Welcome to Object-Oriented World |
| 2 | Recording our thoughts using UML |
| 3 | Implementing objects with Java |
| 4 | Union and Composite Patterns |
| 5 | Command Pattern |
| 6 | Interpreter Pattern |
| 7 | Visitor Pattern |
| 8 | Midterm Examination |
| 9 | Recursion |
| 10 | Inner Class |
| 11 | GUI |
| 12 | Exception Handling |
| 13 | Repeat weeks 3 – 5 in C#, Python, Ruby |
| 14 | Repeat weeks 6 – 7 in C#, Python, Ruby |
| 15 | Repeat weeks 9 – 12 in C#, Python, Ruby |
| 16 | Conclusion |
| 17 | Final Examiniation |
The course grade will be based on
|
Item |
Weight |
|
Assignments |
20% |
|
Object-Oriented Programming Articles Reading |
20% |
|
10% |
|
|
Quizzes |
10% |
|
Exams |
40% |
The above description is only
tentative; it may be changed at the
instructor’s discretion.