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
|