CSC 208-01 (Fall 2023)

Course Syllabus

(Last updated: January 28, 2023)

(Note that due to the rapidly changing world that we find ourselves in, this syllabus’s policies are perpetually subject to change. All changes to course policies will be reflected in this document and announced in advance in class.)

Overview

What are the mathematical foundations of computer science? How does mathematical formalism relate to the pragmatics of computer science? In this course, we study discrete mathematics, broadly the branches of mathematics that study discrete objects, and their applications towards computer science.

By understanding discrete mathematics deeply, we, in turn, gain an understanding of how mathematics informs our studies as computer scientists, namely:

Finally, by studying discrete mathematics in depth and relating it to our experiences as computer programmers, we also gain expertise and comfort in studying mathematics as a discipline of modeling and problem-solving.

Course Learning Outcomes

Textbook, Software, and Connectivity

There is no required textbook for this course. Required readings for the course will be distributed electronically as an evolving set of course notes. The course webpage and readings contain suggestions for supplementary texts that give alternative takes on topics or go into more depth.

In this course, we will use the following software packages and services:

You will receive invitations to Gradescope and Teams at the beginning of the semester. Please let me know if you do not receive access to those sites. The course webpage also contains additional software resources, _e.g., Scheme and LaTeX tutorials and other utilities, that you might find useful in this course.

Diversity and Inclusion

I believe that any college-level course should challenge you and put you outside of your comfort zone. My mission as an instructor is to help you manage that discomfort so that you can grow in knowledge and maturity. Therefore, I strive to create a fully inclusive setting so that we all can ultimately succeed in the classroom.

Learning Needs

I welcome you to talk to me as early as possible about your distinctive learning needs. I particularly encourage students with disabilities to meet with me and discuss how our classroom and course activities could impact their work and what accommodations would be essential. As part of the accommodations process, I recommend talking to our Coordinator for Student Disability Resources for guidance and further instructions:

Religious Observance Policy

I also support the class’s religious diversity and anyone who needs to balance academic work with religious observations. Please let me know by week two if you will need to be absent from class for any religious holidays this semester, and we can work out an appropriate schedule for making up absences or missed work.

Other Accommodations

There are a limitless number of dimensions to diversity and inclusion, the totality of which are un-addressable with a finite set of policies. These may include other issues best addressed earlier in the semester (e.g., student-athlete scheduling) or as they arise (e.g., chronic health flare-ups).

When appropriate, the course features various systems to allow you to turn in work late up to certain limits. Please use these systems (if they are available) first if such issues arise. If such systems are not available, I will do my best to be flexible in these cases with the ultimate goal of facilitating your growth in this course. The earlier that you inform me of such situations, the more I will be able to help you navigate them this semester.

Extended Absences

If you need to take an extended absence from in-person learning, i.e., longer than 2 class periods, I am happy to work with you individually to develop accommodations that will help you succeed and thrive. The only thing I need you to do is to let me know as soon as possible when such a situation will arise or has arisen. I cannot take action if I do not know what is going on, and due to the busyness of the semester, I may notice your absence too late to provide meaningful help.

Because of the finite time we have together this semester, some situations may arise where a reasonable accommodation may not be possible. I will also work individually with you on evaluating options for managing your workload and assisting you in deciding whether continuing with the course is feasible.

Note that while I welcome you to disclose whatever information you feel would be helpful for me to give you appropriate accommodations, you do not need to share any specific medical information with me that you are uncomfortable sharing. I only need to know as early as possible, ideally in advance, of an extended absence, to be able to work with you.

Course Work and Evaluation

My grading philosophy comes from the grading for growth movement described in such texts as Nilson’s Specifications Grading, Feldman’s Grading for Equity, and Blum’s Ungrading. I believe that:

  1. The stated learning outcomes are achievable by anyone that enrolls in this course.
  2. Mastery of the learning outcomes is obtained via exploration, experimentation, and failure.
  3. Eventual mastery should be valued as highly as “getting it right” the first time.
  4. Your final course grade should reflect your mastery of the course’s learning goals at the end of the term.

To this end, the course is structured around several deliverables that, when taken together, indicate your mastery of the course’s learning outcomes outlined in the Overview section of the syllabus.

