An introduction to some of the most important formal models of computation, and their application to real-world computing problems.
Credit hours: 4.0
Prerequisites: CSC172, MTH150; no exceptions
Class: Mon-Wed 1400-1515 (see BlackBoard for Zoom info)
Web: BlackBoard and www.cs.rochester.edu/u/ferguson/csc/173/Fall2020/
Students may NOT add this course after the end of the two-week online Drop/Add period.
Note for Fall 2020: Please pay attention to the extra information in this syllabus regarding Fall 2020. If further changes are necessary, they will be announced on BlackBoard.
Prof. George Ferguson <ferguson@cs.rochester.edu>
Office: Wegmans Hall 2103 (see instructor website for office hours)
Teaching Assistants:
Study Sessions: TBA (watch BlackBoard for announcements)
This course is an introduction to some of the most important formal models of computation, and their application to real-world computing problems. We learn the formal models, we learn the techniques for analyzing and understanding formal models, we implement something related to the formal models, and we learn how theory and practice go hand in hand in Computer Science.
The course consists of five units:
We will use the C programming language for all projects in this course. We will not spend much time learning C specifically. You will learn to adapt what you know from earlier Computer Science courses to programming in C if you don’t know it already. The following guides may be helpful:
Textbook: Aho and Ullman, Foundations of Computer Science.
This book is excellent and also out of print. This is good news for you, since that means that it is available free on the web: http://infolab.stanford.edu/~ullman/focs.html
Additional readings and resources will be assigned as needed and posted to BlackBoard.
For Fall 2020 (updated 27 Aug 2020):
Course calendar (including readings, assignments, and exam dates): www.cs.rochester.edu/u/ferguson/csc/173/Fall2020/calendar.html
Grading: Each unit will be equally weighted in the final grade. For Fall 2020:
Letter grades will follow the Official University of Rochester Grading Scheme. Note that the University scheme puts “average” somewhere between C and B. The following table is an estimate of how the numeric grades will map onto the letter grades (subject to change):
A: Excellent | >=90% |
B: Above Average | >=80% |
C: Minimum Satisfactory Grade | >=70% |
D: Minimum Passing Grade | >=60% |
E: Fail | <60% |
All appeals of grades must be made within ONE WEEK of the grade being posted (sooner at the end of term).
All assignments and activities associated with this course must be performed in accordance with the University of Rochester’s Academic Honesty Policy. More information is available at: www.rochester.edu/college/honesty
You will learn the most if you do all the work in this course ON YOUR OWN.
That said, collaboration on projects is permitted, subject to the following requirements:
Avoid sites like GitHub and StackExchange for the duration of this course.
Note also that posting homework and project solutions to public repositories on sites like GitHub is a violation of the College’s Academic Honesty Policy, Section V.B.2 “Giving Unauthorized Aid.”
The University of Rochester respects and welcomes students of all backgrounds and abilities. In the event you encounter any barrier(s) to full participation in this course due to the impact of disability, please contact the Office of Disability Resources. The access coordinators in the Office of Disability Resources can meet with you to discuss the barriers you are experiencing and explain the eligibility process for establishing academic accommodations. You can reach the Office of Disability Resources at: disability@rochester.edu; (585) 276-5075; Taylor Hall.
Students with an accommodation for any aspect of the course must make arrangements IN ADVANCE through the Disability Resources office. Then, as instructed by the office, contact the instructor to confirm your arrangements. Do not leave this until the last minute.
We hope that you will want to view the lectures and participate in the class sessions, but attendance is NOT required. If you choose not to view or participate, you may miss important announcements or information about the course.
This course follows the College credit hour policy for four-credit courses, including lectures and study sessions.
Students are expected to do significant work outside of class time. This supplementary work on homework, projects, and exam preparation may require up to twice again as many hours of effort per week.
This course follows the University policy regarding incompletes: “Incompletes may be given only when there are circumstances beyond the student’s control, such as illness or personal emergency, that prevented the student from finishing the course work on time.”
Computer crashes, malfunctions, and catastrophic loss of files are NOT valid excuses for not submitting work on time. CSC173 students are Computer Scientists. You should know how to deal with this by now. Backup your files regularly to at least one external drive and/or cloud storage.
Network connectivity problems are also NOT an excuse for not submitting work to BlackBoard on time. CSC173 students are all familiar with BlackBoard, for better or worse. Upload early just in case.
Fall 2020: Students working remotely must be prepared to deal with problems. Computers are unreliable. The Internet is unreliable. BlackBoard is unreliable. We all understand that. But the bottom line is: I can’t give you a grade if you can’t do the work.
Students who are unable to attend or complete any part of the course due to illness should contact the instructor AS SOON AS POSSIBLE. Please note that the University Health Service (UHS) does not provide retroactive excuses for missed classes. Students who are seen at UHS for an illness or injury can ask for documentation that verifies the date of their visit(s) to UHS without mention of the reason for the visit. Students with extended or severe illness should contact the College Center for Advising Services (CCAS) for advice and assistance.
Fall 2020: For remote students, medical excuses will still require some kind of documentation from a healthcare provider. If you cannot visit UHS, please make arrangements with whoever you visit. Contact CCAS or Disability Services if you need more help with this.
Students with an appropriate excuse for missing any exam or project deadline must make arrangements IN ADVANCE.
Please also note Section V.7 of the College’s Academic Honesty policy regarding “Unauthorized Recording, Distribution or Publication of Course-Related Materials.”