ENEE641: Mathematical Foundations for Computer Systems

Instructor: Joseph JaJa

Assignments:

Fall 2006 Course Syllabus              

Course Objectives: Mathematical modeling, analysis, and proof techniques related to computer algorithms and systems. Probability, combinatorics, and graph theory as they pertain to the design and performance of computer systems. Techniques for the design and analysis of algorithms and data structures. Study of efficient algorithms from areas such as graph theory and networks. Understanding of the inherent complexity of problems: polynomial time, NP-completeness, and approximation algorithms. The course emphasizes mathematical rigor.

Prerequisite topics: Properties of functions and basic combinatorial principles, relations, equivalence classes, partial orders and related topics, asymptotics and recurrences, elementary sorting algorithms, programming experience, and basic calculus.

Textbook: Introduction to Algorithms, T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein, McGraw-Hill, Second Edition, 2001 (required).

Core Topics:

1.      Introduction (Chapters 1-5)

2.      Elementary Data Structures (Chapters 10-12)

3.      Overview of Elementary Sorting Algorithms (Chapters 6-8)

4.      Advanced Algorithmic Methodologies (Chapters 15-16)

5.      Basic Graph Algorithms (Chapters 22-26)

6.      NP-completeness (Chapter 34)

7.      Linear Programming (Chapter 29)

8.      Advanced Data Structures (Chapters 13-14, 21)

9.      Computational Geometry (Chapter 33)

Course Grade: Homework (20%); Midterms (25% each); and Final (30%).

Late Assignments: No late assignments will be accepted but assignment with lowest score will not be counted.

Midterm I: Thursday, September 28; Midterm II: November 2; Final: Tuesday, December 19, 4-6.

Office Hours: Tu, Th 3-4:30 or by appointment

Contact Information: joseph@umiacs.umd.edu; 301-405-1925.

The University of Maryland, College Park has a nationally recognized Code of Academic Integrity, administered by the Student Honor Council. This Code sets standards for academic integrity at Maryland for all undergraduate and graduate students. As a student you are responsible for upholding these standards for this course. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit http://www.studenthonorcouncil.umd.edu/whatis.html .