CS 1130: Transition to OO Programming
In-Class Lecture Summaries
This page lists a summary of the activities of each week, in reverse chronological order. This is your go-to page for downloading in-class handouts and getting caught back up when you get behind. This page is updated dynamically all semester long, with new material added as we get there.
If you want to see what future lectures in this class will be, you should look at the syllabus page.
Lab 4: Abstract Classes
23 February (Monday): Exceptions
This is the last lecture of the course. It is optional, but important if you plan to take CS 2110, or go on further we Java. We talk about Exceptions, which is how Java reports errors — and possibly recovers from them.
Reading: Chapter 10
20 February (Friday): OO Design
Today we move from just talking about GUI applications to applications in general. How we would design an application like JMan from scratch?
Reading: Sections 12.1 and 12.2
Lab 3: Using Vectors
16 February (Monday): GUI Applications
Today we talk about how to design GUI applications in Java. We have done most of this for you already in JMan, but you may find it useful. There is quite a bit here, so we may spill over into next lecture.
Reading: Sections 17.1 to 17.4
13 February (Friday): Casting and Overriding
Today we learn about the difference between real and apparent types. This is an import distinction when using inheritance in a statically typed language. It is not too difficult once you get used to it, but it requires some practice.
Reading: Section 4.2
Lab 2: Classes and Testing
9 February (Monday): Inheritance
Today we address the first truly new concept of object-oriented programming: inheritance. Inheritance is a powerful tool that allows us to build off complex programs built by others. It will be a major part of Assignment 3.
Reading: Section 1.6
6 February (Friday): Strings, Wrappers, and Containers
In this lecture, we start covering material necessary for the final assignment JMan. We introduce the concept of a container, which is an object that contains another object. Java has a lot of different containerst to chose from, and they all have their advantages and disadvantages.
Reading: Sections 2.5 and 5.1
Lab 1: Using the Java API
2 February (Monday): Methods and Constructors
In this lecture, we provide a model for evaluating methods; this concept will be extremely relevant for the second assignment. We also go into more detail about constructors and specifications
Reading: Sections 2.1 to 2.4, 2.7 and 3.5
30 January (Friday): Classes
In this lecture, we go into more detail about Classes, which are the primary programmable unit in Java. We talk about the relationship with fields and methods, and relate this to what you might have learned about functions in another programming language.
Reading: Sections 1.4 and 1.5
Lab 0: Evaluating Expressions
26 January (Monday): Types and Objects
In this class, we introduce the concept of an Object, which is what gives Object-Oriented programming its name. We present the manilla folder analogy, which is the running analogy for this course. We also introduce the notion of a Class and show how they relate to Objects.
Reading: Sections 1.1 to 1.4
23 January (Friday): Introduction