CS 173: Discrete Structures Syllabus

The syllabus is divided into the following sections:

Please read all sections thoroughly; they provide a variety of critical information and useful guidance for succeeding in the course.

Course Description

Overview of Topics

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.

Prerequisites

This course is designed for students who have a C- 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 grade below B- in either of these courses, you will probably find this course extremely hard unless you have some additional background. For example, if you got a C in Calculus I, it's best to do Calculus II before this course.

This course makes only very limited use of calculus. However, it assumes a strong fluency with precalculus mathematics (algebra, plane geometry, trigonometry, logarithms, etc.). Calculus courses help develop this fluency, as do some other technical courses (e.g. physics).

This course requires you to analyze algorithms written in "pseudo-code." We assume that you have taken an introductory programming but the choice of programming language (e.g. C/C++ vs. Java) does not matter. You should have written programs that manipulate the contents of arrays (e.g. sort an array of numbers) and programs that manipulate linked lists or other pointer-based data structures. You should also have written programs that are recursive, i.e. in which a function (a.k.a. procedure a.k.a. method) calls itself.

If you aren't sure whether you have the right background, contact us for advice.

Materials

The official course text is Building Blocks for Theoretical Computer Science. This is Version 1.3, with a few updates for Spring 2020. If you are interested in reading another perspective, you may wish to consult the online text Mathematics for Computer Science by Lehman, Leighton, and Meyer.

The booklet of discussion problems is available as a PDF.

Online Tools

Most course content, including homeworks, examlets, and grades, will be delivered through Moodle. Most of you have been automatically registered for CS 173 on Moodle. If not (e.g., not yet registered), use the same access code from lecture to enroll yourself. If you have to locate CS 173 in the main tree of courses, be aware that all engineering courses are listed under the College of Liberal Arts and Sciences for mysterious reasons.

We will use Piazza for Q & A and announcements. To sign up for CS 173 on Piazza, you will need an access code that will be given out in lecture (or ask a member of the course staff).

Back to top

Staff and Office Hours

Instructors

Teaching Assistants

Undergraduate Course Assistants

Discussions

Discussions are on Mondays and Wednesdays. All times are CDT (Chicago). Assigned staff are:

Office Hours

Office hours are shown in the following Google Calendar with links in the descriptions. Go to whichever office hours fit your schedule. You are not restricted to hours staffed by your discussion leaders. Be aware that office hours may change. Revisit this page for current hours, and watch Piazza for last-minute announcements (e.g., someone is sick).

Back to top

Assigned Work

The work you must do for this course includes

See the schedule for when readings and homework are due.

Monitoring grades

You are responsible for keeping an eye on your Moodle gradebook and promptly reporting apparent errors. See the Regrade page for how to report grading and/or entry problems.

For each grade item and average, Moodle will show you how you stand relative to the rest of the class. If the percentage and/or the rank number alarms you, seek help.

Examlets

Weekly examlets (mini-exams) will be held via Moodle in place of Thursday lectures beginning in Week 2. If you check out the grading formula, these account for most of your final course average. The schedule shows we plan to have six weekly examlets, not counting the final.

Examlet 0, if completed, will add 0.5% to your final average.

We do not drop any examlet scores. See the missed work page for how to arrange a makeup.

There will also be a short final exam, consisting of two parts:

We will provide more details on the oral review examlet in the coming weeks.

The whole final (both parts together) is worth twice as much as each of the earlier examlets.

At the final, you can optionally choose to retake one of Examlets 1-5. A selection form will be posted about a week before the final. Your retake score will replace your original score if it is better, but only up to a maximum score of 80%. Therefore, the retake process is useful only for improving a poor score or filling in a zero. Retakes are not offered for Examlet 6.

Questions on examlets are sometimes exact copies of homework or study problems or problems used in past terms. They might be entirely new. Or they might look similar to past problems but differ in critical details. We make no promises about whether you will or won't be doing a problem that you've seen before. Similarly, makeups and retake exams may use previously-seen problems and/or new ones. Therefore, when studying for an examlet, concentrate on mastering general skills rather than memorizing specific solutions.

Reading assignments

To prepare for each lecture/discussion, you will read and collaboratively annotate sections of the textbook via Perusall (linked through Moodle).

We will drop your lowest two Perusall scores in computing your reading assignment average.

Discussion attendance

You are expected to attend the discussion for which you are registered. During discussions, you will work on problems in randomly-assigned small groups, getting feedback from course staff. Make sure you have the manual of discussion problems (PDF) and a notebook or electronic note-taking system.

