CS173: Discrete Structures
Syllabus

This course is an introduction to the theoretical side of computer science. In it, you will learn how to construct proofs, as well as read and write literate formal mathematics. You will also get a quick introduction to key theory topics, particularly analysis of algorithm running times. And you will also become familiar with a range of standard mathematics concepts commonly used in computer science.

The course is designed for students who have a B- or above in introductory programming for CS/CE majors (CS 125 or ECE 220) and in one term of calculus (Math 220 or 221). If you have a lower grade in these prerequisites, please talk to your advisor about how to firm up your background before taking CS 173.

Textbook and resources

The official course text is Building Blocks for Theoretical Computer Science (Version 1.4).

Our course forum will be on Discord. Homeworks and exams will be on PrairieLearn, with the exams taken in-person at the CBTF. Use this link to enroll in our course on PrairieTest. Our gradebook will be on either Canvas or Moodle. Use the "Resources" tab in the top menu to access any of these tools.

You can find a calendar of office hours on the main course page.

Meeting times and topics

Our class meets for 75 minutes on Tuesdays and Thursdays. See the campus course schedule for your specific section's time and location. On Tuesdays (and Thursday the first week), class is an interactive lecture. On Thursdays, we hold tutorials. Attendance is taken only for tutorials but you are strongly urged to show up on both days.

You are expected to bring writing tools (physical or electronic) so that you can work on problems during class. For tutorials, you are also expected to bring a laptop or tablet to interact with PrairieLearn. (Phones also work but are very awkward.)

See the "Schedule" tab for weekly topics, readings, lecture notes.

Preparing for class

To prepare for lecture, you are expected to

The pre-unit homeworks are intended to help you absorb the material, so you can submit them as many times as needed to get the answers correct.

Except on the first Tuesday, lectures will assume that you've already done the textbook readings. So we will highlight important or difficult aspects of each topic and work problems together.

Tutorials

Tutorials will be held on Thursdays starting Week 2. At tutorial, you will work on problems with classmates. Each of you will (separately) type your solutions into PrairieLearn as you would on an examlet. (See brief guide for help formatting equations.) When you're finished, the course staff will give you feedback and mark your work as completed on PrairieLearn.

We'll be grading for good-faith completion, so everyone should be able to get 100% on the tutorials. However, you must come to class to get points for the tutorial problems. Before you leave the clasroom, make sure that PrairieLearn is showing that we have given you a non-zero grade on the tutorial assignment.

Tutorial problems will be posted on PrairieLearn on Wednesday if you wish to look at them ahead of time. Model solutions will be posted Thursday evening after tutorials are finished.

Exams and study problems

There will be weekly examlets starting in Week 3, and a comprehensive final exam. See the "Examlets" tab for more details.

The lecture schedule for each week includes links to "study problems". These problems are not explicitly graded but you are expected to do them in preparation for the examlets. You should first write up a full solution of your own, using the hints if necessary, as if you were answering a question on an exam. Then consult the model solution, which has commentary to help you identify any problems in your answer.

Questions on examlets are generally similar to the study problems and old exam problems (see the Resources tab above). Some may even be identical. But some may be entirely new questions testing the same skill. Therefore, when studying for an examlet, concentrate on mastering general skills rather than memorizing specific solutions.

Grading and grade-related problems

Your grade is based on tutorial participation, pre-lecture homeworks, the examlets, and the final exam. See the "Grading" tab for details of the formula.

See the "Help" tab for detailed information on topics such as regrade requests, missed work, and disability accommodations. Notice, in particular, that regrade requests must be submitted within a week after we release grades for the exam or homework involved.

Collaboration and academic integrity

We encourage you to seek help from classmates and course staff when learning the material, e.g. tutorials, homework, study problems. However, you should practice doing problems on your own as much as possible, because you'll need to do that on the examlets. And then seek help as/when you get stuck.

See the student code for general university guidelines and our examlet instructions page for our expectations specific to the CBTF proctored examlets. A typical sanction for a first infraction is an undroppable zero on the grade item (e.g. an examlet) or a 5% reduction in your course average, whichever is larger. A second infraction will result in a larger sanction or (e.g. cheating on two examlets) failing the course.