Computer Models and Limitations (CSC 280) — Summer 2022
Course Description (from CDCS)
Students will gain an understanding of fundamental computer models and their computational limitations.
Topics comprise: finite-state machines, the context-free languages, pumping lemmas, Turing machines,
decidable and Turing-recognizable languages, undecidability, NP-completeness. Prerequisites: CSC 173
& MATH 150
Course outcomes
- Students will gain familiarity with reading and understanding formal statements.
- Students will learn to state and critique formal mathematical arguments.
- Students will learn how to recognize the common computer models and their key characteristics.
- Students will gain familiarity with “lower bound” proofs on language complexity.
- Students will be become familar with foundational concepts of Computer Science, such as computability
and complexity theory.
- Students will learn how to apply formal methods to practical problems of interest.
Course Webpage
Course Structure
The course will be run in a hybrid-synchronous manner. All students are expected to attend
lectures (see grading).
Class sessions will not always be one-directional lectures and will often
comprise of in-class exercises or activies to reinforce learning, so please be ready to be asked
to participate. On that note, I may call on students during class lectures in a rotational manner
(different students every time). This is not to put you on the spot, but rather to keep everyone
included. If that makes you uncomfortable, please let me know ahead of time.
Instructor Information
Name: Michael C. Chavrimootoo
(he/him/his)
Email: michael (dot) chavrimootoo (at) r o c h e s t e r (dot) e d u
(Students can generally expect a response within 24 hours
on weekdays. This does not apply to homework questions sent within 24 hours of the due date.
I highly recommend you start your work early.)
Office Hours: TBD via Zoom. Link will be on Blackboard.
TA Information
Name: Henry Welles
(he/him/his)
Email: hwelles (at) u (dot) r o c h e s t e r (dot) e d u
Lectures
Monday–Thursday from 10:00AM to 12:30PM (EDT) in CSB 209 or via Zoom. See Blackboard for the Zoom link.
Attendance is required (see grading). You must request special accommodation if you cannot
attend lectures synchronously (and there are few reasons that apply for such accommodations).
Recitations
Tuesdays and Thursday from 6:15PM to 7:30PM (EDT) via Zoom. See Blackboard for the Zoom link.
Attendance is not required, but it is strongly recommended as the material is hard and
the homeworks are tricky, but Henry is an excellent TA.
Course Material
The following textbook is required for the course and it is an excellent resource.
It is available for free at the Carlson Library.
- M. Sipser Introduction to the Theory of Computation, 3rd Edition, 2013 (US Edition).
(Be careful, there is also an international edition and it is not the same as the US edition.
Make sure to get the US edition.)
- Other materials, such as lecture slides, course notes, and homeworks, will be
distributed via Blackboard. You are not be allowed to distribute these.
Schedule
See here. The schedule is subject to change, depending on the class's pace.
Grading
You will be graded on the following basis:
- Attendance → 10%
- Problem-sets → 40%
- In-class exercises → 30%
- Final Project/Presentation → 20%
The different items in each category are equally weighted.
Attendance is mandatory and counts towards your final grade.
Most of the material is quite abstract and to aid in your learning
doing in-class exercises is most productive.
Life happens and you may sometimes need to miss class. I will automatically give everyone
two "free passes": what that means is that you can miss up to two class sessions without
affecting your attendance grade. You don't have to explain yourself, just take them. I
will not give more of those (unless there are an extenuating cirumstance such as sickness,
death, among others).
Additional guidelines may be provided in class.
Homework Rules
You can expect four (4) homeworks in this course (see schedule),
each weighted equally. You are allowed to discuss homeworks with your peers and you can work together,
but you must write your answers individually, i.e., when you write your solutions, it must be without any
external help (such as notes from discussing with a friends; the textbooks, lecture slides, and your course notes
are fair game however).
Homeworks will be released early enough to give students ample time to complete them.
Late homeworks will receive a grade of zero (0), unless you have received an extension from me
(all extensions must be requested well in advance, e.g., asking for an extension 20 minutes before the deadline
is not "well in advance").
I strongly recommend students to always submit something, even if it's partly
done, rather than submit nothing. Partial credit can sometimes add up quite nicely.
Grade Disputes
All grade disputes must be taken up to the instructor within two business (2) days from when
the grade was assigned. Do not discuss issues of grading with tutors, TAs, or peers as they have
no control on the grading.
Disabilities and/or Accommodations
Please reach out to the relevant office and have them inform me if you need any accommodations,
so that I can provide them properly.
Academic Integrity
UR's academic honesty policy will be strictly enforced. You should only submit work
that is completely your own. Failure to do so counts as academic dishonesty and so does being
the source of such work. Submitting work that is in large part not completely your own work
is a flagrant violation of basic ethical behavior and will minimally be punished with failing
the course.
If you're worried about your performance in the course, reach out to m before
considering academic dishonesty. If you're facing a grey area and aren't sure if you might do
something dishonest, reach out to me. At the end of the day, I care about your success
and wish to help to you.
Zoom/Class Etiquette
Lectures will be recorded. Office hours will not be recorded. You are expected to show
mature and respectful behavior both in lectures and in office hours. Do not hesitate to add your
preferred name and pronouns in your Zoom name.
Some tips:
- Often if a problem seems impossible or too hard, you might be overseeing a simplification in the
problem. Other times you might be unintentionally imposing unnecessary restrictions on yourself.
- Short and elegant solutions are always preferred to long and complex ones; if your solution seems overly
complicated, try to see if there's a simpler way.
- Often in life, research, and academics, when a problem seems too hard, it is a good idea to take
a step back and clear your head before returning to it;
endlessly hacking at a problem is not always productive.
- "After solving a challenging problem, I solve it again from scratch, retracing only the
insight of the earlier solution. I repeat this until the solution is as clear
and direct as I can hope for. Then I look for a general rule for attacking similar problems,
that would have led me to approach the given problem in the most efficient way
the first time." – Robert Floyd
- Asking for help (including to the instructor) is never a bad idea.
Disclaimer
This page is subject to change throughout the term. Important changes will be announced in class.