95-771: Data Structures and Algorithms for Information Processing

[ 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: Ivy (Xinyue) Liang
Email: xinyuel1@andrew.cmu.edu
TA Hours: See Canvas

Ivy Liang

Teaching Assistant

TA: Hari Teja Ekkurthi
Email: hekkurth@andrew.cmu.edu
TA Hours: See Canvas

Hari Teja Ekkurthi


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

Late Assignments

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

Grading Scale

97.5 - 100 A+
92.5 - 97.4 A
90.0 - 92.4 A-
87.5 - 89.9 B+
82.5 - 87.4 B
80.0 - 82.4 B-

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 may be assigned to that student for the course. Likewise, if a student uses another person's work and submits it as his or her own, a failing grade may be assigned for the course. Any case of suspected cheating will be brought to the Dean’s attention. At that point, the policies of the Heinz College on cheating will be followed.


Wednesday 6:00 PM - 8:50 PM HBH 1204

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.


95-712 Object-oriented Programming in Java 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 January, 2017. Maintained by mm6@andrew.cmu.edu.