Schedule · Staff & sections ·

Lab Expectations

Labs are a required and graded component of CS231. Students must attend one lab section each week.

Regardless of which lab section a student attends, they should always arrive prepared to complete assessments and graded work. Labs may include both individual and collaborative activities. It is the student’s responsibility to understand which tasks are individual and which permit collaboration.

Typical Lab Structure

Most lab sessions follow the structure outlined below. Exact timing and activities may vary slightly from week to week, but the overall rhythm will remain consistent.

  1. Project Reflection Quiz (≈ 25 minutes)
    Labs will usually begin with a short Moodle quiz based on the previous week’s project. This quiz assesses understanding of key concepts and critical implementation details.
  2. Guided Lab Activities (≈ 45 minutes)
    Students work through guided lab activities designed to prepare them for the upcoming project. Activities emphasize debugging and testing, tracing code execution, algorithmic reasoning, and communication (written and discussion-based).
  3. Project Overview (≈ 15 minutes)
    The project is introduced and the relevant data structure is discussed.
  4. Lab Check-Point (≈ 60 minutes)
    Students work on implementing the data structure necessary for the current project. Check-points are completed via Moodle, a testing harness, or if applicable by showing working code to the instructor or a lab TA.
  5. Project Released
    During this part of lab, the project files are released. Students may either remain in lab and begin working on the project or leave.

Lab Sections and Staff

Lab A

  • Instructor: Prof. Allen Harper
  • Time: Wednesday 1–3:50pm
  • Room: Davis 308
  • Bring: yourself + laptop + charger

Lab B

  • Instructor: Prof. Ike Lage
  • Time/room: Thursday 1–3:50pm
  • Room: Lovejoy 100
  • Bring: yourself + laptop + charger

Lab Schedule

Week Lab Date Topic Instructions
1 Feb 4, 5 2026 Lab A: Java Jumpstart Installation
2 Feb 11, 12 2026 Lab B: Working with Classes Lab B Handout
3 Feb 18, 19 2026 ADT: ArrayList Lab 1 Handout
4 Feb 25, 26 2026 2D Arrays Lab 2 Handout
5 Mar 4, 5 2026 ADT: LinkedList Lab 3 Handout
6 Mar 11, 12 2026 ADT: Queue Lab 4 Handout
7 Mar 18, 19 2026 Linked List Debugging Moodle
8 Mar 25, 2026 Spring Break — No Lab
9 Apr 1, 2 2026 ADT: Stack Lab 5 Handout
10 Apr 8, 9 2026 ADT: Binary Search Tree Lab 6i Handout
11 Apr 15, 16 2026 ADT: HashMap Lab 6ii Handout
12 Apr 22, 23 2026 ADT: Heap & Priority Queue Lab 7 Handout
13 Apr 29, Fri, May 1* (CLAS 2026) ADT: Graph Lab 8 Handout
14 May 6, 7 2026 Finishing Up the Semester Extension 2 Check Out, Complete Course and Lab Evaluations