CPSC 225: Intermediate Programming
Department of Mathematics and Computer Science
Hobart and William Smith Colleges
Instructor: David J. Eck (email@example.com)
Course Handout: http://math.hws.edu/eck/courses/cpsc225_s19.html
Monday, Wednesday, Friday, 9:05–10:00 AM
Lab: Tuesday, 11:55–1:20
|Lab 1, January 22
Spellcheck / Eclipse
|Lab 2, January 29
|Lab 3, February 5
|Lab 4, February 12
|Lab 5, February 19
|Lab 6, February 26
|Lab 7, March 5
|Lab 8, March 12
|Lab 9, March 26
|Lab 10, April 2
Streams / eCards
|Lab 11, April 9
|Lab 12, April 23
Some Useful Links
- Introduction to Programming Using Java, Version 8.0 (the textbook for the course).
- PDF version of the textbook, good for reading on-screen.
- Java 8 Documentation
(local access only -- from off-campus use Oracle's copy: Documentation
- JavaFX API Documentation.
- A Style Guide for Java Programming.
- Download Site for JDK 8,
where you can download a Java programming system for Windows, if you want to be able to compile Java programs on
your own computer. You want to download the "Java SE Development Kit," and it is very likely that you want the version for Windows x64.
(For Mac OS, you should be offered the choice to install
Java the first time you try to use it, but it also available at the above web site. For Linux, it should be installable using
your regular software installer, but it is also available on the download site.)
- Download Site for Eclipse, which we will use for programming.
Several different download packages are available.
Grab the "Eclipse IDE for Java Developers" if you want to use it on your own computer.
Note that this will be a newer version of Eclipse than we are using in the lab, but the differences are minor.
Thirteenth Week: April 22, 24, and 26
We will continue work on Chapter 12, covering much of the material
in Section 12.1 through
We will not cover Section 12.5.
The lab for Tuesday will use networking
and threads. This is the last lab assignment for the course. Next week's
lab period will be a chance to work on your final project.
Twelfth Week: April 15, 17, and 19
There is a test on Monday, April 15. A study guide was
handed out in class last Wednesday.
After the test, we will move on to Chatper 12,
which covers threads and parallel processing.
For the lab this week, you can work on your final project, or you can continue work
on Lab 11 if you haven't finished it.
Eleventh Week: April 8, 10, and 12
After finishing up with files on Monday, we will move on to networking
and the socket API,
Your final project proposal is due in class
on Friday. There is test coming up next Monday, April 15, covering Sections 9.4
Tenth Week: April 1, 3, and 5
We will spend the week on I/O streams in general and on
using files in particular. The reading is
Section 11.2, and
Ninth Week: March 25, 27, and 29
I will spend some time on Monday talking about
which covers writing generic classes and methods. However, this material
is not used often in practice, and you are not required to learn it.
We will then spend some time on the "stream API",
a relatively new feature of Java that was introduced in Java 8.
We will probably have time to get a start on Chapter 11 on
Final project requirements were distributed in
class on the Wednesday before Spring break. Remember that you must meet with me
to discuss your ideas for a project no later than next Friday, April 5,
and a written proposal is due the following Friday, April 12.
Eighth Week: March 12, 14, and 16
We are woking on Chapter 10. For Monday and part of Wednesday, we will still be working on
Section 10.1 and
We should move on to Section 10.3,
which covers HashMap and TreeMap, by Wednesday.
Note that we will not cover priority queues (10.2.4). And, although I will
cover them briefly, you are not responsible for knowing the material in 10.3.2 and 10.3.3.
We will be doing some of the examples in Section 10.4,
but you are not responsible for knowing those specific examples.
Seventh Week: March 4, 6, and 8
We will finish Section 9.4 and then move on to Chapter 10.
(We will not cover Section 9.5.) We will finish
which covers the basic ideas of generic programming, parameterized classes,
iterators, for-each loops, and wrapper classes. (Note that you are not
responsible for knowing anything about generic programming in Smalltalk or
C++.) We should also have time to do much of Section 10.2,
which covers generic classes to represents lists and sets.
Sixth Week: February 25 and 27; March 1
There is a test on Wednesday, February 27.
A study guide was handed out in class last Friday.
Monday will be mostly review for the test. After the test, we will start
which covert binary trees, binary sort trees, and trees that represent
Fifth Week: February 18, 20, and 22
This week, we look at stacks and queues and the general idea of abstract data types.
The reading is Section 9.3.
If time permits, we will talk about JavaFX for part of the class on Friday.
Reminder: There is a test coming up on Wednesday of next week.
Fourth Week: February 11, 13, and 15
This week, we begin our study of Linked Data Structures. We will spend
much of the week on linked lists,
We should have time near the end of the week to talk about
"lambda expressions," Section 4.5,
and how they are used to define event handlers in JavaFX programs.
Third Week: February 4, 6, and 8
After finishing up analysis of algorithms, the main topic for the
week is recursion, Section 9.1.
We will look at some basic examples of recursion, including a recursive version of
binary search and Quicksort, a recursive sorting algorithm. On Monday,
in preparation for the lab on Tuesday,
we looked at "turtle graphics" and how to draw fractals with turtle
graphics and recursion.
Second Week: January 28 and 30; February 1
On Monday, we will continue to talk about material from Chapter 5, including
inheritance, polymorphism, this and super, and interfaces.
For the rest of the week, we will be working on Chapter 8. The
Section 8.3, and
We will not be going into great depth on this material, but you will see
the ideas used from time to time for the rest of the course.
First Week: January 23 and 25
Welcome to the course!
The first meeting for the class will actually be a lab on Tuesday, January 22. It will
be a regular programming lab, with an assignment that will be due the following week. The
assignment will give you a chance to
review some of the material from Introductory Programming that you should already know.
The lab will also introduce the Eclipse development environment, in case you are not
familiar with it.
On Wednesday, we will talk about inheritance and class hierarchies. This will be new
material for some of you, but even if it is not new to you it won't hurt to review it.
The reading for this material is Section 5.5.
You should also read Section 5.6,
Section 5.7, and
Section 5.8, if you are
not already familiar with the material in those sections. We will be talking about that
material on Friday.
The required reading for the first week also includes the
course handout and the
style guide that will be handed out on the first