Computer Science 106
Object-Oriented Programming
for Graphical User Interfaces
Fall, 2007
Syllabus



Instructor

Robert J.K. Jacob
Dept. of Computer Science
Halligan Hall
http://www.cs.tufts.edu/~jacob/

Textbooks

Required:
  • Dennis Kafura, Object-oriented Software Design and Construction with Java, Prentice Hall, 2000. ISBN 0 13 011244 X.
Recommended:
  • Y. Daniel Liang, Introduction to Java Programming, Prentice Hall, 2004 ("Core edition").
  • (Or another introductory book on Java that you prefer.)

WWW Page

http://www.cs.tufts.edu/~jacob/106/

Course Work

Course work will consist of programming projects, homework problems, and exams.

Programming will mainly be in Java, using the AWT and Swing toolkits.

Grading

Based mainly on programming projects, also other homeworks, exams, and class work.

Prerequisite

Computer Science 15.

Topic Outline

Concepts of Object-oriented Programming
  • Classes and instances
  • Encapsulation of code and data
  • Abstract data types
  • Operator overloading
  • Polymorphism
  • Inheritance: single and multiple
Introduction to Object-oriented Programming with Java
  • Classes
  • Instance variables
  • Methods
  • Constructors
  • Inheritance
Java Syntax and Usage
  • Features of Java
  • Differences between C++ and Java
  • Compile-time vs. run-time binding
  • Programming practices
Introduction to Graphical User Interface (GUI) Programming
  • GUI programming: callback style, event loop
  • Java AWT and window system
  • Java Swing toolkit
  • Java Swing widgets
GUI Software Design and Implementation in Java
  • Object-oriented design of GUI's
  • Widgets as objects: buttons, sliders, scrollbars, menus
  • Instantiation of widgets, encapsulation of widgets
  • Main loop
  • Callback procedures
  • Examples: Using Java to build GUI's
Object-Oriented Design
  • Unified Modeling Language (UML)
  • CRC Method
  • Model-View-Controller Pattern
  • Dialogue Independence
Additional Topics (Optional)
  • 3D Graphics
  • Applets
  • Creating Widgets
  • Threads
Object-oriented Programming Concepts in Other Languages
  • Dynamic vs. static binding
  • Pure vs. hybrid object-oriented model
  • Memory management, garbage collection
Project
  • Object-oriented implementation of a graphical user interface in Java