CSC 274
Discrete & Computational Geometry
(Spring 2020)

Joseph O'Rourke

Last Updated: 

DCG text

Syllabus Link

InstructorJoseph O'Rourke

Textbook: Discrete and Computational Geometry, S. Devadoss & J. O'Rourke.

Location: Ford Hall 241

Class Times: Wed & Fri, 9:25-10:40.

Office Hours: FH256, Mon & Tue afternoons: 2:45-5:00.

Overview: The field now called "discrete and computational geometry" (D&CG) sits at the intersection of pure mathematics—math pursued for its own sake—and applications-driven computer science. It is a vibrant, growing field, growing both in pure math (e.g., with new advances in computational topology) and in computer science applications (e.g., to computer graphics). My plan is to pursue the two sides of the D&CG coin in parallel, in a way that will interest math majors, computer science majors, engineering majors, and others. I will arrange that the assignments and exams have two "tracks," one emphasizing the mathematics, one the computation. The former will require proofs, the latter computer programs.

Prerequisites: Ideally a student should have taken both MTH 153 Discrete Mathematics and CSC 111 Introduction to Computer Science through Programming. However, the former is not necessary if the student emphasis the CS track, and the latter is not necessary if the student emphasizes the Math track. Calculus will help but is not essential. If you are uncertain about your preparation, please contact me.

How it "Counts": For CS majors, the course counts as a 200-level course covering either Theory or Programming (but not both). It can serve as a substitute for Algorithms, as I will teach basic algorithms (big-O notation, etc.) For Math majors the course counts as a 200-level elective, contributing 2 credits (not 4) toward the MTH major. For any student, the course carries the Latin Honors M designation.

Enrollments: The course has no enrollment limit.

Programming Language: For the CS majors, I will generally assume knowledge of Python, but in fact you can use any programming language you know. The material is in a sense language-independent. I will introduce Mathematica for everyone.

Course Structure:  We meet two times a week; there is no lab, although we will often have "minilabs" during class time.  There will be one assignment per week, due (generally) each Tuesday at midnight. Ideally you get started over the weekend and can make use of my Mon & Tue office hours.. Collaboration is permitted—even encouraged—on assignments. Use name=274, pass=274 for web access-restricted files.

Submitting Assignments: Via the Moodle page for this course. (If you are registered for the course you should be automatically enrolled to access Moodle.)

Collaboration: Collaboration is encouraged on all aspects of the course except for the three take-home exam-assignments. You may collaborate in groups of 2 or 3 (but not larger groups). You need only submit one copy of the homework for the group. All members of the group get the same grade. I will treat individual submissions and group submissions identically.

Exams:  Two of the assignments will be one-week take-home "exams," which are very much like assignments except that (a) they focus more on understanding rather than "doing," they may have an associated (untimed) Moodle quiz, and (c) unlike assignments, there is no collaboration permitted. You can view the assignment-exams as more comprehensive assignments; they count roughly the same as a regular assignment.

Project: There is a final project, due on the last day of the exam period. (Here collaboration permitted.) Students must give a presentation on their projects in the last week of the course. A typical project would be a series of web pages that explains a particular topic or algorithm professionaly and thoroughly, something like an excellent Wikipedia entry.

Tutors: <none>


n Assignments (n~=6)
Class participation
2 Assignment-exams (take-home): 15% each
See also: Resubmission Policy and Late Policy, and Grading Numerology.

Late Policy