CMSC 27100 — Introduction

Welcome! You may be wondering what we're learning in this course. On this page, I give three answers. If you're looking for logistical information, you can find it on the course syllabus.

What are we learning in this course?

This is a course about logical reasoning and problem-solving.

In a computing world that is increasingly dominated by automation, it will become all the more important to be able to (1) ascertain and verify the truthfulness of claims and (2) creatively problem-solve in complex situations. At least for now, these are precisely what LLMs are bad at.

What are we learning in this course?

This is a discrete mathematics course. If you grew up in the US, chances are your mathematical education focused more on continuous mathematics - think calculus and real numbers. After all, the real world is continuous, so most science is continuous as well! However, data is decidedly discrete (try as we might to allow otherwise), so the math we need to do computer science is largely focused on discrete structures. Rather than concern ourselves with the infinitely small and the infinitely large, we will discuss things that come in neatly packaged units, and how to think about them, talk about them, and more importantly prove facts about them. Not all of the math will be explicitly useful in the future, but all of the proof techniques and problem-solving skills gleaned from these problems will generalize widely throughout CS.

What are we learning in this course?

This course is a grab bag of topics in discrete mathematics, divided into three major units.

  1. Logic and proofs (Unit 1). Logic will dictate how we can reason about statements, so it'll be underpinning for all of the ideas and proof strategies that we'll use throughout the course.
  2. Number theory (Unit 1). Number theory is the study of the properties of integers, with a heavy focus on the prime numbers. Integers follow a familiar and intuitive set of rules, which should give us a more approachable on-ramp to proofs.
  3. Combinatorics (Unit 2). Combinatorics is the study of how to count things. You may have some experience doing this from infancy, but unfortunately computers (and thus our class) handle quantities much larger than the number of fingers you have, and for values like that we probably shouldn't be counting one by one either.
  4. Probability theory (Unit 2). Probability is the study of quantifying the likelihood that events will occur. We focus on discrete probability, where events occur with countably many possible outcomes.
  5. Graph theory (Unit 3). Graph theory is the study of graphs. These are not graphs in the calculus or statistics sense, but graphs as a set of vertices connected by edges. Graphs are often introduced as a representation of a physical map, but they can more abstractly represent relations among a set of objects, like friendships in a set of people or similarities in a set of courses.