Schedule

The schedule below shows the tentative dates for all class topics, readings, and assignments. You should complete all assigned reading before class on the day it is listed. There may be some revisions to the schedule during the semester, but I will make sure to announce these changes in class.

Week 1
Tu
Jan 21

Introduction

  • Slides: Introduction
Reading Extra Resources
Activities
  • Lab: Linux Basics

Th
Jan 23

Variables, Statements, and Expressions

  • Slides: Variables, Statements, and Expressions
Reading
Activities
  • Week 1 Quiz
  • Lab: Setting up Git Access
  • Lab: C Basics
Week 2
Tu
Jan 28

Loops and Conditionals

  • Slides: Loops and Conditionals
Reading
  • Flow Control
    • Beej's Guide to C Programming – Section 3.3
  • Exiting from a Loop
    • King – Section 6.4
    • (pp. 111–116)
Extra Resources
  • Selection Statements
    • King – Chapter 5
    • (pp. 73–90)
  • Loops
    • King – Chapter 6
    • (pp. 99–118)
Activities
  • Lab: Loops and Conditionals
Due
  • Week 1 Lab Report (11:59pm)

Th
Jan 30

Functions

  • Slides: Functions
Reading
  • Functions
    • Beej's Guide to C Programming – Chapter 4
  • Defining and Calling Functions
    • King – Section 9.1
    • (pp. 183–190)
  • Function Declarations
    • King – Section 9.2
    • (pp. 190–193)
Activities
  • Week 2 Quiz
  • Lab: Functions
Assigned
  • Homework: Yahtzee
Week 3
Tu
Feb 4

Pointers

  • Slides: Pointers
Reading
Activities
  • Lab: Pointers

Th
Feb 6

Arrays and Strings

  • Slides: Arrays and Strings
Reading
  • Arrays
    • Beej's Guide to C Programming – Chapter 6
  • Strings
    • Beej's Guide to C Programming – Chapter 7
Activities
  • Week 3 Quiz
  • Lab: Arrays and Strings
Week 4
Tu
Feb 11

Arrays and Strings, continued

  • Slides: More Arrays and Strings
Reading Extra Resources
  • Arrays
    • King – Chapter 8
    • (pp. 161–175)
  • Strings
    • King – Chapter 13
    • (pp. 277–304)
Activities
  • Lab: Tic Tac Toe

Th
Feb 13

Pause for Breath

  • Slides: Pause for Breath
Reading

No reading

Activities
  • Week 4 Quiz
Assigned
  • Homework: Connect Four
    • Postponed
Due
  • Homework: Yahtzee (11:59pm)
Week 5
Tu
Feb 18

Class Canceled

Reading

No reading

Assigned
  • Homework: Connect Four
Th
Feb 20

Structs, Unions, and Enums

  • Slides: Structs, Unions, and Enums
Reading
  • Structures, Unions, and Enumerations
    • King – Chapter 16
    • (pp. 377–404)
Extra Resources
Activities
  • Lab: Structures, Unions, and Enumerations
  • Week 5 Quiz
    • Quiz Canceled
Week 6
Tu
Feb 25

Integer and Floating Point Representation

  • Slides: Representing Numbers

Th
Feb 27

Testing and Debugging

  • Slides: Testing and Debugging
Reading
Activities
Due
  • Homework: Connect Four
    • Postponed
Week 7
Tu
Mar 4

Exam Review

  • Slides: Review
Reading

No reading

Due
  • Homework: Connect Four (11:59pm)

Th
Mar 6

Exam 1

Reading

No reading

Activities
  • Exam 1
    • Covers all material through week 6
Spring Break
Week 8
Tu
Mar 25

Introduction to ncurses

  • Slides: Introduction to ncurses
Activities
  • Lab: Maze Editor (day 1)

Th
Mar 27

File Input and Output

  • Slides: File Input and Output
Reading
Activities
  • Lab: Maze Editor (day 2)
Assigned
  • Homework: Lightcycle
Week 9
Tu
Apr 1

Managing Memory

  • Slides: Managing Memory
Reading Extra Resources
  • Dynamic Storage Allocation
    • King – Section 17.1–4
    • (pp. 413–423)
Activities
  • Lab: Memory Allocation

Th
Apr 3

Managing Memory, continued

  • Slides: Managing Memory, continued
Reading
Activities
  • Week 9 Quiz
  • Lab: Ownership
  • Lab: Address Sanitizer
Week 10
Tu
Apr 8

Abstract Datatypes

  • Slides: Abstract Data Types
Activities
  • Lab: Implementing Stacks and Queues with Arrays

Th
Apr 10

Abstract Datatypes, continued

  • Slides: Abstract Data Types, continued
Reading

No reading

Activities
  • Week 10 Quiz
Due
  • Homework: Lightcycle (11:59pm)
Week 11
Tu
Apr 15

Linked Lists

  • Slides: Linked Lists
Reading
  • Linked Lists
    • King – Section 17.5
    • (pp. 424–437)
Activities
  • Lab: Implementing Stacks and Queues with Lists

Th
Apr 17

Linked Lists, continued

  • Slides: Linked Lists, continued
Activities
  • Week 11 Quiz
Assigned
  • Homework: Pathfinding
Week 12
Tu
Apr 22

Multifile Projects

  • Slides: Multifile Projects
Reading

Th
Apr 24

The Project

  • Slides: The Project
Reading

No reading

Activities
  • Project introduction and planning
Assigned
  • Homework: Final Project
Week 13
Tu
Apr 29

Makefiles

  • Slides: Makefiles
Reading
Activities
  • Lab: Writing Makefiles
  • Project Working Time

Th
May 1

Using SDL2

  • Slides: Using SDL2
Activities
  • Week 13 Quiz
  • Project Working Time
F
May 2

Work Due

Reading

No reading

Due
  • Homework: Pathfinding (11:59pm)
Week 14
Tu
May 6

Using SDL2, continued

  • Slides: Using SDL2, continued
Activities
  • Lab: Pong
  • Project Working Time

Th
May 8

Wrap Up

  • Slides: Wrap Up
Reading

No reading

Activities
Finals Week
W
May 14

Section 01 Final Exam (9am–noon)

Reading

No reading

Activities
  • Final Exam

F
May 16

Section 02 Final Exam (9am–noon)

Reading

No reading

Activities
  • Final Exam
Due
  • Homework: Final Project (5:00pm)