CSC 173 is the third course in the pre-major sequence for Computer Science, following CSC 171 (Computer Programming) and CSC 172 (Data Structures). This course introduces students to formal systems of computation (including finite automata, context-free grammars, and logic) and their application in advanced programming. CSC 173 is a blend of theory and practice; we will augment the theory covered in the classroom with practical programming exercises that apply the theory.

For Spring 1999, CSC 173 is held Tuesday and Thursday from 9:40 to 10:55 in CSB 601. Come early for the best seats.

Course Organization

Meet the instructor and TA1 and TA2
Meet your classmates (some pictures still missing)
Office hours
Getting a lab account
Check the prereqs
Course bibliography
Grading policy
Calendar of Classes

Background Material

World-Wide Web (WWW) and Netscape Overview
Very Brief Overview of Unix

Review Material

Data structures review
Analysis of algorithms review
ADTs and OOP
Review of C++
Software Development Tools

Lecture Notes

Course Overview
Finite Automata and Regular Expressions
Context-Free Grammars
Propositional Logic
Predicate Logic
Genetic Algorithms(Extra)


Relational database
Using Graphs to Solve the Jug Problem
C++ Scanner
Exercises 10.2.1, 10.3.3, 10.4.2, 10.4.4 (extra credit)
Scientific calculator
Propositional logic: Proof by Contradiction with Resolution
Predicate logic as computation: Prolog
Genetic algorithms as computation: Function evaluation (Extra)
last modified Jan 1999 / Randal Nelson /
based on pages developed by Tom Leblanc /
using enhanced HTML 2.0; requires Netscape 1.1+