Labs and Projects Overview

This page has the instructions and procedures for completing labs and projects, as well as procedures for the lab period.

Projects are large programming and writing assignments that you will submit either weekly or every other week (depending on the project).

Labs are ungraded assignments that prepare you to start the project. In some labs you will do exercises that the projects build on directly, but in others, you will do other types of preparation. The work you do on the lab is not directly submitted unless we specify otherwise (in many cases projects will use code you build in the labs, and in other cases we will have 2 week projects that involve submitting a lab after the first week).

The goal of the lab periods is to give you an opportunity to work on the labs with assistance. If you complete the lab work before the lab period is up, you can move on to start the project.

Project Number Lab Link Project Link Lab Due Date Due Date
1 Java and ArrayLists Monte-Carlo Simulation: Blackjack -- Sept. 18
2 2D Arrays Conway's Game of Life -- Sept. 25
3 Linked Lists Agent-Based Simulations -- Oct. 2
4 Stacks Sudoku -- Oct. 16
5 Queues Modeling a Server Farm -- Oct. 23
6

Binary Search Trees

HashMaps

Word Frequency Analysis Oct. 30 Nov. 6
7 PriorityQueues and Heaps Searching on a Grid Nov. 13 Nov. 20
8 Graphs Pursuit - Evasion on a Graph Dec. 8 (Friday)

Project Due Dates

Projects will be due on Mondays at midnight (i.e. Monday night) unless we specify otherwise. The usual schedule will be that we start labs during the lab sections on Monday and Tuesday, and then you have the following week to work on the project before submitting it. Some projects will take 2 weeks; in these cases, you will submit code from your week 1 lab so we can check on your progress. This will be required and graded.

Lab Attendance

Attendance in lab is strongly encouraged and I will track it. If you are frequently absent, I will check in with you.

There are 2 lab periods: Monday 1-3:50 PM, and Tuesday 1-3:50 PM. You are technically enrolled in one of them, but you are welcome to come to either or both (but I reserve the right to change this policy as needed!).

These lab sections are long! You are not required to stay for the whole time, but I encourage you to stay for long enough to make full use of this time. It's a great opportunity for focused work on your labs and projects with easy access to help. You are welcome to take a break and come back as needed!

Format of Lab Sessions

The way I expect to run these is to start working on the lab with you all at the start, then to move to answering individual questions as they start coming up (maybe 15 minutes in). Because of this, I strongly encourage coming to the beginning of lab. The first 2 hours, we will focus on the lab (or project) we're starting. In the last 50 mintes (3-3:50), we (me and the lab TAs) will be happy to answer questions about anything (including last week's project which you may still be working on).

Office Hours

You can get additional assistance by coming to my (Professor Ike Lage)'s office hours. I'm holding them at the following times in Davis 116. You can also email me (ilage@[[usual Colby email]]) to set up an alternative time.

Submitting Projects

To submit a project, you should find in the Google Drive account associated with your Colby username a drive that has been shared with you named <username>_cs231, which should already be populated with folders for each project. Upload your work in the folder associated with the current project, including your report.

Projects can be submitted up to one week late, but will not earn any credit for extensions. However, each student has up to two 'freebies' to use over the semester, where they may submit a project up to one week late without penalty (meaning the extensions will count).