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
|
Staff
|
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.