Mathematical Foundations of Computer Science (CS 270/CS 680)

 Announcments  Lectures  Programs  Course Resources   Assignments and Solutions  Grading Policy
Course Description
Emphasizes analytic problem-solving and introduction of mathematical material necessary for later courses in algorithms, compiler theory, and artificial intelligence. Includes topics such as logic, theorem-proving, language operations, context-free grammars and languages, recurrence relations, and analysis of algorithms.
Course Goals
To provide students with the mathematical tools and techniques necessary for describing and analyzing algorithms, programs, and software systems. Material in this course should be helpful in other Computer Science topics and courses such as algorithms and data structures, programming languages and compilers, computer architecture, artificial intelligence, concurrent programming, and software engineering.
Course Objectives
This is a required sophomore level course for Computer Science and Software Engineering students. A graduate version of the course is available as a pre-core course for those students who have not had a previous course in the mathematical foundations of Computer Science.
Students should have some programming experience (CS 172 or equivalent)
Jeremy Johnson
Office: 100 University Crossings
phone: (215) 895-2669
office hours: Monday 4-6, T 4-6, W 1-2. Additional hours by appointment.
Riddhi Dattani
Office: 147 Univ. Crossings (CS Student Resource Center)
office hours: R 10:30-12:30.
Xu Xu
Office: 147 Univ. Crossings (CS Student Resource Center)
office hours: T 3:00-4:00.
Meeting Time
T 6:00-9:00 in Curtis 353
Course Mailing List

Please use this list for questions and discussions related to the course. If you know the answer to someone's question, please feel free to jump in, as long as well it is not an answer to a homework problem. I will moderate the list so that frivolous mail and spam is not forwarded.

Alfred V. Aho and Jeffrey D. Ullman, Foundations of Computer Science - C Edition, W. H. Freeman and Company, 1995.


  1. Recursion, Recursive Definitions and Induction
  2. Iteration, Loop Invariants, and Induction
  3. Introduction to the Analysis of Algorithms
  4. Divide and Conquer Algorithms and Recurrence Relations
  5. Finite State Machines and Regular Expressions
  6. Grammars and Recursive Description of Patterns
  7. Elements of Set Theory
  8. Logic (Propositional and Predicate) and Deduction
  9. Applications of Logic to Program Specification and Verification
  10. Applications of Logic to Digital Circuits


  1. Weekly homework assignments (40%)
  2. Class participation (10%)
  3. Midterm Exams (two exams worth 15% each) (30%)
  4. Final Exam (20%)
For graduate students, there will be additional homework problems, and a project.

Homework problems will be assigned every week, except those weeks with exams. Assignments will be discussed in class when they are due. Students are expected to participate in the discussion of the problems and will have to present their solutions atleast once in the term. No late assignments will be accepted.

Assignments and exams will be returned on a regular basis to provide feedback to students. All students must do their own work. Any violation of this will result in a zero grade for the assignment. A second violation may lead to an F for the course.


Reference Books
  1. ...
Web Pages
  1. ..

Look Here for Important Announcements

Announcements (Mon. Oct. 4 @ 9:00am)


This list is subject to change.
  1. Week 1
    1. Sept. 28, 2004 (Recursion and Induction)
  2. Week 2
    1. Oct. 5, 2004 (Divide and Conquer)
  3. Week 3
    1. Oct. 12, 2004 (Big Oh and Growth Rates)
  4. Week 4
    1. Oct. 19, 2004 (Recursive Data Structures)
  5. Week 5
    1. Oct. 26, 2004 (First Midterm)
  6. Week 6
    1. Nov. 2, 2004 (Grammars and Languages)
  7. Week 7
    1. Nov. 9, 2004 (Parsers)
  8. Week 8
    1. Nov. 16, 2004 (Regular Expressions and Finite State Automata)
  9. Week 9
    1. Nov. 23, 2004 (Second Midterm and Introduction to Logic)
  10. Week 10
    1. Nov. 30, 2004 (Propositional Calculus)
  11. Week 11
    1. Dec. 7, 2004 (Predicate Calculus)

Programs and Worksheets



Created: 9/25/04 (revised 9/26/04) by