Foundations of Computer Science
Instructors:
Prof. Daniel R. Schlegel, 464 Shineman Center, daniel.schlegel@oswego.edu
Prof. Elizabeth Wilcox, 174D Marano Campus Center, elizabeth.wilcox@oswego.edu
Class Meeting Times:
Section 800: MWF 11:30am-12:25pm, Shineman 174
Section 810: MWF 12:40pm-1:35pm, Shineman 172
Office/Lab Hours:
Prof. Schlegel: Mon. 2-3pm, Wed. 2-3pm, Thurs. 1-2pm, and by appointment.
Prof. Wilcox: Mon and Wed 2-3:30 in 174D MCC, Tues. 10:45-11:45 in 450 Shineman, and by appointment.
- In Person: If one of our doors is open feel free to check if we are available.
- Zoom: Neither of us enjoys sitting on empty Zoom calls, so if you absolutely must meet via Zoom send one of us mail and we can schedule a Zoom meeting during office hours (but you have to show up!).
- Discord: Prof. Wilcox is available during office hours through Discord. You can find her on the CSA Discord server. Prof. Schlegel is not consistently active on Discord and might be better to reach by email.
Tutoring:
The Office of Learning Services (OLS) has walk-in tutoring hours for CSC221 from 6-8pm on Tuesdays.
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.
It is expected that everyone will wear a mask and socially distance according to current university policies.
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 Blackboard 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 Blackboard. 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:
The course is divided into four units, covering content related to formal logic, mathematical logic, grammars/languages, and models of machines. After each unit of approximately three weeks each, there will be an exam. Units may take a somewhat shorter or somewhat longer amount of time, so expect some variability. Exams will come at least one class day after the unit has concluded to provide time to study. The first three exams will primarily cover the topic of the most recently completed unit, but the concepts in this course build upon each other so you may need concepts from previous units.
The final exam will follow the last unit of the course and will be given during finals week at the scheduled time. The final exam will be cumulative, with about 50% of the content having to do with formal models of machines, and the other 50% 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 | 10% |
Exam 2 | 15% |
Exam 3 | 15% |
Final Exam | 20% |
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:
A 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 Blackboard.
Week | Day | Date | Topic | Assignment/Assessment |
---|---|---|---|---|
1 | Monday | 1/24 | First Day of Class Overview + Syllabus | |
Wednesday | 1/26 | Formal Logic Propositions | ||
Friday | 1/28 | Compound Expressions Intensional Semantics | ||
2 | Monday | 1/31 | Intensional Semantics Truth Tables | HW1 Assigned |
Wednesday | 2/2 | Truth Tables Extensional Semantics | ||
Friday | 2/4 | Truth Table Arguments Boolean Algebra | HW1 Due | |
3 | Monday | 2/7 | Boolean Algebra | HW2 Assigned |
Wednesday | 2/9 | Boolean Algebra | ||
Friday | 2/11 | Bitwise Operations | HW2 Due | |
4 | Monday | 2/14 | Logic Circuits | |
Wednesday | 2/16 | Natural Deduction: Conjunction and Implication | ||
Friday | 2/18 | Natural Deduction: Proof by Contradiction | ||
5 | Monday | 2/21 | Propositional Logic, concluded. First-Order Predicate Logic | HW3 Assigned |
Wednesday | 2/23 | Natural Deduction: Proofs with Quantifiers | ||
Friday | 2/25 | Snow Day | ||
6 | Monday | 2/28 | Exam 1 | |
Wednesday | 3/2 | Discrete Structures, Sets | ||
Friday | 3/4 | Sets, continued | HW3 Due | |
7 | Monday | 3/7 | Power sets, cartesian product | HW4 Assigned |
Wednesday | 3/9 | Counting with Sets | ||
Friday | 3/11 | Sets and Relations | HW4 Due | |
8 | Monday | 3/14 | No Class - Spring Break | |
Wednesday | 3/16 | No Class - Spring Break | ||
Friday | 3/18 | No Class - Spring Break | ||
9 | Monday | 3/21 | Relations | |
Wednesday | 3/23 | Relations and Functions | ||
Friday | 3/25 | Functions, continued | ||
10 | Monday | 3/28 | Exam 2 | |
Wednesday | 3/30 | |||
Friday | 4/1 | |||
11 | Monday | 4/4 | ||
Wednesday | 4/6 | Quest Day | ||
Friday | 4/8 | |||
12 | Monday | 4/11 | Recursion and Induction | |
Wednesday | 4/13 | Induction | HW6 Due | |
Friday | 4/15 | No Class - Easter Weekend | ||
13 | Monday | 4/18 | Formal Languages | |
Wednesday | 4/20 | Regular Expressions and Grammars | ||
Friday | 4/22 | Exam 3 | ||
14 | Monday | 4/25 | Deterministic Finite Automata | HW7 Assigned |
Wednesday | 4/27 | |||
Friday | 4/29 | |||
15 | Monday | 5/2 | ||
Wednesday | 5/4 | |||
Friday | 5/6 | Last Day of Class | ||
Finals Week | Wednesday | 5/11, 5/13 | Wednesday / Friday 10:30-12:30 | Final Exam |
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.