Introduction to Computer Science

Basics of Programming

8/28 Introduction to the course
Read Sections 1.1-1.3:
Computers and programs, Computer tour, Language history
8/30 Basics of programming
Read Sections 1.4-1.5:
Programming, A first program
9/1 Input and output
Read Sections 1.6-1.9:
Basic output, Basic input, Comments and whitespace, Errors and warnings

Variables and Assignments

9/4 Variables and types
Read Sections 2.1-2.5:
Variables (int), Assignments, Identifiers, Characters, String basics
9/6 Arithmetic
Read Sections 2.6-2.8:
Arithmetic expressions (int), Floating-point numbers (double), Using math methods

Problem Set 1 due
9/8 Binary representations
Read Sections 2.9-2.10:
Type conversions, Binary


9/11 Conditional statements
Read Sections 3.1-3.2:
If-else, Relational and equality operators
9/13 Booleans and logic
Read Sections 3.3-3.5:
Logical operators, Boolean data types, String comparisons

Problem Set 2 due
9/15 Complex branching
Read Sections 3.6-3.7:
Multiple if-else branches, Switch statements

Quiz 1


9/18 While loops
Read Sections 4.1-4.3:
Loops, While loops, More while examples
9/20 For loops
Read Sections 4.4-4.5:
Counting, For loops

Problem Set 3 due
9/22 Complex looping
Read Sections 4.6-4.8:
Nested loops, Variable name scope, Developing programs incrementally


9/25 Arrays
Read Sections 5.1-5.2:
Array concept, Arrays
9/27 Using arrays
Read Sections 5.3-5.5:
Iterating through arrays, Multiple arrays, Loop-modifying or copying/comparing arrays

Problem Set 4 due
9/29 2D arrays
Read Section 5.6:
Two-dimensional arrays

Quiz 2

Midterm Week

10/2 Midterm Review
10/4 MIDTERM 1
10/6 Midterm feedback, intro to methods


10/9 Defining and using methods
Read Sections 6.1-6.3:
User-defined method basics, Parameters, Return
10/11 Complex methods
Read Sections 6.4-6.6:
Scope of variable/method definitions, Methods with branches/loops, Array parameters

Problem Set 5 due
10/13 Fall Break

10/16 Intuition and testing
Read Sections 6.7-6.8:
Reasons for defining methods, Unit testing (methods)
10/18 More practice
Read Sections 6.9-6.10:
Method name overloading, Methods: common errors

Quiz 3

Objects and Classes

10/20 Intro to objects and classes
Read Sections 7.1-7.3:
Objects: Introduction, Classes: Introduction, Abstract data types: Introduction

Problem Set 6 due

10/23 Constructors
Read Sections 7.4-7.5:
Constructors, Constructor overloading
10/25 Member methods and testing
Read Sections 7.6-7.7:
Mutators, accessors, and private helpers, Unit testing (classes)
10/27 Class details
Read Sections 7.8-7.9:
Objects and references, The 'this' implicit parameter

Problem Set 7 due
10/30 Reference types
Read Sections 7.10-7.12:
Classes with classes, Primitive and reference types, Parameters of reference types
11/1 ArrayList
Read Sections 7.13-7.14:
ArrayList, ArrayList ADT

Quiz 4
11/3 ArrayList Example
Read Section 7.15:
ArrayList example

Problem Set 8 due

Midterm Week

11/6 Midterm Review
11/8 MIDTERM 2
11/10 Midterm feedback, intro to recursion


11/13 Recursive methods
Read Sections 8.1-8.2:
Recursion: Introduction, Recursive methods
11/15 Binary search
Read Sections 8.3-8.4:
Recursive algorithm: Search, Creating a recursive method
11/17 More recursive algorithms
Read Sections 8.5-8.6:
Stack overflow, Recursive math methods


11/20 In-class app development
11/22 Thanksgiving Break
11/24 Thanksgiving Break

11/27 In-class app development
11/29 In-class app development
Quiz 5
12/1 In-class app development

Project Presentations

12/4 Group 1: Gaming Station
Group 2: Simon Says
Group 3: Othello
Group 4: Old Gold Casino
Group 5: Stranger Things Quiz
12/6 Group 6: Interactive Recipe
Group 7: DigiDraw
Group 8: SSC Game Shop
Group 9: Zombie Survival Test
12/8 Final review

12/12 FINAL EXAM (2pm)