CSci 500: Fundamental Concepts of Computing
Fall Semester 2000


The fall semester 2000 class meets in 352 Weir Hall at 11:00 to 12:00 noon on Mondays, Wednesdays, and Fridays.

The class is taught by Prof. Conrad Cunningham, whose office is in 312 Weir Hall. The official office hours for this class are 1:30 p.m. until 3:30 p.m. on Tuesdays and Thursdays and by appointment at other times.

Prof. Cunningham's voice telephone number is (662) 915-5358 and fax number is (662) 915-5623. His WWW home page is and his email address is (send?).

The WWW home page for this class is

The final examination for this class is scheduled for 8:00 a.m. on Wednesday, 13 December.

Transition Course for Graduate Students

CSci 500, Fundamental Concepts in Computing, is a transition course designed for students with undergraduate degrees in related fields who wish to study computer science at the graduate level, but who have an insufficient background in automata theory, formal languages, or other foundational topics. Enrollment in this courses is limited to computer science graduate students who have been admitted in conditional, qualifying, or nondegree standing. Qualifying and nondegree students must have the permission of both the Department and the Graduate School to enroll. Credit for this course cannot be applied to MS or PhD degrees in computer science.

Graduate students in other fields cannot enroll in this class.

Undergraduate students should enroll in CSci 311, Models of Computation, instead of CSci 500. CSci 500 is restricted to graduate students.

Student Disabilities Services Statement

"It is the responsibility of any student with a disability who requests a reasonable accommodation to contact the Office of Disability Services (915-7128). Contact will then be made by that office through the student to the instructor of this class. The instructor will then be happy to work with the student so that a reasonable accommodation of any disability can be made."

Course Goals

This course gives students an introduction to the theoretical foundations of computer science, which include topics such as automata, formal languages, Turing machines, and computability. The course also examines how these theoretical topics are closely associated with practical issues such as compiler construction and programming language design.

Course Description from Catalog

An intensive study of the formal concepts needed for graduate study in computer science. CSci graduate students only.


Consent of the instructor.

All students in this class expected to have successfully completed (1) an undergraduate degree in some field related to computer science, (2) an introductory sequence in programming and data structures similar to CSci 111 and 112, and (3) sufficient mathematics courses to handle the formal concepts in this class (e.g., Math 261 and 301).

Source Materials

Required textbook:
Peter Linz. An Introduction to Formal Languages and Automata, Second Edition, Jones and Bartlett Publishers, 1997. ISBN: 0-7637-0296-X.

Various journal, conference, or WWW materials as appropriate.

This will be determined as the semester progresses. It is not anticipated that any special commercial software will need to be purchased by the student.

Course Topics

  1. Introduction (.5 week)
  2. Finite automata (2 weeks)
  3. Regular languages (2 weeks)
  4. Context-free languages (2 weeks)
  5. Normal forms (1.5 weeks)
  6. Pushdown automata (1 week)
  7. Context-free languages (1 week)
  8. Turing machines (2 weeks)
  9. Languages (.5 week)
  10. Computability (1 week)
  11. Exams (1.5 weeks)

Professional Conduct

As a student in CSci 500, you are expected to conduct yourself in a professional manner according to the Honor Code of the School of Engineering, the Information Technology Appropriate Use Policy, the M Book, and any other relevant policies.

Limited Collaboration Policy. Unless otherwise indicated, any homework assignment or programming exercise given in this class will be an individual assignment. The work you submit is to reflect the knowledge, understanding, and skill that you have attained as an individual. However, the instructor does want to encourage the development of a community of scholars who are actively engaged in discussion of the ideas related to this course. With this in mind, you are allowed to discuss solutions of the homework and programming problems with other students if done so according to the following guidelines:


The grading scale for this class is A [90..100], B [80..90), C [70..80), D [60..70), and F [0..60).

Credit toward the semester grade will be allocated to each of the components as follows:

Assignments one-third
Regular Exams (4) four ninths
Final Exam two ninths



[ CSci 500 Home ]
[ Cunningham's Home | Teaching | Current Courses ]
[ Department's Home | Courses | Graduate Courses | Undergraduate Courses ]

Send any comments or suggestions to Prof. Conrad Cunningham,
Copyright © 2000, H. Conrad Cunningham
Last modified: Tue Aug 22 13:50:13 CDT 2000