CS365 -- Programming Languages and Systems

Brad Vander Zanden

Lecture Notes


Topics (Days) Textbook Readings Online Notes
Course and Java Introduction (1) Scott Ch 1.1-1.3
  1. C++ versus Java
  2. Java Basics
Java Basics (2)
  1. Java's Memory Management Model
  2. Java's Runtime System
  3. Types, Variables, and Classes in Java
  1. Scott 3.1-3.5 -- Names, Scopes, and Bindings
  2. Scott 6.5-6.5.3 -- Loops
  3. Scott 8.3 -- Parameter Passing
  1. C++ versus Java
  2. Java Basics
  3. Jar Files

optional:
  1. Introductory Java Tutorial. Skip the link to "The Java Technology Phenomenon" unless you want to be bored out of your mind. The "Hello World" Application is good because it tells you how to download NetBeans and run a sample application.
  2. Language Basics. Any of the tutorials are good except for the one on Generics, which we will cover later in the course.
Java I/O (1) none
  1. Brad's Cliff Notes
  2. Java I/O-- pay particular attention to Java's Scanner class
Inheritance (3) Scott: Chapter 9
  1. Java's Inheritance System
  2. Different Types of Inheritance in Other Languages
  3. Implementation Issues
Module Mechanisms (1) Scott 3.3.4-3.3.5 -- Modules and Module Classes
  1. Modules in C and C++
  2. Java Modules (Packages)
  3. Sun's Java Package Tutorial
Polymorphism, Generic Functions and Data Structures (2)
  1. Scott 3.5.3, 7.1.2 -- Polymorphism
  2. Scott 8.4 -- Generic Subroutines and Modules
  1. Generics in C, C++, and Java
  2. Tutorial on Java Generics
  3. Example search using Java's generic data structures
  4. Example using a Java Scanner
Exception Handling (2) Scott: 8.5 -- Exception Handling
  1. Exception Handling in Java
  2. Exception Handling Tutorial
Intro to Event-Based Programming and the Model View Controller (MVC) Design Pattern (1) Scott: 8.7 -- Events
  1. Overview of GUI's and Event Handling
  2. Java GUI overview
  3. Java Swing
  4. HelloWorld program with marked regions
Widgets and Message Dialogs (1) none
  1. widgets
  2. Java Swing Components
Layout algorithms for widgets (1) none Java Layout Managers
Custom Painting and Event Handling (1) none Custom Painting
Names, Scopes, and Binding (2) Scott: 3.1-3.3, 3.5, 3.6
  1. names, scopes, and binding
  2. Garbage Collection
Data Types and Type Checking (1) Scott: 7.1-7.2, 7.4, 7.7 types
Concurrency (4) Scott--12 Concurrency in Java
Functional Languages (4) Scott--10
  1. functional programming
  2. scheme
  3. other functional issues