95-771: Data Structures and Algorithms for Information Processing http://www.andrew.cmu.edu/user/mm6/95-771/syllabus.html 1 of 4 8/30/2017 8:25 AM [ Home Course Info Schedule Course description] Instructors Mike McCarthy mm6+@andrew.cmu.edu Phone: 412-268-4657 Office Hours: See home web page for hours and location. Home Page www.andrew.cmu.edu/~mm6 Teaching Assistant TA: Jing Zhan Email: jzhan1@andrew.cmu.edu TA Hours: See blackboard under staff information. Teaching Assistant TA: Abhishek Singhal Email: asingha2@andrew.cmu.edu TA Hours: See blackboard under staff information.
95-771: Data Structures and Algorithms for Information Processing http://www.andrew.cmu.edu/user/mm6/95-771/syllabus.html 2 of 4 8/30/2017 8:25 AM Evaluation Late Assignments 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) 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- etc. 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. When/Where M W 10:30AM - 11:50AM HBH 1204
95-771: Data Structures and Algorithms for Information Processing http://www.andrew.cmu.edu/user/mm6/95-771/syllabus.html 3 of 4 8/30/2017 8:25 AM 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. Prerequisites 95-712 Object-oriented Programming in Java or permission of the instructor. Health 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.
95-771: Data Structures and Algorithms for Information Processing http://www.andrew.cmu.edu/user/mm6/95-771/syllabus.html 4 of 4 8/30/2017 8:25 AM
95-771: Data Structures and Algorithms http://www.andrew.cmu.edu/user/mm6/95-771/coursedes.html 1 of 1 8/30/2017 8:25 AM [ Home Schedule Syllabus Course description ] Course Description Overview: 95-771 is a one-semester, 12-unit course which covers the fundamental data structures and algorithms for information processing. The course uses the Java programming language to illustrate the concepts covered; students are expected to code their assignments in Java. Students enrolled in the course must have a prior background in programming (course work or practical experience). Students with an adequate grasp of programming should have little difficulty learning the Java constructs required to do their assignments. It should be noted that this is not a Java programming course. With the exception of some initial background information, the course does not focus on the Java language itself, and students who have not studied Java are responsible for acquiring any additional required skills outside of class. Students without adequate programming preparation should consider taking an additional programming course as a pre-requisite or co-requisite to this course. A major part of the course focuses on the design and analysis of data structures and their algorithms. Therefore, we will not be using the built-in Java classes that provide immediate access to such data structures. Who Should Take This Course? MSIT and MISM students: Required course for the Concentration in Strategic Information Processing and the Concentration in Medical Informatics. SCS & LTI MS students: Optional course for students who desire a hands-on programming course in algorithms and data structures. See your advisor.
95-771 Data Structure and Algorithms for Information Processing http://www.andrew.cmu.edu/user/mm6/95-771/schedule.html of 3 8/30/2017 8:25 AM [ Home Schedule Syllabus Course description ] Look for frequent updates to the topics, slides and readings. Date Reading(s) Slides Out In Week 1: Wednesday August 30 Week 2: Wednesday September 6 Main Ch. 1,2 Main Ch. 4 Big Theta Video Introduction Main on Pre and Post Conditions Basic Big O Towers Main on OOP Big O Big O (PDF version) Linked Lists Ch.4 Project 1 Lists Project 1 Javadoc Week 3: Wednesday September 13 Main Ch. 6,7 N Queens on U-Tube Sedgewick on Kd Trees Stacks/Queues Main Ch.6,7 Trees Main Ch.9 Binary Search Trees Lecture - On Silverlight Project 1 Due Wednesday September 13 Main Ch. 9,10 Week 4: Wednesday September 20 Red Black Tree Video B-Tree Video Heaps and B-Trees Main on Heaps Ch.10 Notes on 2-3 Trees Red Black Trees B+ Tree Video Main Ch. 11,14 Week 5: Wednesday September 27 Cool Graph Applets Graphs I Graphs II Floyd Warshall at Wikipedia
95-771 Data Structure and Algorithms for Information Processing http://www.andrew.cmu.edu/user/mm6/95-771/schedule.html of 3 8/30/2017 8:25 AM Week 6: Wednesday October 4 Main Ch. 11,14 Graphs III Graphs IV Week 7: Wednesday October 11 Main Ch. 6,7,12 Searching I Main on Searching Using Hash Tables Ch.11 Old Midterm exams Old Midterm Fall 2011 2012 Midterm Fall 2013 Week 8: Wednesday October 18 2014 Midterm Fall 2014 Midterm exam Wednesday March 8 - See Review for midterm 2015 Midterm Fall 2015 2016 Midterm Fall 2016 2017 Week 9: Wednesday October 25 Digital Search Tree and Radix Trie Sorting demonstrations Searching II Lecture Notes Main Ch.12 Sorting I Sorting I (PDF) Correctness proof
95-771 Data Structure and Algorithms for Information Processing http://www.andrew.cmu.edu/user/mm6/95-771/schedule.html of 3 8/30/2017 8:25 AM discussion Week 10: Wednesday November 1 Data Compression Huffman Huffman explained Data Compression LZW Week 11: Wednesday November 8 Main Chapter 12 Radix sort Sorting II Sorting II (PDF) Radix Sort Slide Edits Lecture Notes Week 12: Wednesday November 15 No class next Wednesday Finite State Machines Pushdown Automata Linear Bound Automata Finite State Machines I Finite State Machines I (PDF) Finite State Machines II Finite State Machines II (PDF) Turing Machines Google Doodle Turing Machines Week 13: Wednesday November 29 The Chomsky hierarchy P versus NP problems Finite State Machines III Finite State Machines III (PDF) NP-Complete Languages NP-Complete Languages Lecture (Part 0) NP-Complete Languages Lecture (Part 1) Week 14: Wednesday December 6 Review for Final Example Final Exam Question Week 15: Wednesday December 13 Final Exam during regular class time and place Last Update: January 2017 mm6@andrew.cmu.edu