CS365 -- Programming Languages and Systems

Brad Vander Zanden

Lecture Notes


  • Garbage Collection
  • Topics (Days) Textbook Readings Online Notes Online Lectures
    Course and Java Introduction (1) Scott Ch 1.1-1.3
    1. C++ versus Java
    2. Java Basics
    You only need to view these if you missed the in-class lecture
    1. JavaVsC++
    2. Lecture-1-9-Introduction
    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.
    Also review parameter passing at the bottom of the Java Basics notes. They are pretty basic so there is no lecture over them.

    Tues 1/14

    1. YourFirstJavaProgram (6:45)
    2. VariablesTypesCoping (6:42)
    3. Strings (4:27)
    4. Arrays (9:36)
    5. Classes (19:43)
    Thurs 1/16: Enumerated Types (15:02)
    Java I/O (1) none
    1. Brad's Cliff Notes
    2. Java I/O-- pay particular attention to Java's Scanner class
    1. ConsoleInput (16:02)
    2. ConsoleOutput (8:37)
    3. FileIO (13:58)
    Java Collections Library (1) None Collections Tutorial Collections (30:25)
    Inheritance (3) Scott: Chapter 9
    1. Java's Inheritance System
    2. Different Types of Inheritance in Other Languages
    3. Implementation Issues
    4. Java's Interface/Inheritance Tutorial
    Tues. 1/28: Inheritance (43:03)

    Thurs. 1/30

    1. Java Inheritance (18:33)
    2. Interfaces (12:47)

    Tues. 2/4

    1. C++-Classes-Inheritance (24:50)
    2. Multiple-Mixin-Inheritance-Composition (25:51)
    3. Inheritance Implementation (16:10)
    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
    Thurs. 2/6
    1. Modules-C-C++ (18:37)
    2. Packages-Java (20:06)
    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
    Tues. 2/11
    1. Generics C (4:11)
    2. Generics C++ (18:42)

    Thurs. 2/13 Generics Java (32:02)

    Exception Handling (2) Scott: 8.5 -- Exception Handling
    1. Exception Handling
    2. Exception Handling Tutorial
    Tues. Feb. 18
    1. C++ Exception Handling (20:44)
    2. Exception Handling C++ SafeArray Example (17:31)

    Thurs. Feb. 20

    1. Java Exception Handling (27:05)
    2. C Exception Handling Watch from 29:45-1:02:50
    Intro to Event-Based Programming 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
    Tues. Feb. 25: EventProgramming (34:15)
    Layout algorithms for widgets (1) none Java Layout Managers Layout Managers
    Widgets and Message Dialogs (1) none
    1. widgets
    2. Java Swing Components
    Widgets (1:05-51:40): This video should be fine on iTunesU but on YouTube it may have audio/video synch problems
    The MVC Model (1) none
    1. Setting up an MVC Application
    2. Sample Code for an MVC Application
    MVC (27:39)
    Custom Painting and Event Handling (1) none Custom Painting Custom Graphics
    Names, Scopes, and Binding (1) Scott: 3.1-3.3, 3.5, 3.6 names, scopes, and bindings Names, Scopes, and Bindings
    Data Types and Type Checking (2) Scott: 7.1-7.2, 7.4, 7.7
    1. types
    Thurs. 3/27: Type Sytems

    Tues. 4/1

    1. Types-Records-Arrays-Pointers
    2. Garbage Collection
    Functional Languages (4) Scott--10, 6.6
    1. functional programming
    2. scheme
    3. other functional issues
    1. Thurs 4/3: Functional Language Intro
    2. Tues 4/8:
    3. Thurs 4/10: Functional-Languages-Evaluation-Order
    4. Tues 4/15: Functional-Languges-Higher-Order-Functions
    Concurrency (3) Scott--12
    1. Concurrency in Java
    2. Java Sockets