Course Syllabus,
CS 3512 Computer Science Theory
Spring Semester 2011

Course Data:
Instructor: Doug Dunham
Web Site:
Office:311 Heller Hall
Office Hours: M, W*, F 3-4, Tu 2-4, and by appointment
*Except for April 13, 20, 27 when they will be 12-12:50
Lectures: M, W, F 1-1:50 p.m. and M 12-12:50 p.m. in HH 306
Course Web Site:

Grader: Reena Rachel
Web Site:
Consulting: Tu 3-3:50 p.m. in HH 314, Tu 4-4:50 p.m. in MWAH 177, and F 2-2:50 p.m. in MWAH 177

Course Desciption (pdf):

Bulletin description: Sets, relations, functions. Recursive definitions of functions and sets. Proof methods, including mathematical and structural induction, diagonalization. Program correctness, asymptotic time/space complexity. Formal language theory, including regular languages and expressions, deterministic/nondeterministic finite automata, Kleene's Theorem.

Calc I, CS2511, or equivalent. Important note: The computer science bachelor's degree program at UMD is accredited by CAC (the Computing Accreditation Commission). One of the CAC requirements is that all students must satisfy the prerequisites in order to be admitted to a course, so if you have not passed the prerequisite courses, you must drop this course (if you have any questions about this, please see the instructor after the lecture or during office hours).

Course Objectives and Content:
This course introduces the underlying theory of computer science. The topics come from mathematics, logic, and computer science itself. In this spirit, the course emphasizes standard methods for expressing and establishing mathematically and logically precise claims. We introduce many well-known, widely-used definitions and carefully consider what follows from them.

The following is a rough outline of the material from the text that I hope to cover in the course. Chapter 1 (proofs, sets, structures), Chapter 2 (functions, countability), Chapter 3 (inductive and recursive definitions), Chapter 4 (relations, inductive proof), Chapter 5 (analyzing algorithms, rates of growth), and Chapter 11 (regular languages, finite automata).

Equal Opportunity:
The University of Minnesota is committed to the policy that all persons shall have equal access to its programs, facilities, and employment without regard to race, color, creed, religion, national origin, sex, age, marital status, disability, public assistance status, veteran status, or sexual orientation. As instructor, I am committed to upholding University of Minnesota's equal opportunity policy. I encourage you to talk to me in private about any concerns you have related to equal opportunity in the classroom. To inquire further about the University's policy on equal opportunity, contact the Office of Equal Opportunity, 269-273 DAdB, (, phone: (218) 726-6827 or (218) 726-6849, email:

Students with Disabilities:
If you have any disability (either permanent or temporary) that might affect your ability to perform in this class, please inform me as soon as possible. I may adapt methods, materials, or testing so that you can participate equitably. To learn about the services that UMD provides to students with disabilities, contact Disability Services and Resources 258 Kirby Student Center, (, phone: (218) 726-6130, email: or contact the Office of Equal Opportunity, 269-273 DAdB, (, phone: (218) 726-6827, email:

Mental Health Statement:
As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce a student's ability to participate in daily activities. University of Minnesota services are available to assist you with addressing these and other concerns you may be experiencing. You can learn more about the broad range of confidential mental health services available on campus via the UMD Health Service Counseling website at

Textbook: James L. Hein, Discrete Structures, Logic, and Computability, Third Edition, 2010, Jones and Bartlett. Web site:

It is not directly required that you attend class, however: You are responsible for reading assigned text material and for material covered in class and in the lab, including:

  1. doing the reading assignments from the text
  2. the material covered in the lectures
  3. obtaining assignments and handouts
  4. turning in programming assignments and homework

If you are unable to attend a class meeting, it is your responsibility to obtain class notes, assignments, and extra copies of handouts from your study partner. Note: assignments are due at the beginning of class on the due date (unless otherwise specified) -- they will be docked 25% per day if turned in late.

Homework Assignments:

The assignments will consist of written homework. The homework should adhere to the Written Homework Format.

Examinations and Grading:

There will be two midterm exams, worth 100 points each, and a final exam worth 200 points.

Exam Schedule:
ExamPointsDate and Time
Midterm Exam 1 100 points Wednesday, February 23, 1-1:50 pm in HH 306
Midterm Exam 2 100 points Wednesday, April 6, 1-1:50 pm in HH 306
Final Exam 200 points Thursday, May 12, 2-3:55 pm in HH 306

The final exam will be comprehensive. Exams will not be given early, and makeups must be justified by dire circumstances described to the instructor before the time of the exam. It is Department of Computer Science policy not to return final exams, however they are kept and you can look at your exam in the instructor's office. The UMD Final Examination Policy web page explains the UMD policy about having more than two final exams on a single day, among other things.

Note: The grade of I (incomplete) can be given only when (a) the student has performed satisfactorily during most of the semester, and (b)the student is unable to finish the semester's work on time for reasons beyond his or her control. Students will not be assigned an incomplete solely for the purpose of avoiding a poor grade. According to UMD grading policy:
( )
the temporary grade I (incomplete) is assigned only when a student has made an agreement with the instructor to complete the course requirements before the instructor submits final grades for a semester.

Scores will be maintained on eGradebook

Grading Procedures: Final grades are based on total points distributed approximately as follows:

Grades are assigned based on a percentage of the total points. These percentages may be lowered slightly but they will not be raised.

The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.
Page URL: /~ddunham/cs3512s11/syllabus.html
Page Author: Doug Dunham
Last Modified: Saturday, 23-Apr-2011 13:04:40 CDT
Comments to: