CPSC 225: Intermediate Programming
Department of Mathematics and Computer Science Hobart and William Smith Colleges Spring 2012. Instructor: David J. Eck (eck@hws.edu) Course Handout: http://math.hws.edu/eck/courses/cpsc225_s12.html Monday, Wednesday, Friday, 11:15--12:10 PM, Room Eaton 111. Lab: Thursday, 1:30--2:55, Gulick 208. Office Hours for Spring 2012 (Lansing 313, but also check Lansing 310): Tuesday, 1:30--2:55 I will also usually be in: Wednesday, 1:55--2:50 MWF, 10:10--11:05 Thursday, 10:20--11:45 Tuesday, 11:55--1:20
Labs Lab 1, January 19
Spellcheck (and Eclipse)Lab 2, January 26
Sort/Search ExperimentsLab 3, February 2
RecursionLab 4, February 9
Linked ListsLab 5, February 16 Lab 5, February 23
Some Links:
- Introduction to Programming Using Java. The textbook for the course. We will cover Chapters 8 through 13.
- PDF version of the textbook. Good for on-screen reading.
- Programming style guide. Style requirements for all programs that you write for this course.
- Java 6 API, local copy, for on-campus use only. From off-campus, use Oracle's copy.
- About Linux -- Local information about using Linux at HWS.
- Download Site for JDK, where you can download a Java programming system for Windows. Download the JDK for Java SE 7. Note that we will be using JDK 6 in class, but that JDK 7 should also work fine for the course.
- Download Site for Eclipse, which we will use for programming in the course. You want the "Eclipse IDE for Java Developers".
Week 1: January 18 and 20
This shortened three-day week is an introduction to the course. We will begin with a little review on Wednesday. We will then start in on Chapter 8. We will only be covering Section 8.3 and Section 8.5 in that chapter. However, I encourage you to read the entire chapter.
Section 8.3 covers exceptions and the
try..catchstatement in more detail than you've probably seen, and it covers checked exceptions and mandatory exception handling. Section 5 is an introduction to the "Analysis of Algorithms," which considers efficiency of algorithms in terms of the amount of time that they take to run for an input of a given size. This is an important consideration that we will use throughout the course when evaluating algorithms. It might be next week before we get to Section 8.5.The first lab of the course meets on Thursday at 1:30, in Gulick 208.
Week 2: January 23, 25, and 27
On Monday, we will continue to work on Section 8.5, Analysis of Algorithms. We will then work briefly on Section 8.3 (try..catch and exceptions), which we didn't cover last week after all. Sometime on Wednesday, we should get to Section 9.1, which covers recursion. We will spend a week on recursion, so the only reading for the week is Section 9.1.
The lab this week will be on the running time of sorting and searching algorithms.
Week 3: January 30; February 1 and 3
We continue with Section 9.1 for the first part of the week. I will introduce turtle graphics and show how to use it to do recursive drawing. You will be doing some of that yourself in the lab. We will also talk abou the QuickSort sorting algorithm, which uses recursion.
By Friday at the latest, we will start Section 9.2 which covers linked data structures and, in particular, linked lists.
Week 4: February 6, 8, and 10
We will finish Section 9.2 by looking at more operations on linked lists. We will be moving on to Section 9.3 by Wednesday. Section 9.3 covers two important data structures, stacks and queues, and some of their applications. It also introduces an important general concept, Abstract Data Types (ADTs). Stack and queues are abstract data types that can be implemented in several ways. We will see how to implement a stack using either an array or a linked list.