CPSC 225 Intermediate Programming Spring 2020

CPSC 225 Schedule

Reading is to be done for the class period where it is listed.

Dates for things in light gray are for planning purposes and may be adjusted slightly.

 Assignments

Week 1: 1/21-1/24

Topics: introduction; using objects

   

Wed Slides and Examples:    

Thu Lab Preparation: (do before lab)
Make sure you can log into your CS account - contact Prof. Eck (eck@hws.edu) if you have forgotten your password or have other problems.
lab 1
Eclipse

Fri Reading:
  • Eck section 1.5
  • Shiffman, Learning Processing, pages 121-123 (available as the file objects.pdf in the "Files" section on Canvas)
  • Eck sections 5.1.1, 5.2.3, 5.3.1

Note that while the second reading is about a language called Processing rather than Java, everything that is said about the concepts of objects and classes applies to Java as well.

Slides and Examples:


Week 2: 1/27-1/31

Topics: using objects; creating classes

 

Mon Reading:
  • Eck sections 5.1.2, 5.1.4

Slides and Examples:

   

Wed Reading:
  • Eck sections 5.1-5.2

Slides and Examples:

   

Thu   lab 2
Writing Classes

Fri Slides and Examples:

Week 3: 2/3-2/7

Topics: contracts, correctness, and robustness; program design with classes; relationships between classes

 

Mon Reading:
  • Eck sections 8.1, 4.7.1, 8.3.1-8.3.4

Slides and Examples:

 

Wed Reading:
  • Eck sections 8.2.1-8.2.3, 8.4.1
Slides:
  programming assignment 1
Omino!


Omino resubmit information (and comments)

Thu   lab 3
Preconditions and Invariants

Fri Reading:
  • Eck sections 5.3.4, 5.4
  • Eck sections 5.5, 5.7.1, 5.7.3

We will only briefly consider these topics now, and will return to them in more depth later in the course. For the second reading in particular, read (only) for the high-level ideas - focus on what terms like inheritance, polymorphism, subclass, abstract class, and interface mean and don't worry about the technical details of syntax.

Slides:


Week 4: 2/10-2/14

Topics: collections: ADTs, using the Java Collections classes, fundamental algorithms (searching, sorting, shuffling)


Mon Reading:
  • Eck section 9.3

Slides:

 

Wed Reading:
  • Eck section 7.3
  • Eck sections 10.1.3-10.1.7, 10.2-10.3

Slides and Examples:

 

Thu Slides: lab 4
Java Collections

Fri Reading:
  • Eck section 10.2.2

Slides and Examples:


Week 5: 2/17-2/21

Topics: binary trees; streams


Mon Slides and Examples:  

Wed Slides and Examples:  

Thu Slides: lab 5
Binary Trees

Fri Reading:
  • Eck sections 11.1, 11.2.1-11.2.2

Slides:


Week 6: 2/24-2/28

Topics: implementing collections - arrays

 

Mon Reading:
  • Eck sections 3.8.4, 7.2.4

Slides and Examples:

  programming assignment 2
File Compression

Wed Slides:  

Thu
exam 1 - Gulick 2000
(during the lab period)

Fri Slides:

Week 7: 3/2-3/6

Topics: linked lists

 

Mon Reading:
  • Eck section 9.2 (don't worry about the examples using recursive methods, such as printReversed)

Slides and Examples:

 

Wed Examples:  

Thu   lab 6
Linked Lists

Fri Slides and Examples:

Other Materials:


Week 8: 3/9-3/13

Topics: linked lists; testing; implementing collections - arrays


Mon Slides and Examples:  

Wed Reading:
  • Eck section 7.4

Slides and Examples:

Other Materials:

 

Thu Slides: lab 7
Testing

Fri Slides:

Spring Break: 3/14-3/22


Week 10: 3/23-3/27

Topics: implementing collections - arrays, linked structures

lab 7
Testing

(continued)

Mon Other Materials: programming assignment 3
Solitaire Encryption

Wed Reading: Other Materials:
  • solitaire muddiest points - see the "solitaire Q&A" discussion board on Canvas
Do the reading, review the slides, and try the self-test exercises in the slides before class. Come to class, post on the discussion board on Canvas, and/or come to office hours if you have questions about the material or the self-test exercises.

Thu   lab 8
BSTs

Fri From Class:

Week 11: 3/30-4/3

Topics: analysis of algorithms


Mon Reading: From Class:

Wed From Class:

Thu   lab 9
Algorithm Detective

Fri no new material in class today

Week 12: 4/6-4/10

Topics: designing programs


Mon Reading: From Class:

Wed Reading: From Class:  

Thu   lab 10
Program Design

Fri From Class: final project - design
Adventure

Week 13: 4/13-4/17

Topics: inheritance and polymorphism


Mon no new material in class today

Wed no new material in class today

Other Materials:


Thu
exam 2

Fri Reading:
  • Eck sections 5.5.1-5.5.3, 5.6
  • inheritance (includes self-test exercises)
From Class:

Week 14: 4/20-4/24

Topics: inheritance and polymorphism

 

Mon Reading: From Class:  

  final project
Adventure
Wed Reading: From Class:  

Thu   lab 11
Inheritance

Fri Reading: From Class:

Week 15: 4/27-5/1

Topics: recursion


Mon Reading:
  • Eck section 9.1
  • recursion (includes self-test exercises)
From Class: Other Materials:

Wed Reading: From Class:

Thu   lab 12
Recursion

Fri Optional Reading: From Class: Other Materials:

Week 16: 5/4

Topics: wrapup


Mon no new material in class today

Reading Period: 5/5-5/7

 

Tue office hours 12-2pm  

Wed office hours 12-2pm  

Thu office hours 12-2pm  

Exams: 5/8-5/11

 

Fri office hours 12-2pm  

Sat
final exam
5/9 7-10pm
end-of-semester deadline
no work accepted after 5/9 10pm

Sun  

Mon