CPSC 124 Introduction to Programming Spring 2024

CPSC 124 Schedule

Reading is to be done for the class period where it is listed; "Eck" refers to the textbook (Introduction to Programming in Java). Warmups are due by 10pm the night before the class for which they are listed.

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

 Assignments

Week 1: 1/22-1/26

Topics: course introduction; the mental landscape; building blocks

 

Mon Reading:
  • Why is programming fun?
  • Eck sections 1.1, 1.3-1.5 (the mental landscape) [reading guide]
  • (optional) Eck sections 1.2, 1.6-1.7 (asynchronous events, the modern user interface, the Internet and beyond)
Slides and Examples:
introductory survey
(on Canvas, under "Quizzes")

due Fri 1/26 11:59pm
     

Tue Reading:
  • (recommended) Eck sections 2.1, 2.6.2 (the basic Java application, the commandline environment)
  lab 1
Introduction to Linux and Java


due Tue 1/30
   

Wed Reading:
  • Eck introduction to chapter 2 and sections 2.1-2.2, 2.4.1, 2.4.6 (the basic Java application, variables and primitive types, text input and output) [reading guide]
Slides and Examples:
  • slides: building blocks (mental landscape, the basic Java application, values and types)
warmup
(on Canvas, under "Quizzes")

due Tue 1/23 10pm
   

Fri Reading:
  • Eck sections 2.3.1-2.3.3, 2.5.1-2.5.4, 2.5.6-2.5.7 (built-in subroutines and functions, strings, expressions and operators) [reading guide]
  • (optional) Eck section 2.5.5 (the conditional operator)
Slides and Examples:
warmup
(on Canvas, under "Quizzes")

due Thu 1/25 10pm
   

Week 2: 1/29-2/2

Topics: building blocks; introduction to control structures; conditionals

 

Mon Reading:
  • Eck section 2.3.5 (introduction to enums)
Slides and Examples:
  • slides: building blocks (arithmetic operators, type conversion and casting, testing for equality, developing programs; extras: input using Scanner, enums)
  • examples: SalePrice.java (developing programs)
    syntax quiz 1 - building blocks
(on Canvas, under "Quizzes")

due Mon 1/29 11:59pm

(review info)

Tue   lab 2
First Programs


due Tue 2/6
   

Wed Reading:
  • review Eck sections 2.5.3-2.5.4 (relational and boolean operators)
  • Eck sections 3.1.1, 3.1.3-3.1.4, 3.5 (blocks, conditionals, control abstraction) [reading guide]
Slides and Examples:
warmup
(on Canvas, under "Quizzes")

due Tue 1/30 10pm
   

Fri Reading:
  • Eck section 3.1.5 (definite assignment)
  • (optional) Eck section 3.6 (switch statement)
Examples:
   

Week 3: 2/5-2/9

Topics: loops

 

Mon Reading:
  • Eck sections 3.1.2, 3.3.1, 3.3.3, 3.4.1-3.4.2 (while loops, break and continue, for loops) [reading guide]
Slides and Examples:
warmup
(on Canvas, under "Quizzes")

due Sun 2/4 10pm
  syntax quiz 2 - conditionals
(on Canvas, under "Quizzes")

due Mon 2/5 11:59pm

(review info)

Tue   lab 3
Making Choices


due Tue 2/13
   

Wed Slides and Examples:      

Fri Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Thu 2/8 10pm
   

Week 4: 2/12-2/16

Topics: arrays

 

Mon Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Sun 2/11 10pm
  syntax quiz 3 - loops
(on Canvas, under "Quizzes")

due Mon 2/12 11:59pm

(review info)

Tue   lab 4
Repetition


due Tue 2/20
   

Wed Slides and Examples:      

Fri Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Thu 2/15 10pm
   

Week 5: 2/19-2/23

Topics: algorithm development, testing and debugging

 

Mon Reading:
  • Eck sections 3.2.1-3.2.3 (pseudocode and stepwise refinement, testing and debugging)
Slides and Examples:
    syntax quiz 4 - arrays
(on Canvas, under "Quizzes")

due Mon 2/19 11:59pm

(review info)

Tue Slides and Examples:   lab 5
Arrays


due Tue 2/27
   

Wed Slides and Examples:      

Fri Slides and Examples:      

Week 6: 2/26-3/1

Topics: drawing and animation; subroutines

 

Mon Reading:
  • Eck section 3.9 (drawing and animation)
Slides and Examples:
  project 1
Minesweeper


muddiest points
due Thu 2/29 10pm
 

Tue   lab 6
Drawing and Animation


due Tue 3/5
 

Wed Reading:
  • Eck section 4.1 (black boxes and procedural abstraction)
  • Eck sections 4.2.1-4.2.3, 4.3.1-4.3.6 (static subroutines, parameters) [reading guide]
Slides and Examples:
warmup
(on Canvas, under "Quizzes")

due Tue 2/27 10pm
 

Fri Reading:
  • Eck sections 4.6.1-4.6.3, 4.6.5, 4.7.1, 4.3.7 (APIs, Javadoc, pre- and postconditions) [reading guide]
Slides and Examples:
  project 1
Minesweeper


pseudocode
due Mon 3/4 noon
 

Week 7: 3/4-3/8

Topics: functions; program design with subroutines

 

Mon Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Sun 3/3 10pm
project 1
Minesweeper


