Foundations of Computer Science
Instructors:
Prof. Daniel R. Schlegel, 464 Shineman Center, daniel.schlegel@oswego.edu
Class Meeting Times:
MWF 10:20am-11:15am, Shineman 444
Office/Lab Hours:
Prof. Schlegel: Monday 1:45pm-2:45pm, Tuesday 9:00am-10:00am, Wednesday 3:00pm-4:00pm, and by appointment.
- In Person: If my door is open feel free to check if I’m available.
- Zoom: I don’t enjoy sitting on empty Zoom calls, so if you absolutely must meet via Zoom send me mail and we can schedule a Zoom meeting during office hours (but you have to show up!).
Tutoring:
The Office of Learning Services (OLS) has tutoring for CSC221.
Course Description:
Formalisms underlying the specification, design, and analysis of software, including propositional and predicate logic, sets, relations, functions, recursive definition and induction, finite state machines, formal languages, Turing machines, and the limits of computability.
Course Objectives:
Upon completion of this course, students will demonstrate ability to:
- [Logic] Convert logical statements from informal language to propositional and predicate logic expressions; apply formal logic to model and analyze the correctness of software constructions; inductively prove properties of recursively defined functions
- [Discrete structures] Use sets, functions, and relations to model software problems and solutions
- [Formal languages] Design a finite state machine to accept a specified language; transform a non-deterministic machine to a deterministic one; design a regular expression to represent a specified language; design a context-free grammar to represent a small expression language
- [Computability] Recognize uncomputable problems that have no algorithmic solution
Textbooks:
Critchlow, Carol, and David Eck. Foundations of Computation., v.2.3.1 (2011). Available at: http://math.hws.edu/FoundationsOfComputation/
Lehman, Eric, F Thomson Leighton, and Albert R Meyer. Mathematics for Computer Science, v.6.6.2018 (2018). Available at: https://courses.csail.mit.edu/6.042/spring18/mcs.pdf
Useful Resources:
Useful symbols to know
Be-Fitched (Fitch-style proof strategies) Local Mirror (formerly @ Stanford)
Peter Suber’s Translation Tips
Attendance Policy and Classroom Etiquette:
As per college policy, attendance in all sessions is obligatory. Students should attend the section in which they are registered. If you cannot attend a class meeting due to religious, athletic, health related circumstance, or circumstance of particular hardship, please notify us in advance via email. Please be ready to present proof, if necessary.
A positive learning environment relies upon creating an atmosphere where all students feel welcome. Discussion is meant to allow us to hear a variety of viewpoints. This can only happen if we respect each other and our differences. Hostility and disrespectful behavior is not acceptable.
Cell phones shouldn’t be used during lecture, and laptops should only be used for taking notes (we don’t recommend this). If use of any electronics becomes districting to other students we reserve the right to discontinue the allowance of their use.
The current university policy will decide the class policy on masks and social distancing. Regardless of class policy, you can do more! If you wish to wear a mask, please do so! If you are sick with a potentially communicable disease, you should wear a mask and seriously consider staying home to prevent the spread of disease.
Assignments:
All assignments will be completed alone, though discussion of general approaches with classmates is encouraged. During the semester there will be roughly 8 assignments. Submission will be via Brightspace or hard copy in class, depending on the assignment.
Due dates for assignments are firm – no late assignments are accepted. Assignments must be submitted at the beginning of class if they are being submitted via hard copy, or by the deadline if they are being submitted via Brightspace. If you would like an extension, you should ask for one before the day the assignment is due. Extensions may or may not be granted, but are more likely to be granted than a late assignment is to be accepted.
Modality:
We meet in person three times a week. There will be no recording, and we won’t work through the content with you in a one-on-one fashion during office hours or an appointment – basically, if you miss class then you missed out on what you signed up for when registering for the class and you will have to work through the content independently. Of course, we will answer questions about the content, if you have any, and there are exceptions for excused absences due to illness etc.
“Go Remote” due to COVID-19: If we are forced to “go remote” for a prolonged period during the semester then we’ll hold class over Zoom and make a Zoom link available on course webpage, as well as email it with the weekly content. This is definitely a sub-par, miserable excuse for a class meeting. We’ll do this only if circumstances force us.
“Go Remote” Days Due to Weather: In short, we value our snow days and will do what is reasonable to make sure that no commuter is in danger, while also maintaining academic integrity. In long, the concept of a “Go Remote” day due to weather is crap. We deserve our snow days. Yes, snow days are a serious inconvenience and create a content crunch, especially if classes are cancelled indiscriminately. But, snow days are also a weather-gifted
day of respite and nearly everyone appreciates an occasional day of rest. We may choose to skip certain topics during the semester so that we can afford to cancel class on a ”Go Remote” day. If it turns out that many classes are cancelled due to weather, then we will have to assign independent reading / activities to cover some of the content.
Exams:
There will be two exams during the semester, one on Friday, September 23 and the second on Friday, November 4. The course content is naturally cumulative, but each exam will focus on material learned since the previous exam.
The final exam will will be given during finals week. Final exams are scheduled by the Registrar’s Office, to prevent conflicts. The final exam will be cumulative, with about 1/3 of the exam focused on material studied after Exam 2 and the other 2/3 covering previous topics from the course.
Grading:
It is expected that each person participate during each class. As discussed before, attendance is required. Each assignment task will be assigned a point value (generally some multiple of 3 depending on difficulty), where the following scheme will be used in grading it:
0 – Did not attempt / No serious attempt
1 – Mostly incorrect solution
2 – Somewhat incorrect solution
3 – Perfect solution
If the problem is a multiple of 3, then intermediate scores will be given as appropriate. The total points received on all assignments will then be summed and divided by the points possible and scaled as appropriate according to the percentages given below. Exams will be graded in the same way as the assignments.
Assignments | 40% |
Exam 1 | 15% |
Exam 2 | 20% |
Final Exam | 25% |
The default grading for the course will be along the university’s standard grading curve:
A: 93-100 | C+: 77-79 |
A-: 90-92 | C: 73-76 |
B+: 87-89 | C-: 70-72 |
B: 83-86 | D+: 67-69 |
B-: 80-82 | D: 60-66 |
E: 0-59 |
A more generous curve may be used, but should not be expected.
Schedule/Outline:
An overly ambitious diagram of the topics to be covered in this course is below.

