CSCI 125 Fall 2024
Software Design and Implementation
Archived Class
Charles Cusack
Computer Science
Hope College
Main
Schedule
Grading
Gradebook
Homework
Policies
Advice
College Policies
Notes
Programs
Tutorials
Others
Admin
previous next
today
future
all
Schedule for weeks 1 through 16
Wk
Day
Date
Topic
Resources
Events
1
Mon
Aug 26
Course Introduction
BlueJ Introduction
BlueJ
OFWJ Chapter 1 Code
Assignment 0
Wed
Aug 28
Objects and Classes
Read Ch 1
Do all Ch 1 Exercises
Fri
Aug 30
Classes
Fields
Methods
Constructors
Read 2.1-2.4
Try all 2.1-2.4 Exercises
Copy
chapter02/naive-ticket-machine
to your computer
Assignment 0
due
Quiz 1
2
Mon
Sep 02
Parameters
Accessor/Mutator Methods
Printing
Read 2.5-2.11
Try all exercises
Ticket Exercise
HW 1
due
Wed
Sep 04
Conditional Statements
Variable Scope
Local Variables
Comparing Fields/Parameters/Local Variables
Read 2.12-2.18
Try all exercises
Person Exercise
Finish Ticket Exercise
Fri
Sep 06
More on Methods
Reread 2.15-2.17
Read 2.18-2.23
Try exercises through 2.82
Read 6.11, Appendix I
Review
More Book Exercises
Person
code from last class
HW 2
due
3
Mon
Sep 09
Abstraction
Modularization
Class Diagrams
Read 3.1-3.6
Read Appendix F
Clock Exercise
Read
10 Rules of Studying
Wed
Sep 11
Ch 1
Ch 2
Bring:
Book.java
Person.java
TicketMachine.java
Project Test 1
Fri
Sep 13
Primitive Types
Object Types
Logical Operators
Concatenating Strings
Modulo Operator
Constructors & Creating Objects
More on Method Calls
Reread 3.1-3.6
Read 3.7-3.12
Try exercises through 3.30
4
Mon
Sep 16
The
this
keyword
Debuggers
Read 3.13-3.16
Try all exercises
HW 3
due
Wed
Sep 18
Collections
Libraries
Read 4.1-4.5
ClockTest code
from last class
Fri
Sep 20
Generic Classes
Read 4.1-4.8
Try all exercises
Collection Comparisons
ArrayList API
HW 4
due
5
Mon
Sep 23
Working with Collections
Iterating/Iterators
For-each loop
While Loop
Read 4.9-4.12
Try all exercises
ArrayList Exercise
Wed
Sep 25
No Class
CIS
Fri
Sep 27
More on iterators
Read 4.12-4.13
Try all exercises
6
Mon
Sep 30
null
Anonymous Objects
Chaining Method Calls
Read 4.14
HW 5
due
Wed
Oct 02
Iterators
Read/Reread 4.12-4.15
Try all exercises through 4.60
Club Code
from (last year) today's class
Diddy stuff from Mon:
MusicOrganizer Code
testStuff code
Fri
Oct 04
Reading Documentation
Maps
Read 6-6.3 (6
not
5!)
Try all exercises
Collection Comparisons
HashMap API
HashSet API
7
Mon
Oct 07
No Class
Fall Recess
Wed
Oct 09
Randomness
Random API
About Testers
Project 1
due
Fri
Oct 11
Packages and Import
Maps
Die.java
(Code from yesterday)
RandomNumbers
(Code from last year)
Read 6.4-6.6
Try all exercises
Collection Comparisons
Phonebook Exercise
8
Mon
Oct 14
Ch 1-4
BigBank Code
Project Test 2
Wed
Oct 16
Sets
Splitting Strings
PhoneBook
(Code from last year)
Read 6.7-6.9
Try all exercises
Collection Comparisons
Fri
Oct 18
More fun with Phonebook
9
Mon
Oct 21
Mail System Review
More with HashMaps
PhoneBookBetter
(From Friday)
TestPhoneBookBetter
(just added)
Re-read 3.13-3.15
Read
MailSystem Project
(Project 2)
HW 6
due
Wed
Oct 23
HashMaps
ArrayLists
MailSystem
Mail System with Test
(from last year)
Fri
Oct 25
Autoboxing
Wrapper Classes
Class Documentation
Public/Private
Read 6.10-6.12
Try all exercises
Work on Project 2
10
Mon
Oct 28
Interfaces
Constants
Static fields/methods
Votes.java
(From Friday)
TestVotes.java
(From Friday)
Read 6.13-6.16
Wed
Oct 30
Arrays
For Loop
Read 7-7.4
Try all exercises through 7.11
Arrays Versus ArrayLists
Comparing Collections and Arrays
test.txt
Project 2
Due
Fri
Nov 01
2D Arrays
Read 7.5-7.6
11
Mon
Nov 04
Zuul!
Coupling (bad!)
Cohesion (good!)
Code duplication (bad!)
Read 8.1-8.5
Project 3: Zuul!
Zuul Part 1 Design Questions
Wed
Nov 06
Through Ch 6
Mail System Code
PhoneBookBetter code
Project Test 3
Fri
Nov 08
More on Coupling
Read 8.6
HW 7
due
12
Mon
Nov 11
Design
Implicit Coupling (also bad)
Read 8.7-8.10
Wed
Nov 13
More Cohesion
Refactoring (necessary evil)
Read 8.11-8.15
Fri
Nov 15
Inheritance
Read 10.1-10.5
Zuul Past Feedback
Zuul Part 2 Design Questions
Helpful Zuul Files
Project 3
Part 1 (submit if possible)
13
Mon
Nov 18
Subtyping
Polymorphic variables
Casting
The
Object
class
Inheritance Exercise
Network V1.5
(From Friday's Class)
Read 10.6-10.10
Project 3
Part 1 due
Wed
Nov 20
Static versus Dynamic types
Method Overriding
Dynamic Method Lookup
super
!
Method Polymorphism
Read 11-11.6
Try all exercises
Zuul Part 2 Design Questions
Fri
Nov 22
toString
equals
hashCode
Protected
instanceof
Abstract Classes
Interfaces
Read 11.7-11.12
Try all exercises
Read 12.3.3, 12.6
14
Mon
Nov 25
Mail Attachments Project
Reread 6.14-6.15
Project 4
Project 3
Part 2 due (Tuesday)
Wed
Nov 27
No Class
Thanksgiving Break
Fri
Nov 29
No Class
Thanksgiving Break
15
Mon
Dec 02
Summary of Inheritance
Wed
Dec 04
Read Exercise 12.70
Fri
Dec 06
Review
Project 4
due
Ex
Mon
Dec 09
Final Exam9-11am