This is a course in the syntax and semantics of Java, with special attention to the development of well-designed generic and object-oriented programs using the Java Collections Framework (JCF).
Topics
- assertions, exceptions, input/output
- references, finals, enums, L-value vs R-value
- local vs. class vs. instance variables
- iteration vs. recursion, stack vs. heap, arrays, 2D arrays
- memory management, garbage collectors
- classes, constructors, destructors, methods
- static vs. non-static members
- member vs. local vs. anonymous classes
- association, aggregation, clone
- inheritance, polymorphism, static vs. dynamic binding
- abstract classes, abstract methods, delegation
- JCF containers, iterators
- function objects, higher-order functions
- design patterns
Methodologies
- pair programming
- modeling with UML
- documentation with javadoc
- unit testing with JUnit
- source control with Subversion
- Google Project Hosting
Pedagogy
- 2 1/2 hour lectures twice a week for 5 1/2 weeks
- 10 quizzes
- 100 programming examples
- 3 out-of-class programming assignments
- a class website
- a class Google Group
Audience
Software developers and technical managers.
Prerequisites
Knowledge of C or C++ helpful.
Book
Java in a Nutshell
David Flanagan
O'Reilly & Associates, 2005
ISBN 0-596-00773-6
Instructor
Glenn Downing did his undergraduate work at Purdue and Illinois and his graduate work at MIT, Stanford, and Texas. He teaches in the Department of Computer Science and the Department of Electrical & Computer Engineering at the University of Texas at Austin, and in industry.