Deliverables

The main activities of our course are centered around four kinds of deliverables:

Daily Drills

In each course reading, you will find a small number of practice problems that reinforce the concepts introduced in the reading. As the old saying goes, “mathematics is not a spectator sport,” and so these drills are designed to help you begin putting the day’s topics into practice.

Lab Exercises

The bulk of your practice and exploration of the course learning goals come through lab exercises. These lab exercises will allow you to gain familiarity and eventual fluency with the course concepts by exploring and working through problems. More often than not, lab exercises are completed in small groups so that you can take advantage of the benefits of collaborative learning.

Projects

The course projects serve as an opportunity for you to demonstrate mastery of each of the units of course. Each course project is an individually completed, open-ended problem for you to solve and features both a programming and verification component. Note that because the course is ultimately about program verification, the programming component will be fairly minimal. Details of each project will be made available throughout the semester.

Course projects will be graded in more depth than the other deliverables, specifically along two dimensions:

Rather than using a point-based system that obscures these two dimensions, we codify these requirements with an EMRN rubric (an adaption of the “EMRF” rubric designed by Stutzman and Race). Projects are graded on a four-point scale:

Each project has a project-specific rubric in its write-up that outlines what we will be looking for regarding correctness and design.

Note that excellent ratings represent work that reflects mastery of the material and mindfulness towards producing quality work. To obtain excellent ratings, you should dedicate ample time to review and revise your work—just like writing a paper—before the deadline.

Project Revisions and Feedback

To promote learning and encourage you to produce quality work, we use a revision system for mini-projects:

You are, then, free to turn in a revision of a project based on your prior submission’s feedback. Revisions for a project are typically due one week after your receive feedback on your initial submission. If you would like to revise this work beyond the initial revision period, you must use a token to do so (see below).

When submitting a revision, you must include a short changelog at the beginning of your submission summarizing the changes you have made. Such a changelog will help us process your revisions quickly. If you do not include a changelog, your submission will be rejected without being reviewed by the course graders.

Incomplete Assignments

An N indicates that your submission was not complete enough for us to ascertain that you understood the material or we are unable to give you substantial feedback. With the rapid pace of the course, an N also indicates that you are behind and need to put in extra effort to catch up.

If you earn an N on a project, you must meet with us either during office hours or through a 1-on-1 meeting. In this meeting, we will:

Core Exams

We deem some of the learning outcomes of the course as core outcomes, demonstrable skills that you should be confident in performing by the end of the semester. To directly assess your mastery of these skills, we will conduct a series of core exams over the course of the semester. Core exams are in-class exams inspired by mastery-based testing practices found in mathematics.

Core exams consist of one problem for each core learning outcome of the course covered so far at the time of the exam. This includes all learning outcomes covered in previous core exams, allowing you reattempt problems if you missed them on previous exams!

Core problems are graded on a binary satisfactory (S)/non-satisfactory (N) scale where a satisfactory answer is completely correct (modulo minor flaws that are understandable given the timed, in-class nature of the exam). Note that, unlike the project exercises, core problems more closely resemble the daily drills in terms of their scope and complexity. Once you receive an S on a problem tied to a particular core outcome, you do not need to attempt additional problems connected to that outcome in subsequent exams, i.e., you have demonstrated mastery of that outcome, so you are done with it!

The final core exam period of the course, held during finals week, is a revision core exam. No new learning outcomes are introduced so that you have a final opportunity to demonstrate mastery of any core outcomes that you have missed throughout the semester.

Final Deadline for All Work

Note that all work must be submitted by Friday, December 15, 5:00 PM CST . This is College policy and cannot be waived for any reason. If you find yourself needing to turn in work past this deadline, you must consult with me as soon as possible to submit an incomplete request for the course. Regarding incompletes:

Overall Letter Grades

Major letter grades for the course are determined by tiers, a collection of required grades from your projects and core exams. You will receive the grade corresponding to the tier for which you meet all of the requirements. For example, if you qualify for the A tier in one category and the C tier in another category, then you qualify for the C tier overall as you only meet the requirements for a C among all the categories.

