CPSC 124 | Introduction to Programming | Spring 2018 |
Readings are to be done for the class period where they are listed. Warmups are due by midnight before the class for which they are listed.
Optional readings are more advanced or extra material for those who are curious or want to go beyond the basics - you are encouraged to check them out, but they will not be addressed in class.
Dates for things in light gray are tentative and may shift slightly.
Assignments | ||||
---|---|---|---|---|
Week 1: 1/17-1/19Topics: course introduction; the mental landscape; basic building blocks |
||||
Wed | Slides: course introduction | |||
Thu | Reading: Eck, introduction to section 2.6 and sections 2.6.1-2.6.2 (just to get a sense of the process - the lab will introduce the particular tools and directory setup) | lab 1 Introduction to Linux and Java due Thu 1/25 (comments) |
||
Fri |
Reading:
Slides: building blocks (computers running programs, program structure) |
warmup #1 (on Canvas, in the "Quizzes" section) due Thu 11:59pm |
||
Week 2: 1/22-1/26Topics: basic building blocks; algorithms |
||||
Mon |
Reading:
Slides: more building blocks (expressions, type conversion, built-in subroutines, input) |
warmup #2 (on Canvas, in the "Quizzes" section) due Sun 11:59pm |
||
Wed |
In Class: 5-minute syntax quiz on
variable declarations, assignment statements, expressions, input, and
output. Expect questions of the following types:
Slides: constructing programs Examples: |
|||
Thu | lab 2 First Programs due Thu 2/1 (comments) |
|||
Fri |
Reading: Eck sections 2.5.3-2.5.4, 2.5.7, 3.1-3.2 [reading guide]
Slides: big picture (overview of the topics in the reading) Examples:
|
warmup #3 (on Canvas, in the "Quizzes" section) due Thu 11:59pm |
||
Week 3: 1/29-2/2Topics: conditionals and loops |
||||
Mon | Reading:
Slides: conditionals (overview, program development with ifs) Examples:
|
warmup #4 (on Canvas, in the "Quizzes" section) due Sun 11:59pm |
||
Wed |
In Class: 5-minute syntax quiz on
if statements. Expect questions which ask you to translate
pseudocode, such as:
(Note that in pseudocode like this, the indentation matters.) Examples:
|
|||
Thu | lab 3 Conditionals due Thu 2/8 (comments) |
|||
Fri |
Reading:
Slides: loops (overview, program development with loops) Examples:
|
warmup #5 (on Canvas, in the "Quizzes" section) due Thu 11:59pm |
||
Week 4: 2/5-2/9Topics: loops; arrays |
||||
Mon | Examples: | |||
Wed | Reading:
In Class: 5-minute syntax quiz on loops. Expect questions of the form:
As indicated, you'll be provided with code for everything except the loop syntax itself (which will be expressed in pseudocode). You may need to declare loop variables. You can write a while loop or a for loop. Slides: loops (loop patterns) Examples: |
warmup #6 (on Canvas, in the "Quizzes" section) due Tue 11:59pm |
||
Thu | lab 4 Loops due Thu 2/15 (comments) |
|||
Fri | Reading:
Slides:
Examples:
|
warmup #7 (on Canvas, in the "Quizzes" section) due Thu 11:59pm |
||
Week 5: 2/12-2/16Topics: arrays; programming with loops and arrays |
||||
Mon | Reading:
Slides:
Examples:
|
|||
Wed | Reading:
In Class: 5-minute syntax quiz on arrays. Expect questions of the following types:
Slides: Examples:
|
warmup #8 (on Canvas, in the "Quizzes" section) due Tue 11:59pm |
||
Thu | lab 5 Arrays due Thu 2/22 (comments) |
|||
Fri |
Slides:
Examples:
|
|||
Week 6: 2/19-2/23Topics: subroutines |
||||
Mon |
Reading:
Slides:
Examples:
|
warmup #9 (on Canvas, in the "Quizzes" section) due Sun 11:59pm |
project 1 Battleship muddiest points due Wed 2/21 |
|
Wed |
Reading:
Slides:
Examples:
|
warmup #10 (on Canvas, in the "Quizzes" section) due Tue 11:59pm |
||
Thu | Slides: battleship muddiest points | project 1 Battleship pseudocode due Tue 2/27 pseudocode |
||
Fri |
Reading:
In Class: 5-minute syntax quiz on subroutines and subroutines with parameters. Expect questions of the following types:
Slides:
Examples:
|
|||
Week 7: 2/26-3/2Topics: subroutines |
||||
Mon |
midterm #1
Mon 2/26 in class
|
|||
Wed |
Reading:
Slides:
Examples:
|
warmup #11 (on Canvas, in the "Quizzes" section) due Tue 11:59pm |
project 1 Battleship program due Fri 3/16 (comments) |
|
Thu | lab 6 Subroutines and Functions due Thu 3/8 (comments) |
|||
Fri |
Slides:
Examples:
|
|||
Week 8: 3/5-3/9Topics: program design with subroutines; odds and ends; exceptions; using objects |
||||
Mon |
In Class: 5-minute syntax quiz on functions and return
statements. Expect questions of the following types:
Examples:
|
|||
Wed |
Reading:
Slides: Examples:
|
warmup #12 (on Canvas, in the "Quizzes" section) due Tue 11:59pm |
||
Thu | lab 7 Programming With Subroutines due Thu 3/15 |
|||
Fri |
Reading:
Reference: Slides: Examples:
|
warmup #13 (on Canvas, in the "Quizzes" section) due Thu 11:59pm |
||
Week 9: 3/12-3/16Topics: objects and classes |
||||
Mon |
Reading:
Reference: Slides:Examples:
|
warmup #14 (on Canvas, in the "Quizzes" section) due Sun 11:59pm |
||
Wed |
Reading:
In Class: 5-minute syntax quiz on using objects. Expect questions of the following type:
You may be asked to work with the Card, Deck, and Hand classes, or with a new class. You will be provided with the javadoc API of any classes you are to use (including Card, Deck, Hand). Slides: Examples:
|
warmup #15 (on Canvas, in the "Quizzes" section) due Tue 11:59pm |
||
Thu | lab 8 Using Objects due Thu 3/29 (comments) |
|||
Fri |
Reading:
Slides: Examples:
|
|||
Spring Break: 3/19-3/23 | ||||
Week 10: 3/26-3/30Topics: objects and classes; program design with classes |
||||
Mon |
Slides:
Examples:
|
|||
Wed |
In Class: 5-minute syntax quiz on writing classes as a
blueprint for objects. Expect questions of the following type:
Examples:
|
|||
Thu | lab 9 Writing Classes due Thu 4/5 (comments) |
|||
Fri |
Reading:
Slides: |
warmup #16 (on Canvas, in the "Quizzes" section) due Fri 11:59pm |
||
Week 11: 4/2-4/6Topics: partially full arrays, dynamic arrays, array lists; searching and sorting |
||||
Mon |
Reading:
Examples:
|
warmup #17 (on Canvas, in the "Quizzes" section) due Sun 11:59pm |
project 2 Pac-Man muddiest points due Wed 4/4 |
|
Wed |
Reading:
Examples:
|
warmup #18 (on Canvas, in the "Quizzes" section) due Tue 11:59pm |
||
project 2 Pac-Man design due Thu 4/5 |
||||
Thu | Slides: | project 2 Pac-Man program due Mon 4/16 (comments) |
||
Fri |
In Class: 5-minute syntax quiz on using ArrayList. Expect
questions asking you to write statement(s) for tasks like the
following:
A section of the ArrayList API will be provided for you for reference. Slides: Examples:
|
|||
Week 12: 4/9-4/13Topics: inheritance |
||||
Mon |
midterm #2
Mon 4/9 in class
|
|||
Wed |
Reading:
Slides: Examples:
|
warmup #19 (on Canvas, in the "Quizzes" section) due Tue 11:59pm |
||
Thu | lab 10 Variable-Sized Collections due Thu 4/19 (comments) |
|||
Fri |
Examples:
|
|||
Week 13: 4/16-4/20Topics: inheritance and polymorphism |
||||
Mon |
Reading:
Slides: Examples:
|
warmup #20 (on Canvas, in the "Quizzes" section) due Sun 11:59pm |
project 3 Connect Four muddiest points due Tue 4/17 |
|
Wed | In Class: 5-minute syntax quiz on
inheritance. Expect questions of the following types:
Slides: Examples:
|
project 3 Connect Four program due Tue 5/1 (comments) |
||
Thu | lab 11 Inheritance due Thu 4/26 (comments) |
|||
Fri |
Slides:
Examples:
|
|||
Week 14: 4/23-4/27Topics: GUI programming |
||||
Mon |
Reading:
Slides: Examples:
Reference: |
|||
Wed |
Reading:
Slides: Examples:
Reference:
|
|||
Thu | Solutions for the lab exercises: | Introduction to GUIs due at the end of lab |
||
Fri |
Examples: (part of exercise #3 from yesterday)
|
|||
Week 15: 4/30-5/1Topics: GUI programming/wrapup |
||||
Mon |
Slides:
|
|||
Tue | ||||
Reading Period and Exams: 5/2-5/8 |
||||
Wed | ||||
Thu | ||||
Fri | ||||
Sat | ||||
Sun |
final exam (section 2)
Sun 5/6 1:30-4:30pm |
end-of-semester deadline (section 2) no work accepted after 5/6 4:30pm |
||
Mon | ||||
Tue |
final exam (section 1)
Tue 5/8 1:30-4:30pm |
end-of-semester deadline (section 1) no work accepted after 5/8 4:30pm |