Skip to content

CS 5001 – CS 5002 Course Hub

Welcome! This site hosts course schedules, exercises and reference material for the integrated Introduction to Programming (CS 5001) and Discrete Mathematics (CS 5002) sequence.

Course Schedule - Fall 2025

Weekly Overview

Week Date Description
📚 Week 0 September 9 Orientation and introduction to CS 5001/5002 integrated studio
📚 Week 1 September 16 Making decisions in code: How programming conditionals connect to the mathematical foundations of logic
📚 Week 2 September 23 Working with collections: How programming data structures mirror mathematical sets and iteration patterns
September 23 📋 Project 0 Due
📚 Week 3 October 2 Functions and Proofs: How mathematical function specifications guide code design and testing serves as proof of correctness
📚 Week 4 October 7 Recursion and Induction (and while loops)
October 7 📋 Project 1 Due
📚 Week 5 October 14 Objects and Counting
📚 Week 6 October 21 Probability and Randomness - Simulating Probability, Verifying Results, Sharing Data
October 21 📋 Project 2 Due
📚 Week 7 October 28 Expressions, Stacks, Queues, and Parsing - Mathematical Expressions as Computational Structures
📚 Week 8 November 4 Graph Theory and Algorithms - Graphs Everywhere: From Theory to Real Data
November 4 📋 Project 3 Due
Week 9 November 13 Class materials for 09-Class-November-13
Week 10 November 18 Class materials for 10-Class-November-18
November 18 📋 Project 4 Due
Week 11 November 25 Class materials for 11-Class-November-25
Week 12 December 2 Class materials for 12-Class-December-02
December 2 📋 Final Project Due
Week 13 December 9 Class materials for 13-Class-December-09

This schedule is subject to change. Check back regularly for updates and links to weekly materials.

Course Integration

These two courses are designed to complement each other:

  • Programming concepts from CS 5001 provide concrete examples for mathematical abstractions in CS 5002
  • Mathematical thinking from CS 5002 builds logical reasoning skills essential for programming
  • Joint exercises reinforce connections between mathematical concepts and their computational applications