CS 15-121: Introduction to Data Structures

[ Home | Course Info | Schedule | Course description]

Course Information


Mike McCarthy
Phone: 412-268-4657 Office Hours: See home web page for hours and location.
Home Page www.andrew.cmu.edu/~mm6

Teaching Assistant

TA: Aradhana Polasani
Email: apolasan@andrew.cmu.edu
TA Hours: See blackboard under staff information.

Aradhana Polasani


Five or six programming projects 50% (equally weighted, no collaboration)
Each project will normally consist of several programming activities.
Recitation Activities (Programming and Quizzes) 10%
Midterm 20% (Closed book)
Final 20% (Closed book and comprehensive)

Late Projects

Each student may turn in one programming assignment one week late with no penalty.
Any other late work will be penalized 10% per day.

Recitation Activities

Many labs will involve graded activities (quizzes and programming). Your two lowest scores will be dropped. There are no make ups.

Grading Scale

90 - 100 => A
80 - 89 => B
70 - 79 => C
60 - 69 => D
Less than 60 => R

Policy on collaboration

Collaboration is not permitted. While it is fine to discuss projects with others, it is a cheating violation when code is copied or shared. If a student is caught sharing his or her work with another, a failing grade will be assigned to that student for that project. Likewise, if a student uses another person's work and submits it as his or her own, a failing grade will be assigned to that student for that project. Any case of suspected cheating will be brought to the attention of the department.

When/Where Lecture

TR 12:00PM - 01:20PM DH A302

When/Where Recitation A

W 09:30AM - 10:20AM WEH 5202

When/Where Recitation B

W 10:30AM- 11:20AM WEH 5202

Required Textbook

Michael Main, Data Structures & Other Objects Using Java

Fourth Edition
(Addison-Wesley Longman, ISBN-13 978-0132576246)

Optional Textbook

Corman, et al., Introduction to Algorithms
(1990, MIT Press, ISBN 0262031418)

Policy On Electronic Devices

Please turn off all electronic devices during class. This includes laptops. Even note taking on a laptop may be a distraction to others. You may ask for individual exemptions from this rule.

Learning Objectives

At the completion of this course the student will be able to:

1. Design or select an appropriate algorithm for a particular problem.
2. Design or select an appropriate data structures for a particular problem.
3. Write programs that make good use of stacks, queues, linked lists, trees, graphs, and hash tables.
4. Analyze the runtime performance of algorithms in terms of Big O, Big Omega, and Big Theta notation.
5. Understand worse case, best case, average case and amortized analysis.
6. Understand the distinction between algorithm correctness and performance.
7. Understand the theory of NP-completeness.
8. Differentiate between problems that are computable and those that are not.


15-112 Fundamentals of Programming and Computer Science or permission of the instructor.


Take care of yourself.  Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.
All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.
If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.
If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:
CaPS: 412-268-2922
Re:solve Crisis Network: 888-796-8226
If the situation is life threatening, call the police:
           On campus: CMU Police: 412-268-2323
           Off campus: 911
If you have questions about this or your coursework, please let me know.

Last Updated August, 2016. Maintained by mm6@andrew.cmu.edu.