Assignments & Grading
There will be two midterms: one during week five and one during week ten, and a final during the
finals period. There will also be homework assignments. The homework assignments will consist of six written assignments, three oral presentation assignments that you will do in groups of three, and five programming assignments that will require you to implement an efficient algorithm (always solo).
Homeworks |
40% |
Recitation Attendance |
5% |
Midterm exams |
30% |
Final exam |
25% |
Homework problems are weighted by their point values. Most homework problems will be worth 25 points each. The two midterm exams are weighted equally.
There are no predetermined letter grade cutoffs. These are determined at the end of the semester based on everyone's performance. We will post approximate cutoffs based on midterm grades in the middle of the semester.
Overall letter grades may be curved at the end of the class. Master's students (15-651) may
receive standard plus and minus grades. Undergraduates (15-451) can not be given plus or minus grades.
Homeworks
There will be written homeworks, oral presentations, and programming assignments,
described below.
Written HWs
-
Most written HWs will have 3-4 problems. These will mostly be proof-based
problems involving the design, analysis, or use of algorithms.
-
All written work you submit must be entirely your own. You should not
discuss the problems except with course staff, nor reference materials outside
of those provided by this course in F23 and its prerequisites. Referencing
other material is cheating.
-
The written problems on these homeworks should be submitted on
Gradescope by 11:59PM on the due date.
Homework may be submitted up to two days late, with a 10% deduction for each
late day. Homework may not be submitted more than two days late.
Each student has 2 grace days, which will remove the first 2 of these 10%
deductions that they receive.
-
Written homework must be typeset and worded clearly. LaTeX is recommended
(guide
and HW template).
-
Based on TA availability, we will grade either some or all of the questions.
Oral HWs
-
Each oral homework will have 3 regular written-style problems.
-
You may work in groups of up to three to solve the regular problems,
and will be asked to present your solutions in these groups in
60-minute time slots between the Wednesday and Friday following their
release.
-
You are not required to submit anything to Gradescope for an oral assignment.
We will enter your scores based on your presentation.
-
Grades will typically be assigned to the entire group for their
presentation, but may individually differ in some circumstances.
Programming Assignments
-
The solutions to programming problems will be submitted
via Gradescope. It will be judged on correctness and running time.
-
The officially supported languages are C++ and Python. By officially supported, we mean that we guarantee that
the problems are solvable in those languages, and that the course staff have sufficient expertise to assist you
in debugging problems written in these languages. We will also try to support C, Java, OCaml, and Rust. We do
not guarantee that every problem will be doable in these language (though most should be) and we do not guarantee
that a TA will be able to help you debug these languages. Use them only if you are confident with them.
-
We may ask you to implement a theoretically efficient algorithm
to solve the problem, and we reserve the right to manually deduct points from
solutions that exhibit slow worse-case behaviour but successfuly use clever
heuristics to pass all of our test cases within the time limit.
-
For tips and further instructions on the programming problems, see
Piazza.
-
Our submission system will run plagiarism-detection software on the
submissions. All code submitted must be entirely your own. You
should not refer to any online references aside from language
documentation.
-
You also get 2 grace days for the programming problems, which are
distinct from the written homework grace days. (The rest of the late
penalty policy is the same: 10% off per day, maximum 2 days late.)
-
All code submissions made to Gradescope must be legitimate attempts to solve
the problem. It will be considered an academic integrity violation to make
submissions for any other purpose. For example, but not limited to:
mass submitting submissions to DOS (denial-of-service attack) the autograder,
submitting code that attempts to exfiltrate information about the test cases
or the autograder system, submitting code that attempts to gain network access
to the autograder machines, submitting code that attempts to directly
alter the autograder output to manipulate the submission's score, etc.
Bonus Problems
-
The homework assignments may occasionally contain
bonus problems. If you complete one of these
problems, your scores on that problem will replace
your lowest homework problem score (unless it is
itself your lowest score).
-
Bonus problems cannot replace the scores of programming
assignments.
-
Partial credit will only be awarded to bonus problems
for substantially correct answers.
Exams
-
There will be two midterms and one final exam. The midterm exams will be limited
in scope (midterm one will cover all of the content preceeding it, and midterm two
will cover the content after midterm one). The final exam is cumulative, i.e., it
will cover all of the contents of the course.
-
The midterm exams are scheduled in the evenings at 7:00PM - 10:00PM
on the Tuesdays of Weeks 5 and 10 (February 13th and March 26th).
You must attend unless you have an important and unavoidable conflict.
- Make-ups exams must be arranged at least one
week in advance, barring extreme situations. Make sure to document any
health problems you might have. If you may need a make-up,
please contact the instructors as early as possible.
-
The final exam is scheduled by the university during the exam period. It
will be three hours long.
Recitations
-
Recitations represent a significant portion of your
exposure to problems and problem-solving techniques
in this class. You may be tested on the content and
techniques presented in recitation on the exams.
-
Recitation attendance is taken and used as part of
your final grade. You do not have to attend every
single week to earn full attendance credit. There
is a small number of attendance grace days.
-
Recitation handouts will be released on Thursday.
We highly recommend that you look over these in
advance and consider how you might solve the
problems, as this will give you far better practice
for the homework and exams than if you're first
exposed to them in recitation, where due to time
constraints we have to go over the solutions
shortly afterwards. Solutions to the recitations
will be uploaded to Box on Monday evening. These
make great references for how to write up proofs
of different styles for your homework.
-
We encourage that you remain in your consistent
recitation, but if you have a conflict in some
week you may attend another recitation that works
better for you. You should email the section TAs
of your actual section and desired section ahead of
time to ensure that no recitation becomes too overloaded.
If there are room capacity issues we will ask those not
officially assigned to a given recitation to leave.
Communication and getting help
-
We will use Piazza
for online discussions and important course announcements.
It is strongly recommended to have email notifications enabled
for Piazza messages, as we may post important exam information,
etc.
-
You may use Piazza to ask conceptual questions about the course
content and the homework problems. If your question does not
reveal any details about the solution to a homework problem
(e.g., your question is about a lecture, a rectitation problem,
or is a clarification about a homework problem that does not give
away part of the solution), then your post must be public. You may
post anonymously. Conversely, any post that reveals information about
the solution to a homework problem must be private.
-
We will offer office hours as specified on the course calendar.
These are the best places to ask conceptual questions and get
help when you're stuck on a homework problem. Since not every
TA is familiar with every available programming language and
debugging is quite time-intensive, this will provide relatively
less help with programming anomalies.
All office hours will be in person. Students not present in the
room will be removed from the queue.
Your Health & Well-being
-
We want you to learn cool new things in the course, things that will
be useful for your life and career. And we want you to have fun
learning this material! Part of making sure you have the right experience involves
taking 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.
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
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.
Accommodations for Students with Disabilities:
- If you have a disability and are registered with the Office of
Disability Resources, we encourage you to use their online system to
notify us of your accommodations and also send an email to Hoai-An Nguyen,
hnnguyen@andrew.cmu.edu, on our course staff to discuss your needs as early
in the semester as possible. We will work with you to ensure that accommodations are provided as
appropriate. If you suspect that you may have a disability and would benefit from accommodations
but are not yet registered with the Office of Disability Resources, we encourage you to contact
them at access@andrew.cmu.edu
-
To recieve accomodations on exams, you must register to take the exam with the Office of
Disability Resources at their testing center. We are unable to provide accommodations in
the main exam sessions. Note that you must register separately and specifically for each exam!
-
Accomodations can not be applied retroactively. You may apply for accomodations partway through
the semester, but they can only be applied to future assessment.
Academic Integrity
-
Collaboration is healthy in the circumstances in which it is explicitly
permitted, but plagiarism and cheating are serious academic offenses with
serious consequences. Searching online for homework solutions or even
similar problems, algorithmic ideas, or code (including of standard algorithms
and datastructures) are all classified as cheating, as is getting advice from
anyone not in your group (on group problems) or on course staff or looking at
anyone's written solutions (even those of your group members).
The above is not an exhaustive list of academic integrity violations, and if
you are ever uncertain about what is allowed you should ask the course staff.
-
If you cheat in the class we will penalize you and report you to the university.
Issues will be handled in accordance with the
University Policy on Academic Integrity. Please also see the the
Carnegie Mellon Code on Academic Integrity.
-
The use of AI assistance tools (for example, ChatGPT) to solve homework problems is
strictly forbidden. It is considered the same as getting help from another person.
Finally, feel free to contact any member of the course staff to clarify
these policies.