Instructor:
|
Michael J. McCarthy
Email: mm6@andrew.cmu.edu
Officer Hours T.H. 2:00 - 4:00 HBH 3015
|
Teaching Assistant:
|
Abhineet Chaudhary
Email: abhineetchaudhary@cmu.edu
Office Hours: See Canvas under "Home"
|
|
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. 11:00 PM to 12:20 PM HBH 1007
|
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
|