COMP 15 - Data Structures
Summer 2019
(August, 2019) This page is the mirror of Comp 15 (Summer 2019) course page, and is no longer updated.
For the current semester, please check https://www.cs.tufts.edu/comp/15/
Staff | E-mail (*) | Office hours | Location |
---|---|---|---|
Tomoki Shibata | tshibata (at) cs.tufts.edu | Mon. 5-6pm, also available Wed. after class | Halligan 209 |
Matthew Russell | mrussell (at) cs.tufts.edu | Tue. 5-7pm, Thur. 3-5pm | Halligan 209 |
(*) If you have questions about the projects, labs, etc., please come to one of the office hours, or, use the discussion feature on Canvas instead of sending emails to the course staff.
Course Inforamtion | |
---|---|
Time | Wed. 6:00PM - 9:30PM |
Lectures | Halligan Hall, Room 108 |
Labs | Halligan Hall, Room 118 |
Midterm | July 3, in class |
Final | August 7, in class |
Links | Canvas, Gradescope, Feedback? |
Announcements
- (July 24) P5 has been published.
- (July 18) The link to Teach Yourself Presentation Sign-Up sheet is available on Canvas.
- (July 8) P4 has been published.
- (June 19) P3 has been published.
- (June 5) P2 has been published.
- (May 22) P1 has been published.
- (May 21) The Gradescope Entry Code is available on Canvas.
- (May 17) Welcome to Comp 15, Summer 2019! The pre-class survey was posted on Canvas. Please take a moment to fill out the survey by the first day of class. You will need your CS account for the first class. Please find the instruction on Canvas.
Schedule
Note: The schedule is tentative and is subject to change based on class progress.
(*) Lab is due by 11:59 PM on the due date.
(**) Teach Yourself report is due by 6:00 PM on the due date.
Projects
(*) Plan and Refinement is due by 11:59 PM on the due date.
(**) Project is due by 6:00 PM on the due date.
# | Topic | Code Skeleton | Plan Due (*) | Project Due (**) | Refinement Due (*) |
---|---|---|---|---|---|
P1 | Card Deck | /comp/15/files/p1 | May 24 (Fri) | June 2 (Sun) | June 4 (Tue) |
P2 | Event Scheduler | /comp/15/files/p2 | June 7 (Fri) | June 16 (Sun) | June 18 (Tue) |
P3 | Sorter | /comp/15/files/p3 | June 21 (Fri) | June 30 (Sun) | July 2 (Tue) |
P4 | Course Registration System | /comp/15/files/p4 | July 10 (Wed) | July 21 (Sun) | July 23 (Tue) |
P5 | Word Frequency Database | /comp/15/files/p5 | July 26 (Fri) | August 4 (Sun) | August 6 (Tue) |
Teach Yourself
The goal of Teach Yourself assignment is you make yourself feel comfortable with using Linux shell commands on terminal. You will be given a set of topics (Linux shell commands) per week. You are expected to do research on the given topics, and are expected to learn what the commands do and to have real experiences with using the commands. Note that you are expected to report your own experiences that are meaningful for you, not ones that you can find on online.
The deliverable of each Teach Yourself assignment is a written report that includes the followings:
- Assignment ID (e.g. T1)
- Auther's name
- Publication date
- Goal (e.g. What can other people, including yourself, learn from your report?)
- Explanation per topic (e.g. What the "ssh" command does? If any, what are useful options for the command?)
- Example use cases and descriptions of their significance (e.g. How to use the "ssh" command? Is there any precondition? What are the expected outcomes?)
- References, Acknowledgements (If you refer to existing works in your report, you must cite them and give appropriate credits for them.)
T9: 1) Pick command(s) based on your interests. You can focus on one command or you can focus on one task which introduces more than one command. Some suggested topics include, but are not limited to: git, emacs, vim, zip, unzip, tar, chmod, ln, time, jobs, fg, ps, kill, scp, dc, bc, find, tree, nice, ping, find, cut, and so on.
2) Prepare your presentation. Your T9 report, which must be submitted in PDF format, will be printed out and will be distributed in class.
3) Pay attention to the due date.
Presentation format: 5 mins long. You can use your laptop; therefore, you are free to use any presentation strategies. The goal of your presentation is to share your experience with your classmates, so that your classmeates can learn something new (Teach Your Classmates). Your presentation should include a takeaway message and a demo that your classmates can try out later on.
Resources
Syllabus
Syllabus will be updated until the start of the semester without notice.
Course Information
Description
In this course, we will study data structures and algorithms through major programming projects in the C++ programming language. We will begin with learning arrays and linked lists as foundations upon which to study other abstract data structures. Topics also include, but are not limited to, trees, graphs, as well as, dynamic storage allocation, recursion, and sorting.
Grading
Category | Percentage |
---|---|
Programming Projects | 40% |
In-Class Activities | 6% |
Labs | 7% |
Teach Yourself | 7% |
Midterm Exam | 20% |
Final Exam | 20% |
Letter Grade | Overall |
---|---|
A-, A, A+ | 90.0-92.9, 93.0-96.9, 97.0-100 |
B-, B, B+ | 80.0-82.9, 83.0-86.9, 87.0-89.9 |
C-, C, C+ | 70.0-72.9, 73.0-76.9, 77.0-79.9 |
D-, D, D+ | 60.0-62.9, 63.0-66.9, 67.0-69.9 |
F | 59.9 and below |
Note: The overall point will be rounded off to one decimal place.
Programming Projects: Students will have one programming project per (roughly) two weeks. Each project is equally weighted. Grading range will be 0 - 100 pts. A significant portion of the grade will be based on the correctness of program functionalities. Program codes that don't get compiled will be given zero credit and no partial credit will be given for the functionality portion.
There is a short period of time, called the refinement phase, after the main project due date. During the refinement phase, student may fix any issues they might find in their program code and can re-submit their updated project. Student will be given a half of the points for test cases that the resubmission passed but the original submission didn't. Student will loose points for test cases that the original submission passed but the resubmission didn't.
For example, assume there are six test cases, t1 through t6, each of which is worth 1 pt. At the main due date, the original submission passed t1, t2, and t3; that is, the original score is 3 pts. At the end of the refinement phase, the updated submission passed t1, t2, t4, t5, and t6 but not t3. With this example, the final score will be 3 + (3 / 2) - 1 = 3.5 pts. Just in case the final score was lower than the original score, then the original score will be considered as the final score.
In-Class Activities: In most cases, lecture includes one or more in-class activities. Handout for the activity will be distributed and collected during lecture time, and then it will be counted as class participation. The grading scale will be satisfactory (2 pts), acceptable (1 pt) or incomplete (0 pt).
Labs: Each lecture includes one lab session, except for the exam days. In each lab, students will learn programming concepts through hands-on experiences. Each lab is equally weighted. The grading scale will be satisfactory (2 pts), acceptable (1 pt) or incomplete (0 pt). Program codes that don't get compiled will be considered as incomplete, and no partial credit will be given.
Teach Yourself: This is a research assignment in which student is given a different set of topics per week, related to Linux shell commands, and write a report about how to use those commands. There will be a day that each student gives a presentation about the topic of their choosing in class (to teach yourself and your classmates). The grading scale will be satisfactory (2 pts), acceptable (1 pt) or incomplete (0 pt).
Exams: There are two exams, midterm and final. Each exam will take place in the regular class time and location. Each exam will take approximately 90-120 mins. Exams will be closed books, closed notes, and no electronic devices are permitted to use during exams. Each student may prepare a sheet of paper (US letter size or A4 size) with their own handwritten notes and may use it during exams. No makeups will be given. Student who receives accommodations should notify the instructor with necessary written documents at least 1 week before the exam date.
Late Assignment Policy: All projects, labs and Teach Yourself reports must be submitted on time via Gradescope. Student will receive no credit for late submissions. Assignments turned in via any means other than Gradescope will not be graded. In adversity circumstances, student must contact the instructor before the deadline to obtain written approval for turning in late. Student may be asked to provide the instructor with supportive written documents from academic Dean.
Policy for using Online Forum: Students are encouraged to use the discussion feature on Canvas to discuss concepts. To avoid committing academic misconduct, students may not attach any program code to their post, as well as, may not use the feature for sending "please-give-me-answer", "please-tell-me-how-to", and/or "please-debug-my-code" requests to the class. In such situations, students are rather encouraged to come to see the course staff in office hours.
Re-grading Policy: Requests for re-grading on assignments and exams must be submitted in writing via Gradescope within one week of when its grade is published, unless otherwise specified. Re-grading may result in a lower score.
Curving: Final course grades will be curved if necessary, and all students will be notified of the change.
Academic Integrity
Students are to follow the Tufts University's Academic Integrity Policy.
Accessibility
"Tufts University values the diversity of our students, staff, and faculty, recognizing the important contribution each student makes to our unique community. Students with disabilities are assured that the Student Accessibility Services office will work with each student individually to ensure access to all aspects to student life. Tufts is committed to providing equal access and support to all students through the provision of reasonable accommodations so that each student may access their curricula and achieve their personal and academic potential. If you have a disability that requires reasonable accommodations, please contact the Student Accessibility Services office at 617-627-4539, or through their email at Accessibility@tufts.edu, to make an appointment with the director to determine appropriate accommodations. Please be aware that accommodations cannot be enacted retroactively, making timeliness a critical aspect for their provision."
Acknowledgements
Some contents are based on course materials developed by professors who have taught Comp 15 at Tufts in past. Special thanks to Dr. Andrew Winslow, Dr. Partha Biswas and Prof. Mike Shah, whom Tomoki worked for in the past Tufts Summer courses. The lecutres and assignements include many ideas from their Summer Comp 15 and Comp 11. The course page is using a theme provided by Prof. Jeff Foster.