COMP 11 Introduction to Computer Science


Course Number COMP11
Semester Spring 2012
Hours MW 3:00-4:15p, MW 4:30-5:45p
Schedule I+ Block,
K+ Block
Location Robinson 253, Halligan 111A

Instructor Remco Chang
email remco_at_
cs_tufts_edu
Office Halligan E009
Office Hours Thursday 4-6pm

Lab Instructor Bruce Molay
email bruce.molay
_at_tufts_edu
Office Halligan E011
Office Hours By Appointment


Course Description
Announcements
Schedule
Projects & Labs
Office Hours
Grading
Attendance
Textbook
Misconduct
Accommodation
Contact
Acknowledgement

Course Description

The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 1.25 hr weekly lab time scheduled at first class meeting.)


Prerequisite: High school programming course, COMP 10, EN 47, or consent.



Announcements


Announcement: 4/29: More recursion practice problems are posted at this link


Announcement: 4/29: Solutions to the practice exam are posted here.


Announcement: 4/26: Solutions to lab11 are posted at this link


Announcement: 3/30: The input/output requirements for Project 2a: INPUT: assume that each user will take turn typing in a number from 1 to 7. If a user types in an invalid number (e.g., 0, or a column that is already full), the same user will be asked to go again. OUTPUT: at the end of each turn, print out the board as shown in the handout. You need to draw the board using the cout command. You are not allowed to use the screendraw function from the snowstorm project. In addition, note that we will run the program with sample data (we will run it like
./a.out < someInputFile.txt), but the output will be checked by humans. So do not worry about formatting the error messages, but be sure that your system will be able to accept integers and check for validation.


Announcement: 1/25: Piazza sign up link for this course is: https://piazza.com/tufts/spring2012/comp11 . If you still have problem about it, please send email to samuelli_at_cs_tufts_edu.



Schedule

