Mathematical Foundations of Computer Science (CS 270/CS 680)
Announcments Lectures Programs
Course Resources Assignments and Solutions Grading Policy
 Course Description
Emphasizes analytic problemsolving and introduction of mathematical material
necessary for later courses in algorithms, compiler theory, and artificial
intelligence. Includes topics such as logic, theoremproving, language
operations, contextfree 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
 To provide recursive definitions of patterns and data structures.
 To use induction and other proof techniques to prove properties of
algorithms, data structures, programs, and software systems.
 To use regular expressions and grammars to describe patterns and languages.
 To construct and use a finite state machines to accept patterns described by a
regular expression and to design a parser to read a language described by a
grammar.
 To use logic to describe the state of systems and to use logical deduction
to prove properties of systems.
To be able
 Audience
 This is a required sophomore level course for Computer Science and
Software Engineering students. A graduate version of the course is
available as a precore course for those students who have not had
a previous course in the mathematical foundations of Computer Science.
 Prerequisites
 Students should have some programming experience (CS 172 or equivalent)
 Instructor
 Jeremy Johnson
Office: 100 University Crossings
phone: (215) 8952669
email: jjohnson@cs.drexel.edu
office hours: Monday 46, T 46, W 12. Additional hours by appointment.
 TAs
 Riddhi Dattani
Office: 147 Univ. Crossings (CS Student Resource Center)
email: riddhi@drexel.edu
office hours: R 10:3012:30.
 Xu Xu
Office: 147 Univ. Crossings (CS Student Resource Center)
email: xx27@drexel.edu
office hours: T 3:004:00.
 Meeting Time
 T 6:009:00 in Curtis 353
 Course Mailing List

csfoundations@cs.drexel.edu

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.
 Textbook
Alfred V. Aho and Jeffrey D. Ullman,
Foundations
of Computer Science  C Edition, W. H. Freeman and Company, 1995.
Topics
 Recursion, Recursive Definitions and Induction
 Iteration, Loop Invariants, and Induction
 Introduction to the Analysis of Algorithms
 Divide and Conquer Algorithms and Recurrence Relations
 Finite State Machines and Regular Expressions
 Grammars and Recursive Description of Patterns
 Elements of Set Theory
 Logic (Propositional and Predicate) and Deduction
 Applications of Logic to Program Specification and Verification
 Applications of Logic to Digital Circuits
Grading
 Weekly homework assignments (40%)
 Class participation (10%)
 Midterm Exams (two exams worth 15% each) (30%)
 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.
Resources
 Reference Books
 ...
 Web Pages
 ..
Look Here for Important Announcements
Announcements (Mon. Oct. 4 @ 9:00am)
Lectures
This list is subject to change.
 Week 1
 Sept. 28, 2004
(Recursion and Induction)
 Week 2
 Oct. 5, 2004
(Divide and Conquer)
 Week 3
 Oct. 12, 2004
(Big Oh and Growth Rates)
 Week 4
 Oct. 19, 2004
(Recursive Data Structures)
 Week 5
 Oct. 26, 2004
(First Midterm)
 Week 6
 Nov. 2, 2004
(Grammars and Languages)
 Week 7
 Nov. 9, 2004
(Parsers)
 Week 8
 Nov. 16, 2004
(Regular Expressions and Finite State Automata)
 Week 9
 Nov. 23, 2004
(Second Midterm and Introduction to Logic)
 Week 10
 Nov. 30, 2004
(Propositional Calculus)
 Week 11
 Dec. 7, 2004
(Predicate Calculus)
Programs and Worksheets
Assignments
Solutions
 Not posted on the website.
Created: 9/25/04 (revised 9/26/04) by jjohnson@cs.drexel.edu