The expectation is that everyone present at a discussion will receive 100% credit for that week's discussion problems. However, we reserve the right to take off points (or even give zero credit) if behavior during discussion suggests that you aren't making a reasonable effort to do the work as intended. We hope this will be extremely rare.

You get two unexcused absences over the entire semester with no questions asked. However, if you anticipate needing to miss discussion for any reason, please email your instructor or TA to make alternative arrangements. This holds especially true for regular conflicts due to time zones, jobs, family matters, etc.

If you have a one-time or regular conflict, please see the Missed Work page for how to make up your work.

Homeworks

There will be an online homework due 11:59 p.m. on Moodle every Monday and Thursday (except for Monday of Week 1). Homework problems are graded automatically. Although you may submit answers as many times as you like, you won't receive feedback on your score until the submission deadline.

You are expected to do the homework on your own. You may not ask other students (or the Piazza forum) for the answers to those questions (or minor variations of them). However, you may freely discuss the concepts and general issues involved in the questions, and you may get help and hints from course staff at office hours or on Piazza.

We will drop your lowest homework grade when computing your homework average.

Moodle will not allow you to submit homeworks late. Moreover, Moodle will not let you review answers to an activity that you never submitted. Make sure to submit at least once before the deadline, even if your submission is incomplete (or even blank). If you were unable to submit a homework on time for reasons beyond your control, or if you ran into technical issues with your submission, contact your instructor for help.

Study problems

On the Schedule page, you will find links to study problems which should be completed before you take the corresponding examlet. It's better to finish them a few days early so you have time to seek help if you're having trouble with some type of problem. You should write up a solution to each problem on your own, as if you were taking an exam or turning in a graded homework, before checking your answers against the posted solutions. You may freely consult friends and/or course staff for help checking your answers and for hints if you get stuck.

Study problems are not graded and do not directly affect your course average. They are provided to help you prepare to do similar problems on the examlets. If you don't do them, or if you peek at the answers before trying to write your own solutions, you won't be properly prepared for examlets.

Please do not post solutions or partial solutions on Piazza. This will spoil the fun for folks still working on the problems, because they may not yet be ready to see the answer. Contact the instructors privately if you think we need to add something to the posted solutions or hints. However, public discussion of general concepts and techniques is fine.

Back to top

Grading Formula

Your final average is a weighted combination of your averages on examlets, reading assignments, homeworks, and discussions. Specifically,

When we translate these averages into final letter grades, a score of 90 will be at least an A-, 80 at least a B-, 70 at least a C-, 50 at least a D-. If the raw scores are running excessively low, we may revise these cutoffs to be more generous. However, this has happened only very rarely in recent years. In past terms, at least half of the grades have been A's and B's.

Grade Typical Description
A-/A/A+ Consistently strong performance and mature mathematical style
B-/B/B+ Solidly prepared to take later theory classes
C-/C/C+ Adequately prepared for later CS courses, esp. 225 and 374
D-/D/D+ Doing most of the work but not adequately prepared for later CS classes
F Stopped attending or missed many examlets; usually due to circumstances beyond the scope of this class

If you seem to be headed for a D-/D/D+ grade, seek help from the course staff.

We reserve the right to make adjustments to individual final grades to ensure that grades are appropriate in unusual circumstances, such as illness where it's infeasible to make up all the missed work, disabilities that affect the fairness of the standard grading formula, and so forth.

Back to top

Academic Integrity Policy

Historically, this class has very little cheating; we would like to keep it that way. Cheating ruins the experience for everyone and we will pursue appropriate penalties if we catch someone cheating. Please don't.

You can find a general discussion of academic integrity in the student code. See the assigned work section for details about what sorts of help and collaboration are allowed on each type of work. You are expected to be familiar with these policies.

If you aren't sure whether some type of help or resource is ok to use, please consult the course staff. If you aren't sure you've done the right thing, or you got a particularly large amount of help from course staff, or something unusual happens (e.g., a roommate blurts out advice that you didn't ask for), consult with us and/or write an explanation on your work. If you have made a good-faith attempt to acknowledge the help you received, you might not get full points but it won't be considered cheating or plagiarism.

If you don't make a good-faith attempt to follow these policies, we may take action up to and including an academic integrity charge. Our standard penalty for cheating or plagiarism is a zero for the exam or assignment in question, plus lowering your final course grade by a whole letter grade. A second offense will typically cause you to fail the course.

The penalties for facilitating cheating or plagiarism, e.g., giving someone else the answer, depend on the circumstances. If the facilitation is deliberate, the facilitator may receive the same penalty as the person who did the copying.

Also notice that the department and college keep an electronic record of academic integrity cases. They may take more serious action if someone has prior offenses.

Back to top