This syllabus and the course schedule are subject to change by the instructor. All changes and related justification will be announced in class, and updates will be reflected in this web version. Lecture slides/notes will be maintained on Brightspace.
Week | Day | Date | |
---|---|---|---|
1 | Monday | 8/22 | First day of class Syllabus and Overview |
Wednesday | 8/24 | Propositional Logic introduction | |
Friday | 8/26 | Well-Formed Propositions, Intensional Semantics | |
2 | Monday | 8/29 | Extensional Semantics, Truth Tables, Evaluation of Expressions |
Wednesday | 8/31 | Propositional Logic Exercise | |
Friday | 9/2 | WFP Evaluation Equivalence Boolean Algebra Assignment 1 due Friday 9/9 |
|
3 | Monday | 9/5 | Labor Day - No Class |
Wednesday | 9/7 | Boolean Algebra | |
Friday | 9/9 | No Class - Dan Sick See email for self-study of logic circuits |
|
4 | Monday | 9/12 | Binary Representations |
Wednesday | 9/14 | Binary Operations Natural Deduction |
|
Friday | 9/16 | Natural Deduction, continued | |
5 | Monday | 9/19 | Natural Deduction Proof by Contradiction |
Wednesday | 9/21 | Proof by Contradiction First-Order Predicate Logic |
|
Friday | 9/23 | Proofs with Quantified Statements | |
6 | Monday | 9/26 | Set Theory Introduction |
Wednesday | 9/28 | Sets, continued. | |
Friday | 9/30 | Exam 1 Note this was moved from 9/23! |
|
7 | Monday | 10/3 | Power Sets |
Wednesday | 10/5 | Some Set Exercises | |
Friday | 10/7 | Relations | |
8 | Monday | 10/10 | Visualizing Relations |
Wednesday | 10/12 | Properties of Relations | |
Friday | 10/14 | Fall Break - No Class | |
9 | Monday | 10/17 | No Class - Dan Sick |
Wednesday | 10/19 | Relations, Partial Orders, Total Orders | |
Friday | 10/21 | Relations and Functions | |
10 | Monday | 10/24 | Functions |
Wednesday | 10/26 | Computer Functions | |
Friday | 10/28 | Type Signatures | |
11 | Monday | 10/31 | Functional Programming / Higher Order Functions |
Wednesday | 11/2 | More Higher Order Functions | |
Friday | 11/4 | Exam 2 | |
12 | Monday | 11/7 | Recursive Functions |
Wednesday | 11/9 | Induction | |
Friday | 11/11 | Grammars + Languages | |
13 | Monday | 11/14 | No Class - Dan Sick Do reading on regular languages and regular expressions. |
Wednesday | 11/16 | Deterministic Finite Automata | |
Friday | 11/18 | Nondeterministic Finite Automata | |
14 | Monday | 11/21 | Thanksgiving Recess - No Class |
Wednesday | 11/23 | Thanksgiving Recess - No Class | |
Friday | 11/25 | Thanksgiving Recess - No Class | |
15 | Monday | 11/28 | Automata Practice, Turing Machines Introduced |
Wednesday | 11/30 | Turing Machines | |
Friday | 12/2 | TMs, contd. Last day of class |
|
Finals Week | Monday | 12/5 | Final Exam 10:30-12:30 |
Mental Health:
Stress is a normal and important part of our human experience. However, there are times when your stress will exceed your coping skills and resources. The changes that we have experienced due to the COVID-19 pandemic have impacted us all in various ways and are expected to continue to do so for the foreseeable future. Your health and well-being are critical components in your ability to learn. If you find that you are struggling to engage and function, please reach out. Resources are available, including Counseling Services, oswego.edu/csc, which provides brief and confidential counseling support to enrolled students (covered by your student health fee.) After-hours crisis coverage is available by calling Counseling Services at 315.312.4416 and listening to the available options. The CrisisTextLine can be accessed by texting GOT5U to 741741. Lastly, the Oz Concern Navigator, oswego.concerncenter.com, is now available to point you to additional resources to help you address your concerns.
Academic Integrity:
SUNY Oswego is committed to Intellectual Integrity. Any form of intellectual dishonesty is a serious concern and therefore prohibited. You can find the full policy online. While it is acceptable to discuss general approaches with your fellow students, the work you turn in must be your own. You may not turn in code found on the internet. If you have any problems doing the assignments, consult the instructor. See my page on plagiarism for an explanation of what we consider cheating. All parties involved in academic integrity violations will receive a score of zero for that quiz/exam/assignment, and all violations will be reported. Repeat violations, including across semesters, will result in failing the course.
Accessibility:
If you have a disabling condition which may interfere with your ability to successfully complete this course, please contact Accessibility Resources located at 155 Marano Campus Center, phone 315.312.3358, access@oswego.edu.
Clery Act / Title IX Reporting:
SUNY Oswego is committed to enhancing the safety and security of the campus for all its members. In support of this, faculty may be required to report their knowledge of certain crimes or harassment. Reportable incidents include harassment on the basis of sex or gender prohibited by Title IX and crimes covered by the Clery Act. For more information about Title IX protections, go to https://www.oswego.edu/title-ix/ or contact the Title IX Coordinator, 405 Culkin Hall, 315-312-5604, titleix@oswego.edu. For more information about the Clery Act and campus reporting, go to the University Police annual report: https://www.oswego.edu/police/annual-report.