305272 Advanced Computer Programming (2-3)

Academic year: 2005              Semester: 2

 

Instructor Contact Information

Instructor: Suradet Jitprapaikulsarn

Office: EE-408

E-mail: suradet at nu.ac.th

 

Course Overview

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.

 

Course Objectives

This is an object-oriented programming course with emphasis on systematic thinking process.  After completing this course, students should:

  1. be able to apply the object-oriented design concept with various programming languages.
  2. be able to use design patterns to guide the object-oriented design.
  3. be able to apply the software engineering practices to computer programming.
  4. have data that show the improvement of their personal performance and the quality of their products.

Instructional Approach

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.

 

Suggested Textbook

  1. K. Barclay and J. Savage, Object-Oriented Design with UML and Java, Elsevier, 2004, ISBN 0-7506-6098-8
  2. Robert Cartwright, Element of Object-Oriented Program Design, Rice University, 2003
  3. Watts S. Humphrey, Introduction to Personal Software Process, Addison-Wesley, 1997, ISBN 0-201-54809-7

 

Course Outline

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

Course Evaluation

The course grade will be based on

Item

Weight

Assignments

20%

Object-Oriented Programming Articles Reading

20%

Notes & Journal

10%

Quizzes

10%

Exams

40%

 

Academic Policy

 

Notes

The above description is only tentative; it may be changed at the instructor’s discretion.




Last update 12 November 2005, 00:40
Copyright © 2005 Suradet Jitprapaikulsarn