CSCE 3193
Class Notes
Spring 2011

Electronic copies of handouts and other lecture materials will be posted here whenever available. In an effort to save paper, please read these notes online.

  • Lecture 2 Notes: Why we study programming languages.

  • Lecture 3 Notes: History of programming languages

  • Lecture 4 Readings: Read Core Java, Chapter 3: Fundamentals of Programming in Java
  • Lecture 4 Notes: Java Basics
  • Lecture 4 Presentation: Java Basics

  • Lecture 5 Notes: Parameter Passing in Java
    Main program to test Movie class methods and parameter passing
    Movie class
    MyInt class

  • Lecture 6 Readings: Chapter 3: Strings and Input Output, pp 53 - 70
  • Lecture 6 Presentation: Strings in Java (only slides 5 & 6)
  • Lecture 6 Handout: Sample File Input/Output code

  • Lecture 7 Readings: Chapter 4: Objects and Classes
  • Lecture 7 Presentation: OOP - Encapsulation

  • Lecture 8 Readings: Java 2.0 Class Libraries
  • Lecture 8 Readings: BufferedReader: Java BufferedReader Class
  • Lecture 8 Readings: StringTokenizer: StringTokenizer
  • Lecture 8 Readings: PrintWriter Class: Java PrintWriter Class
  • Lecture 8 Presentation: Java I/O

  • Lecture 9 Readings: Chapter 5: Inheritance
  • Lecture 9 Presentation: OOP - Inheritance
  • Lecture 9 Handouts: Directory of code for Entertainment (superclass) and Movie2 and Concert (subclasses)

  • Lecture 10 Readings: Chapter 6: Interfaces
  • Lecture 10 Handouts: Sample Interface Code
    Learning the Collections Class Sample Code

  • Lecture 11 Readings: Java's Collection Framework (Introduction; Interfaces)

  • Lecture 12 Readings: Implementing a Queue Class in Java
  • Lecture 12 Handouts: Queue class built by extending Vector class
    Queue class built by extending LinkedList class
    Standalone Queue class that encapsulates a LinkedList
    Standalone Queue class that encapsulates a LinkedList and uses Exceptions
    The Exception used by the Queue3b class
    Standalone Queue class that encapsulates a LinkedList and extends AbstractQueue

  • Lecture 13 Readings: Data Structures in Java, slides: 5 - 9
  • HashTables (up to and including open addressing)
  • Main program to demonstrate using a LinkedList with Parent and Subclasses; Also, use of an Iterator

  • Lecture 14 Readings: In-class lecture notes on hashtables
  • Main program to demonstrate using HashMap

  • Lecture 15 Readings (March 2):
  • Comparable Interface (needed by key class of HashMap)
  • JavaDoc, Set, HashTree, Comparable

  • Lecture 16 Readings (March 7):
  • Textbook Chapter 11: Exceptions, pp. 552-571
  • Online Tutorial for Exceptions

  • Lecture 17 Readings: Memory Model
  • Exercise

  • Lecture 18 Readings: Threads

  • Lecture 19 Readings: Concurrency

    Information about Perl

    Picking up Perl HTML Version
    Regular Expressions in Perl
    CGI Module
    Sample CGI Code
    Can Perl be compiled?

  • Lecture 20 Readings:
    Perl: Getting Started
    Working with Scalars
    Working with Scalars
    In-class lecture notes

  • Lecture 21 Readings:
    Files in Perl
    Optional: More extensive discussion of files in Perl

  • Lecture 22 Readings: Regular expressions - matching
    Regular Expressions in Perl
    More in depth reference on Regular Expressions - Sample matching code

  • Lecture 22 Readings: Regular expressions - substitutions; split;
    Tutorial on substitutions - Sample split code - Simple substitutions code - Sample conversion code

  • Lecture 23 Readings: Arrays
    Arrays - Sample array code

  • Lecture 24 Readings: Hashes
    Hashes - Sample hash code - Sample array and hash code

  • Lecture 25 Readings: CGI Programming in Perl
    Presentation slides 17 - end
    Perl program -
    Perl CGI program - tinyPL.cgi (file renamed .txt so you can view it)
    Form that calls tinyPL.cgi - tinyPL.html (do View Source)
    Parameter passing example - adduserPL.cgi
    Form that calls adduserPL.cgi - adduserPL.html (do View Source)
    Parameter passing example - adduser_filesPL.cgi
    Form that calls adduser_filesPL.cgi - adduser_filesPL.html (do View Source)

  • Lecture 26 Readings: Required
    Presentation slides 1 - 16 - Sample script that includes another script - Perl script that is included by above program

  • Lecture 27 Readings: Optional content
    Lots of examples of cgi programming in different languages - FYI - Sample program that uses a module - Sample module

    Information about Scheme

    A simple, interactive, tutorial. Great place to start!
    Running DrRacket on Turing
    A nice list of resources from a similar course
    Comprehensive documentation from

  • Lecture 28 Readings:
    Basic Data Types in Scheme
    Type-Checker and Arithmetic Predicates in Scheme: Sections 4.1 and 4.2
    Section on What is Scheme; Data Types; Structure; Lists

  • Lecture 29 List Manipulation:
  • Examples:
    Read up until functions

  • Lecture 30 Functions, Conditionals:
  • Examples:
    Read the rest of the examples
    Section on Conditionals; Functions

  • Lecture 31 Readings:
    Section on Tail Recursion
    Tail Recursion Code
    Association Lists
    Association List Code

  • Lecture 32 Readings:
    Functions as Data, Trees
    Functions as Data Code
    Binary Search Tree Code