95-771 Data Structures and Algorithms for Information Processing

[ Home | Course Info | Schedule | Course description]

 

Course Syllabus

Instructor:

Michael J. McCarthy
Email: mm6@andrew.cmu.edu
Officer Hours T.H. 1:00 - 3:00 HBH 3015

Teaching Assistant:

Abhineet Chaudhary
Email: abhineetchaudhary@cmu.edu
Office Hours: See Canvas under "Home"

Ankit

Prerequisite:

95-712 Object-oriented Programming in Java or permission of the instructor.

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-
77.5 - 79.9 C+
72.5 - 77.4 C
70.0 - 72.4 C-


Assignments:

Five or six programming projects 50% (equally weighted, no collaboration)

Each project will normally consist of several programming activities. 

Five pop quizzes 5% (low quiz score dropped).

Midterm 20% (Closed book)

Final 25% (Closed book and comprehensive)

 

Late Assignment Policy:

You have 7 grace days to spend. This policy is meant

to cover such issues as job interviews, travel and so on. After the seven days are spent

there is a penalty of 10% per day late.

Policy on collaboration and AI tools:

Copying code without citing it is cheating.
Copying code from a fellow student is cheating.

However, if you cite the source of the code, you may choose to use a large language model to assist with your programming work. Note that LLMs often make mistakes. You are responsible for any errors or problems that may be present in the code that you submit. The closed book exams are designed to test your knowledge and coding skills. So, if you do use a large language model, be sure to master the material and truly understand the code, before taking an exam.

Be sure to note that you must follow the academic integrity guidelines of the university. If you use a generative AI tool to develop content for an assignment, you are required to cite the tool’s contribution to your work, just as you should cite code acquired from any other source.

If you copy code from the Web, be sure to provide a comment in the code with the exact URL where the code was copied from.

Code that is provided by the instructor is allowed as long as the code is clearly cited as being provided by the instructor. Of course, if you have violated the spirit of the project, you will earn zero points.

Policy on grading complaints:

Grading mistakes may occur. Please contact the TA who graded your assignment about grading mistakes. It will be up to the TA to handle the complaint. If you are still not satisfied with the TA's grade please contact me immediately. My initial reaction will be to support the TA's grade. In some cases, however, I might agree with the student and ask for the grade to be adjusted. Please make any grading concerns known to the TA immediately. Set up an appointment with the TA and get the matter resolved.

Use of Canvas

There will be a Canvas site for the course. The Piazza links are located there and will be used as a discussion board. Grades will be posted there and assignments will be submitted there. It is far better to post a question to the discussion board than it is to send your instructor or TA an email. Answers posted there are available for all to see. The main site for the course (syllabus, course description and schedule) is this page.

Software Requirements:

The student needs to download and install the most recent IntelliJ Ultimate IDE. Available here.

Time and place:

T.R. 5:00 PM to 6:20 PM HBH 1005

FERPA Statement:

Some classes may be recorded via Zoom so that students in this course (and only students in this course) can watch or re-watch past sessions. Please note that breakout rooms will not be recorded. Please note that you are not allowed to share these recordings. This is to protect your FERPA rights and those of your fellow students.

Recommended Text:

Michael Main, Data Structures & Other Objects Using Java Fourth Edition (Addison-Wesley Longman, ISBN-13 978-0132576246)

Optional Text:

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

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.

Good 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 here. 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

Last Update: January 2024. Maintained by mm6@andrew.cmu.edu