Meeting Times: The class will meet on Mondays and Wednesdays 10:30-11:45 in room 106 for Section 1, and 1:30-2:45 for Section 2 in room 111B. You will be assigned to a one-hour lab session either on Wednesday or Thursday later afternoons or early evenings.
Topics Covered: Pointers, Linked Lists, Templates, Stacks, Queues, Trees, Heaps, Sorting Algorithms, Graphs, and Hashing, with exposure to complexity and algorithm analysis.
Prerequisites: COMP 11 (Intro to Computer Science). COMP 10 is not enough! Knowledge of C++ or Java.
Textbook: The required text book for this course is "Data Structures and Algorithm Analysis in C++" by Mark Allen Weiss, (Pearson/Addison-Wesley) 2006. Third Edition.
Instructor:
Teaching Assistant:
Head TA: Nauman H. Khan
e-mail: nauman@cs.tufts.edu
Office hours: see the web site
Course web page: All assignments, handouts, and announcements will eventually be posted on the class' web page. A pointer to this web site will be available from http://www.cs.tufts.edu/comp/15/
E-mail List: We will use your email posted on the official SIS mailing lists to contact you or post announcements. Please make sure you read this email regularly.
Lectures: Lectures in the course will include higher level design of algorithms and data structures (abstraction), the specific details of implementation choices (implementation) and the mathematical skills to evaluate specific implementations (analysis). Examples will be presented in both pseudo code and C++.
Labs: The labs are intended to reinforce ideas presented in lecture. Students will practice the concepts by implementing actual algorithms and data structures using C++. It is imperative that students attend the lab sections in order to do well on homework assignments and exams. The lab work will be mostly completed during the lab hour, and it is submitted using provide by Friday 5pm. For the first two labs you will need to find two different partners. The instructor will assign you a partner if you cannot find one.
Homework: It will be assigned regularly in the course, it will come in
three forms:
Reading Assignments: It is important that students use the textbook
to supplement their understanding of the material presented in the lecture and
the lab.
Written Assignments: This homework will consist of mostly programming
assignments. Typically, a homework will be handed out on Wednesdays, and
due on the following Tuesday at midnight.
Projects: This homework will extend the programming work done in the lab.
You will have two (mini) projects that will emphasize design, analysis, and
implementation. The projects are essentially long programming assignment
that span two weeks. During the first week, you will be required to design
your data structures and your algorithms, and in the second week do the
implementation. These assignments will be done on the computer and checked
via the computer. It is important to repeatedly test your code before
submission, all programming projects will be tested on the sun cluster. These
assignments will be submitted using provide.
Late Homework Policy: Because we want you to do the work, late
assignments are penalized at 15% per 24 hours. No homework will be accepted after 5 days
as we want to provide solutions in a timely manner.
Exams: There will be two exams during the course: exam I that will
cover material from the first half and a exam II (the final) will be weighted toward
material covered after the first exam.
Attendance: Although classroom attendance is not
mandatory, it is highly recommended. Please note that you are
responsible for all material covered in class and lab. If you have to
miss class, please check with the instructor, TA, or fellow students
to figure out what you missed.
Feedback: Your thoughts and concerns on this course are important. You are encouraged to give feedback to the instructor and teaching fellows throughout the term.
Course Grading: Please get back to the instructor or TA regarding any
disputes for grades within a week of handing out the grades.
100-90% = A, 90-80% = B, 80-70% = C, 70-60% = D,
<60% = F.
| Labs | 5% |
| Written Assignments | 35% |
| Projects | 20% |
| Exam I | 20% |
| Exam II | 20% |