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
- 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 pre-core 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) 895-2669
e-mail: jjohnson@cs.drexel.edu
office hours: Monday 4-6, T 4-6, W 1-2. Additional hours by appointment.
- TAs
- Riddhi Dattani
Office: 147 Univ. Crossings (CS Student Resource Center)
e-mail: riddhi@drexel.edu
office hours: R 10:30-12:30.
- Xu Xu
Office: 147 Univ. Crossings (CS Student Resource Center)
e-mail: xx27@drexel.edu
office hours: T 3:00-4:00.
- Meeting Time
- T 6:00-9:00 in Curtis 353
- Course Mailing List
-
cs-foundations@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