due Fri 3/15 noon
 

Tue   work on project

Wed Reading:
  • Eck sections 4.2.3, 4.3.8, 4.4.2, 4.7.2 (program design with subroutines)
Slides and Examples:
  • slides: subroutines (subtleties with parameter passing and return values, developing programs with subrouteins)
  • example: ParamDemo.java (subtleties of parameter passing and return values)
  • example: Farkle3.java (in progress; developing programs with subroutines)
   

Fri Slides and Examples:
  • example: Farkle4.java (in progress; developing programs with subroutines)
   

Week 8: 3/11-3/15

Topics: more about exceptions; odds and ends

  lab 7
Subroutines and Functions


due Tue 3/26

Mon Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Sun 3/10 10pm
syntax quiz 5 - subroutines and functions
(on Canvas, under "Quizzes")

due Mon 3/11 11:59pm

(review info)

Tue    

Wed Reading:
  • Eck sections 4.8.1, 4.8.3-4.8.4 (initialization in declarations, named constants, naming and scope rules) [reading guide]
Slides and Examples:

Fri ** If you have a laptop that you can bring to class, please do so today. Also, we'll be using the Linux VDI, so please try it out before class if you haven't already.

Slides and Examples:

     

Spring Break: 3/16-3/24


Week 9: 3/25-3/29

Topics: using objects, creating classes

 

  lab 7
(continued)
Mon Reading:
  • Shiffman, Learning Processing, pages 121-123 — available as objects.pdf in the "Files" section on Canvas [reading guide]
  • Eck section 1.5 (introduction to objects and object-oriented programming) [reading guide]
  • Eck sections 5.1.1-5.1.2 (objects, classes, instances and the fundamentals of objects) [reading guide]
  • Eck section 5.4.3 (example — refer to method headers and comments in sections 5.4.1-5.4.2 to understand how Card, Deck, and Hand are used but you don't need to read those sections in detail) [reading guide]

Slides and Examples:

    syntax quiz 6 - objects
(on Canvas, under "Quizzes")

due Mon 3/25 11:59pm

(review info)

Tue   lab 8
Using Objects


due Tue 4/2
   

Wed Slides and Examples:      

Fri Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Thu 3/28 10pm
   

Week 10: 4/1-4/5

Topics: creating classes; program design with classes

 

Mon Slides and Examples:     syntax quiz 7 - classes
(on Canvas, under "Quizzes")

due Mon 4/1 11:59pm

(review info)

Tue   lab 9
Writing Classes


due Tue 4/9
   

Wed Reading:
  • Eck sections 5.3.4, 5.4.1-5.4.2 (programming with classes) [reading guide]
Slides and Examples:
warmup
(on Canvas, under "Quizzes")

due Tue 4/2 10pm
project 2
Pac-Man


muddiest points
due Thu 4/4 10pm

muddiest points second chance
due Sun 4/7 10pm
 

Fri Slides and Examples:   project 2
Pac-Man


due Mon 4/22 noon
 

Week 11: 4/8-4/12

Topics: partially full arrays, dynamic arrays

 

Mon Slides and Examples:    

Tue   work on project  

Wed Reading:
  • Eck sections 3.8.4, 7.2.1, 7.2.4 (partially full arrays, dynamic arrays) [reading guide]
Slides and Examples:
warmup
(on Canvas, under "Quizzes")

due Tue 4/9 10pm
   

Fri Slides and Examples:      

Week 12: 4/15-4/19

Topics: ArrayList; inheritance, polymorphism; abstract classes

 

Mon Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Sun 4/14 10pm

Tue Slides and Examples: Linux VDI survey
(on Canvas, under "Quizzes")

due Tue 4/16 11:59pm 
lab 10
Collections of Varying Size


due Tue 4/23
 

Wed Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Tue 4/16 10pm
 

Fri Reading:
  • Eck section 5.5.4-5.5.5 (polymorphism, abstract classes) [reading guide]
Slides and Examples:
warmup
(on Canvas, under "Quizzes")

due Thu 4/18 10pm
 

Week 13: 4/22-4/26

Topics: abstract classes and interfaces

 

Mon Slides and Examples:   final project
Connect Four


muddiest points
due Thu 4/25 10pm
syntax quiz 8 - inheritance
(on Canvas, under "Quizzes")

due Mon 4/22 11:59pm

(review info)

Tue   lab 11
Inheritance


due Tue 4/30
 

Wed HWS Day (no class)    

Fri Reading: Slides and Examples: warmup
(on Canvas, under "Quizzes")

due Thu 4/25 10pm
final project
Connect Four


due Wed 5/8 4:30pm
(no extensions!)

Week 14: 4/29-5/3

Topics: interfaces; wrapup

 

Mon Slides and Examples:    

Tue   work on project  

Wed work on project and/or syntax quizzes

** bring a laptop you can use to access the Linux VDI and/or Canvas

     

Fri work on project and/or syntax quizzes

** bring a laptop you can use to access the Linux VDI and/or Canvas

     

Reading Period: 5/4-5/6

 

Sat      

Sun      

Mon office hours 10am-1pm      

Final Exams: 5/7-5/10


Tue office hours 10am-1pm      

Wed office hours 10am-1pm

final exam
5/8 1:30-4:30pm
end-of-semester deadline
no work accepted after 5/8 4:30pm

Thu        

Fri