Welcome!

Welcome to comp11! The objective of the course is to provide an introduction to computer science by exposing students to the core problems and methods of computer science and preparing them for the programming needs of more advanced courses. We hope to achieve this goal by presenting higher level concepts in lecture and hands-on computer practices in the assignments and the lab.

Class Information

General

Time: Section 01: Mon, Wed 10:30am - 11:45am (E+ block) in the Crane Room in Paige Hall
Section 02: Mon, Wed 1:30pm - 2:45pm (G+ block) in Anderson Hall Room 206
Mailing list: https://www.eecs.tufts.edu/mailman/listinfo/comp11
Book: Problem Solving with C++
Walter Savitch
Addison Wesley; 6th or 7th edition
Resources:
How to work from home.
Using the Linux shell
Comp11 input/output library
Our C++ Grammar
Debugging

Staff

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

News and Important Dates

Final exam -- E block (morning): May 9, 3:30pm - 5:30pm -- G block (afternoon): May 9, 12:00pm - 2:00pm.

May 5 -- Assignment 5 due.

Apr 19 -- Assignment 4 due.

Apr 1 -- Assignment 3 due.

Mar 11 -- Assignment 2 due.

Feb 23-25 -- No lab this week.

Feb 23 -- Assignment 1 due.

Schedule

Date Topics Examples Labs
24 Jan 1. Introduction    
26 Jan 2. From math to C++; define and apply functions; types Examples  
31 Jan 3. More functions; local variables; relational and logical operators Examples  
2 Feb Snow day    
7 Feb 4. Validating input; conditional statements; logic rules Examples
9 Feb 5. C++ grammar; I/O library; complete program Grammar Lab 0
14 Feb 6. Scoping; redefining variables; struct definitions Examples  
16 Feb 7. Birthday problem; arrays; storage shape; run time Examples Lab 1
21 Feb President's Day    
23 Feb 8. Arrays and loops; canonical loops: map, reduce, find Examples  
24 Feb 9. Struct, array initializers; more map, reduce, and find    
28 Feb 10. Files; file formats; reading and storing data Examples  
2 Mar 11. From grammar to storage to code; parameter passing Examples Lab 2
7 Mar 12. Quantifiers and loops Examples  
9 Mar 13. Search   Lab 3
14 Mar In-class midterm    
16 Mar 14. Under the hood: bits, bytes, and instructions   Lab 4
21--25 Mar Spring Break    
28 Mar 15. Introduction to pointers    
30 Mar 16. Using pointers; arrays of pointers; finite maps Examples Lab 5
4 Apr 17. Pointers; dynamic memory allocation Examples  
6 Apr 18. Dynamic memory allocation; dynamic arrays Examples Lab 6
11 Apr 19. Dynamic data structures; encapsulation; dynamic arrays Examples  
13 Apr 20. Linked lists; comparing dynamic data structures Examples  
18 Apr Patriot's Day    
20 Apr 21. Encapsulation with classes Examples Lab 7
25 Apr 22. Recursion Examples  
27 Apr 23. Recursion; binary trees Examples Lab 8
2 May      

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

Programming assignments will be penalized 15\% for each day after the due date. Due to the size of the class, no assignments will be accepted more than three days after the due date.

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.