Note that I reserve the right to update the requirements for grades as circumstances dictate during the semester, e.g., if a deliverable is cut. However, I will always update the requirements so that they are no stricter than they were previously.


Tier Projects (4) Core (14)
A
  • No Ns or Rs
  • At least 3 Es
  • Remainder Ms
  • At least 12 Ss
B
  • No Ns or Rs
  • At least 2 Es
  • Remainder Ms
  • At least 10 Ss
C
  • No Ns
  • At most 2 Rs
  • At least 1 E
  • Remainder Ms
  • At least 8 Ss

Plus/minus grades

To earn a plus/minus grade, you must have completed one tier’s requirements and partially meet the next tier’s requirements. This will arise in two situations: C/B and B/A. For example, you may completely meet the requirements of a C and meet the requirements of a B for projects, but not for core exams. In these situations, you will earn a minus grade for the higher tier, i.e., a B- if you are between a C and B and an A- if you are between a B and an A.

Be aware that if you are at an A tier for one deliverable category but at a C tier for another, then you fully qualify for the C tier and partially meet the requirements of the B tier and thus would earn a B-.

Daily drill and lab grades

You are allowed to miss up to six total daily drills and lab assignments in the semester without penalty. If you miss more than this, your overall letter grade will be lowered by one-third of a letter grade for each two additional dallies or labs you miss. Excesses of one also result in a loss. For example,

I hope that you will do your best to miss as few daily drills and labs as possible.

Course Breakpoints

Our grading system offers flexibility, but at the cost of giving the illusion that if you fall behind in your work, there is always an opportunity to catch up. While this is true in theory, in practice, it is difficult to do so in many situations because of personal issues, competing courses, extracurricular obligations, etc. This flexibility also makes it difficult—for both you and myself—to determine when you have fallen behind in the course and need external help whether that it is from the course staff, tutors, or academic advising.

I encourage you to also preemptively come to me for help and guidance if you feel like you are falling behind. However, to be more clear about when you might be falling behind in the course, I am tracking the following course breakpoints in your progress. When one of the following situations occurs:

I will follow up with you as well as academic advising (via an academic alert) to check in, provide guidance, and develop a plan for getting back on track.

Help, Collaboration, and Academic Honesty

There are several resources—course staff, your peers, and external sources—that you can use to expedite your learning in the course. However, you must balance your use of external resources with the need for your to produce original work, so that we can assess your learning properly. To this end, we have several policies of what resources are permissible to use depending on the deliverable you are using them on.

The Instructor and Course Staff

Please use each course staff member’s preferred means of communication, e.g., email, to communicate with them about individual issues concerning logistics, grades, projects, or core exam questions. Regardless of medium, note that the course staff will generally not respond immediately to messages. However, we will check our messages at fixed times throught the day.

Peer Learning and Outside Resources

Utilizing discussion with peers and outside learning to facilitate your learning is a critical skill for success in computer science. However, at the same time, you must be aware that getting stuck and pushing through challenging problems is essential for robust learning. To this end, we allow the following forms of collaboration.

Keep in mind that adaptation of pre-existing code or solutions whether it comes from a peer, myself, or the Internet, requires a citation in the cases where it is allowed.

In all cases, the work that you produce should be your own. The golden rule is that you should be capable of reproducing your deliverable on the spot with minimal effort if it was accidentally deleted.

If you feel that the stress and pressure of the course are compelling you to violate the academic honesty policies of the course and the college as explained in the student handbook, please talk to me as soon as possible. The course’s grading policies are designed to help you manage your time in light of the different stressors in your life. I will do my best to work with you to figure out how to help you better manage your time relative to your learning goals and desired achievement level for the course.

Sharing of Course Materials

While you retain copyright of the work you produce in this course, we must still uphold the academic integrity of this course. To this end, you may not share copies of your assignments with others (unless otherwise allowed by the course policies) or upload your assignments to third-party websites unless substantial changes are made to the assignment (e.g., significant extensions and improvements to your code). Ultimately, it must be clear that the end product is significantly different from what was asked in the original assignment. I do recognize that there are times when you want to do this, e.g., uploading projects to Github for your resume, and so I encourage you to talk to me in advance so that we can ensure that you upload a meaningful project that does not run afoul of this policy.