CISC 3120

Course Calendars

Subject to revision!

I am teaching two sections of this course. The two Google calendars below show how to map the daily class topics to our class meetings. For example, the Thursday evening class will be covering Class 1 and Class 2 on Thursday, February 2; the T/Th class will be covering Class 1 on January 31, and Class 2 on February 2.

Please note the scheduled time for the final exam (from the College's final exam scheduling grid), and make sure that your exam for this class doesn't conflict with others in your schedule; I will not be able to accommodate rescheduling your final.


The resources listed for each day are items I expect you to have read/prepared before class meets.

Evening students: remember, you will be responsible for two classes of preparation each day we meet!

Class Topic Resources
Class 1 Introduction to the Class and to Team-Based Learning

Read this in order to get a sense of how the class is going to run.

Here is the text of the welcome email I sent to the class before the semester started.

Class 2 Exercise 1: Crash Course in Java and Eclipse Read the book's Introduction. Ignore the instructions on "Setting Up Java." Read Using Eclipse instead.
Fill out this short survey.
Read About CodeLab.
Register for and begin working on CodeLab, here.
Instructions for Exercise 1 will appear here.
Class 3 Unit 1: Java Basics.
iRAT and tRAT.
Read Chapters 1 and 2.
Class 4 Unit 1 Application Activities Read Chapter 3.
Class 5 Unit 1 Application Activities Read Chapter 4.
Today we'll also decide on peer evaluation criteria.
Class 6 Exercise 2: GitHub
Project 0 assigned

Read About Github.
Read the first two chapters of the git book ("Getting Started" and "Git Basics"). Additinally, consider watching any of the videos on that page.
Read Getting Your Project on GitHub. But you don't need to mess with GitHub Desktop (unless you want to); Eclipse will let us do all that stuff without leaving our development environment. (We'll work on that in the lab today.)

In preparation for Project 0, read About Documentation and Style
Today's instructions and notes will appear here.
Class 7 Unit 2: Java-Specific Language Features.
CodeLab exercises due.
iRAT and tRAT.
Read Chapters 5 and 6.
Class 8 Unit 2 Application Activities Read Chapter 7.
Class 9 Unit 2 Application Activities
Project 0 due
Read Chapter 8.
Class 10 Unit 2 Application Activities
Class 11 Exercise 3: War (and Peace)
Midterm Peer Evaluations
Read Chapter 9.
The Exercise 3 instructions will appear here.
Here is an extra-credit opportunity related to exercise 3.

Afternoon section peer evaluation.
Evening section peer evaluation.

Class 12 Unit 3: Intro to GUIs and Swing.
iRAT and tRAT.
Read Chapter 12. The RAT will cover through p. 368.
Class 13
CodeLab exercises due (March 16)
Unit 3 Application Activities Read Chapter 13.

Here is a place for you to provide anonymous feedback about the course so far. (We'll discuss in a couple weeks.)

Class 14 MIDTERM EXAM Here is a review sheet.
Class 15 Unit 3 Application Activities
Class 16 Exercise 4: Swing.

Review Chapter 13 (which is a kind of manual for several Swing components).

Here is today's exercise.

Class 17 Unit 4: Introduction to Design Patterns
iRAT and tRAT
Read the wikipedia page on design patterns. Then,read this discussion about how a few patterns can work together to create very powerful code. (In particular, note that these patterns are "widely used in the design of the Java library classes.")
Class 18 Unit 4 Application Activities
Project 1 assigned

Read the individual pages on the iterator pattern (which is almost too straightforward—it's easy to miss the point— and the decorator pattern (this may be a little more challenging to follow).

Here are the instructions for Project 0.

Class 19 Unit 4 Application Activities Read the Wikipedia overview of the Model-View-Controller design pattern.
Also, some slides about MVC in Java (slides 1-26, and 33), and a discussion of a simple MVC example in Java (slides 1-5).
This code+video tutorial might also be helpful. (Note that the "calculator" implemented here is quite different from ours, so I wouldn't recommend borrowing his code. Also, this tutorial uses a slightly different approach to MVC than the approach I "officially endorse." We'll discuss...)
Finally, the Wikipedia overview of the Observer/Observable pattern in Java
Class 20 Unit 5: Introduction to I/O and Networking
iRAT and tRAT
Read Chapter 11. (Yes, it's on exceptions, which is a necessary precursor to talking about I/O and Networking. This chapter will be the subject of the RATs.)
Class 21 Unit 5 Application Activities

Last day to withdraw.

Read Chapter 14. Download the book's example code here (if you haven't already) and read the BeatBoxSaveOnly from Chapter 14
Class 22 Unit 5 Application Activities
Project 1 due at 11:59pm, May 3
Read Chapter 15, pages 471-489
Class 23 Exercise 5: Networking. -The exercise.
Class 24 Unit 6: WebSockets
iRAT and tRAT

By popular demand, here is a short reading guide for Unit 6. Start here.

The rest of the readings:

  • A lengthy but detailed tutorial from Oracle. (For the complete example code for this tutorial, look here or download the EE SDK here
  • A simple example with a Java server and JavaScript client, part 1, part 2.
  • An example with a Java client.
Class 25 Unit 6 Application Activities.

Here will be a link to today's code. As we explore how to send structured messages (not just plain text), Java's JSON API will be really helpful. Read over this tutorial, focusing on the sections "Create JSON object using Object Model," "Creating JSON Array with Object Model," and "Read JSON Object using Object Model." Also, here is the offical API documentation. Note that the WebCheckers project and today's code include all the libraries you need to wrangle JSON.

Also, if you're curious about how annotations work, the Wikipedia entry has a pretty good summary. Note that it includes some Java stuff we haven't discussed in class—none of this will be on the exam! It's just for your exploration.

Class 26 Unit 6 Application Activities
Class 27 Application Activities Afternoon final peer evaluation
Evening final peer evalution
Class 28 Review
Here is a review sheet for the final.