Welcome!

Welcome to comp15!

The goal of this course is to build on your experience in comp11 and help you develop your skills as a programmer and computer scientist.

Class Information

General

Time: Section 01: Mon, Wed 10:30am - 11:45am (E+ block) in Barnum Hall 008
Section 02: Mon, Wed 4:30pm - 5:45pm (G+ block) in Robinson Hall 253
Mailing list: https://www.eecs.tufts.edu/mailman/listinfo/comp15
Book: Data Structures and Other Objects using C++
Michain Main and Walter Savitch
Addison Wesley; 3rd or 4th edition
Resources: How to work from home
Using the Linux shell
Comp11 input/output library
Debugging
Pointers
For Java Programmers

Staff

Instructor: Sam Guyer
Halligan Hall Extention room 004
Office hours: Tuesday 1pm-2pm, Wednesday 1pm-2pm (or by appointment)
Grading: TBA
TAs: Send email to ta15@cs.tufts.edu
Office hours (in Halligan 118):
  Monday 1pm - 5pm, 7pm - 9pm
Tuesday 2pm - 5pm, 7:30pm - 10pm
Wednesday 3pm - 6pm
Sunday 6pm - 9pm
Labs: (1) Wednesday 3pm
(2) Wednesday 4:30pm
(3) Thursday 10:30am
(4) Thursday 12pm
(5) Thursday 3pm
(6) Thursday 4:30pm
(7) Friday 12pm
(8) Friday 1:30pm
(9) Friday 3pm

News and Important Dates

Assignment 1: Supermarket Simulator -- three parts, full system due Feb 21, 2012.

Schedule

Week 1 (Jan 23): Introduction

Overview of the course; Separation of interface from implementation; review of core comp11 topics: structs and classes, pointers, dynamic memory allocation.

No lab

Week 2 (Jan 30): Sequences

Sequence and queue abstract datatypes (interfaces and their behavior). Two implementations: dynamic array and linked list.

Lab 1: Get In Line! Building a queue of strings

Week 3 (Feb 6): Building software

Translation of C++ source code into a program; development cycle: edit->compile->link->run; header vs cpp files; object files; layout of memory at runtime.

Examples: Structuring the code for the Car/Engine example.

Lab 2: Get Back in Line! More practice with linked data structures.

Assignment 1 out: Supermarket Simulator

Policies

Grading

Your grade in this course will be based on the programming assignments, the midterm, and the final. Labs are not graded, but attendance is required. Grades will be computed as follows:
50% Assignments
20% Midterm
25% Final
5% Class participation, lab attendance

Late policy

Everyone runs into situations, both within and out of their control, when they need extra time to finish an assignment. I will be using the "late day token" system, which functions kind of like "sick days" in the real world. It gives you control over these situations and avoids the unpleasant conversations where you try to convince me you deserve more time. Here's how it works:

My advice: if you're having trouble get help early. We have a boatload of TAs who can help you with any topic or assignment. If you start early you'll be able to enlist their help before you get into trouble and need to burn up late day tokens.

Academic (mis)conduct

Students in this class are encouraged to discuss the programming assignments, but each student must produce his or her solutions completely independently. Specifically, you may verbally discuss problems, issues, and ideas, but you may not write anything down together. In addition, I ask that you document, in your code, anyone with whom you discussed the assignments.

Academic misconduct (also known as "cheating") is a very serious issue at Tufts. As a member of the University community, I am obligated to report any incidents. The consequences are painful for everyone involved. For more details, see the Tufts brochure on academic conduct: http://uss.tufts.edu/dosa/publications/documents/integrity.pdf

The most common reason for cheating is becoming overwhelmed by the work. Every one of us has been in this situation, and we're more than willing to help you if you feel like you're in trouble. Please, please come to us before you get into a situation where you're tempted to take someone elses solution.


Updated February 13, 2012