Date Topic Lab Projects Notes
1/23/2012 Course Intro, Problems and procedures
(handout)(code samples).
Tractors
(intro) (handout)
(Sign up) for your unix account.
(Sign up) for week 1 lab
(Sign up) for permanent lab
1/25/2012 Variables and ops; storage: units and types; processing: operations; basic code format
(handout)
Asgn 1 out
1/30/2012 Functions, conditionals, booleans
(handout)
Using Linux
(worksheet) (overview)
(How to) connect to the CS linux server remotely.
2/1/2012 Flow control, rules of logic switch
(handout)
Asgn 2 out Submit Asgn1 2/2: the last add date
2/6/2012 User defined functions, constants
(handout)
minnie golf (worksheet) (overview)
2/8/2012 Scoping, redefining variables, returning values (handout) Asgn 3 out Asgn 2 due
2/13/2012 Arrays and loops
(handout)
Loops and arrays minnie II (worksheet) (overview) (dataset)
2/15/2012 Basic array operations: total, max, search (handout) Asgn 4 out Asgn 3 due
2/20/2012 President's Day, no class No Lab
2/22/2012 Data structures to fit problems
(handout)
2/23: the last drop date, to select PASS/FALL
2/23/2012 (Substitute Monday's schedule)
Structs and I/O; Structs and functions
(handout)
Asgn 4 due
2/27/2012 Functions and data structures
(handout)
Snowstorm Lab
(overview) (worksheet)
Proj 1 out
2/29/2012 Pointers I; Binky, Wiz of OS
(handout)
3/5/2012 Pointers II
(handout)
Call trees and code structures (overview) (worksheet) Design Doc out
3/7/2012 Pointers III
(handout)
Design Doc due
3/12/2012 Midterm review
(handout)
Midterm practice sample questions Proj 1 due
3/14/2012 Midterm
(midterm C++ solution)
3/19/2012 Spring Recess, No Class
3/21/2012 Spring Recess, No Class
3/26/2012 Dynamic memory and arrays I
(handout)
New and delete for dynamic arrays (overview) (worksheet) Proj 2a out
3/28/2012 Dynamic memory arrays II
(handout)
4/2/2012 Linked data structures I
CS major panel
(handout) (array3d.cpp)
Funny data structure Lab (overview) (worksheet) Proj 2a DesignDoc Due
4/4/2012 Linked data structures II
(handout)
4/5: the last drop date for freshmen
4/9/2012 Classes I
(handout)
Warehouse Lab (overview) (worksheet) Proj 2b out
4/11/2012 Classes II
(handout) (code sample)
Proj 2a due
4/16/2012 Patriot's Day, no class Proj 2b DesignDoc due
4/18/2012 Recursion I
(handout)
4/23/2012 Recursion II
(handout)
Recursion and trees/lists Lab Assignment Proj 2b due
4/25/2012 Review
(handout)
(solutions.zip)
Lab 11 due 4/26
Solution
4/30/2012 Exam


Projects & Labs

Proj 1 Design Document: Design Document Due Wednesday March 7, by 11:50pm
Project 1 : Concert Ticket Server Due Monday March 12, by 11:50pm
Proj 2a Design Document: Design Document Due Monday April 2, by 11:50pm
Project 2a: Connect 4, Part A Due Wednesday April 11, by 11:50pm
Proj 2b Design Document: Design Document Due Monday April 16, by 11:50pm
Project 2b: Connect 4, Part B Due Monday April 23, by 11:50pm

Late policy for projects:
For the programming projects we will have a token system. Each student has 5 homework tokens at the start of the semester. A homework token buys one 24 hour extension. As many as three homework tokens may be used on any project. To use a token a student submits an empty file (you can create one in emacs) named tokenX. (Here X refers to the token number being used, 0-4) along with the project files. For example, a student who wishes to to use two tokens on a project and who has previously used 2 tokens during the semester would submit two files named token2 and token3 along with their project files. No project will be accepted more than 3 days after the due date.

Take-Home Labs

Lab 1: Tractor Due Wednesday, Feb 1. (submit) your assignment
Lab 2: Using Unix Due Wednesday, Feb 8. Submit using provide.
Lab 3: Conditionals Due Wednesday, Feb 15. Submit using provide.
Lab 4: Arrays, Loops, Counters Due Thursday, Feb 23. Submit using provide.
Lab 5: Recursion Due Thursday, Apr 26. Submit using provide.

Late policy for labs:
Late tokens can be applied to the labs as well, but use it at your own peril. If you can, you might want to reserve the late tokens for the large projects -- they will be much more difficult and more time-consuming.


Office Hours

All office hours will be held at Halligan 118.
Sunday
2:00 - 4:00: Jake Rosenberg, Trevor John, Sarah Ruckhaus
6:00 - 8:00: Griselle Ong, Nate Tenczar, Trevor John

Monday
6:00 - 7:00: Trevor John, Amadou Crookes, Nate Tenczar
7:00 - 8:00: Joe Kennedy, Trevor John
8:00 - 9:00: Joe Kennedy, Trevor John, Charlie Powell
9:00 - 10:00: Joe Kennedy, Charlie Powell, Trevor John

Tuesday
6:00 - 7:00: Cameron LaHart, Jillian Silver, Amadou Crookes
7:00 - 8:00: Jake Rosenberg, Josh Mermelstein, Cameron LaHart
8:00 - 9:00: Griselle Ong, Josh Mermelstein, Charlie Powell
9:00 - 10:00: Griselle Ong, Josh Mermelstein, Charlie Powell

Wednesday
6:00 - 7:00: Sarah Ruckhaus, Amadou Crookes, Nate Tenczar
7:00 - 8:00: Jake Rosenberg, Sarah Ruckhaus, Rachel Lew
8:00 - 9:00: Sarah Ruckhaus, Rachel Lew, Carolyn Saund
9:00 - 10:00: Rachel Lew, Carolyn Saund, Josh Mermelstein

Thursday
6:00 - 7:00: Cameron LaHart, Jillian Silver, Amadou Crookes
7:00 - 8:00: Cameron LaHart, Carolyn Saund, Jillian Silver, Amadou Crookes
8:00 - 9:00: Carolyn Saund, Jillian Silver, Ariel Hamlin, Amadou Crookes
9:00 - 10:00: Carolyn Saund, Ariel Hamlin, Cameron LaHart



Grading

25%   Projects Large coding projects
20% Labs Weekly coding assignments
10% Participation   Class participation and lab attendance
20% Midterm
25% Final

The late policy for the programming assignments is listed in "Projects & Labs" section. There will be no make-up exams for the midterm or the final exam. If there is an extraordinary circumstance that will prevent you from completing your assignment on time, you must contact the course instructors as well as your academic dean to make special arrangements.


Attendance

Attending class is mandatory. All students are responsible for the material covered in class. The homework and exams are directly related to the material discussed in class. The lectures in each section of the course are primarily in synch. If you cannot attend your regular section for some reason, try to attend another section that same day. If you miss a lecture please see the professor to discuss what material was covered.

Attending your scheduled lab is mandatory. You will sign up the first week of class for a lab section. Students rank their top choices. We will do our best to accommodate your time preferences. As many lab sections fill, we can not always accommodate dropin visitors or schedule changes as the number of computers in the lab is limited.


Textbooks

The required text book for this course is Problem Solving with C++. Walter Savitch, (Pearson) 2011. 8th edition. ISBN: 0132162733 Note: The 7th edition is fine! There are no assigned readings in the course, but the textbook is a critical esource in helping study the syntax of C++. Students who are having difficulty with the concepts in lecture will find the textbook a great resource for extra examples of code. A copy of the textbook is on reserve in the library.


Academic Misconduct

Students should read the Tufts brochure on academic conduct located on publication website of the student affairs office:
http://uss.tufts.edu/studentaffairs/codeofconduct/

A few highlights are presented to emphasize importance:

Absolute adherence to the code of conduct is demanded of the instructor, teaching fellow, and students. This means that no matter the circumstance any misconduct will be reported to Tufts University.

While students are encouraged to discuss course materials, no written collaboration is allowed on homework. Specifically you may discuss assignments and projects verbally, but must write up or work on the computer alone. In addition any discussion should be documented. An example on the project would be "Thanks to Jordan for showing me how to initialize the linked list." Another important example is citing a source, this could be "This information was adapted from www.boston.com"

While computers enable easy copying and collaboration both with other students and materials from the Internet, it is possible to use these same computers to detect plagiarism and collaboration. I reserve the right to write a program to detect plagiarism and inappropriate collaboration.



Contact

If you have a question regarding the course or an assignment, please log into Piazza and post your question online first. If you are enrolled in this class but do not have an account on Piazza for COMP 11, please contact Alvitta Ottley (alvittao_at_cs_tufts_edu), who is one of the graduate TAs.

If you have a general question for the TAs that you do not feel comfortable posting on an online forum like Piazza, please send an email to ta11_at_cs_tufts_edu. All the TAs and the instructors will receive the email.

To contact a specific TA, please find their name and email address below:

Alvitta Ottleyalvittao_at_cs_tufts_eduGrad TA
Samuel Lisamuelli_at_cs_tufts_eduGrad TA
Andrea LevineAndrea.Levine_at_tufts_eduHead Undergrad TA
Amadou CrookesAmadou.Crookes_at_tufts_edu
Ariel HamlinAriel.Hamlin_at_tufts_edu
Trevor JohnTrevor.Rothaus_at_tufts_edu
Joe KennedyJoseph.Kennedy_at_tufts_edu
Cameron LaHartLaHartComp11_at_gmail_com
Rachel LewRachel.Lew_at_tufts_edu
Josh MermelsteinJoshua.Mermelstein_at_tufts_edu
Griselle OngGriselle.Ong_at_tufts_edu
Charlie PowellCharles.Powell_at_tufts_edu
Jake RosenbergJacob.Rosenberg_at_tufts_edu
Sarah RuckhausSarah.Ruckhaus_at_tufts_edu
Carolyn SaundCarolyn.Saund_at_tufts_edu
Jillian SilverJillian.Silver_at_tufts_edu
Nate TenczarNathaniel.Tenczar_at_tufts_edu



Accommodation

Tufts is committed to providing support services and reasonable accommodations to all students with documented disabilities. To request an accommodation, you must register with the Disability Services Office at the beginning of the semester. To do so, call the Student Services Desk at (617) 627-2000 to arrange an appointment with Sandra Baer, Program Director of Disability Services.


Acknowledgement