HOME

Background
 • teaching
 • industrial
Research
People
Software

This page is a supplement to what is listed on my background page, containing some examples of the materials distributed in the last course I taught. This page also contains the course catalog descriptions of each course I have taught at Wayne State University.

If you would like more details or a copy of my teaching statement, please email me at kop@cs.wayne.edu

Course Materials

The last Course I taught was Computer Operating Systems during the spring/summer session 2003 at Wayne State University. Here the course goals was to introduce the course to the internals of the operating system and get the students comfortable working in the UNIX operation system. UNIX was focused on because of the generally open architecture and the courses that use this course as a foundation all require substantial projects to be developed on the department's Sun network. It should be noted I use the label UNIX to cover all flavors that exist (Solaris, Linux, BSD, OS X, etc).

Below are four links containing materials that were distributed during the course, consisting of the syllabus and the three course projects.

Syllabus   Contains contact information, course requirements, student expectations, additional resources, exam/project grade weighting, grading scale, and course schedule.
Project 1   Create a command line utility using system calls to manipulate the directory structure.
Project 2   Concurrent programming assignment using the pthreads library. The assigned problem was a variation of the producer/consumer problem.
Project 3   Create a time discrete simulation of the swapping memory management scheme. The goal of this project was not to create a faithful simulation of swapping, but to explore the important issues of memory management. Thus, students were encouraged to determine their own solutions to perceived implementation issues.

Course Descriptions

Below I give the course descriptions for the courses I taught while at Wayne State University, and also listed on my CV. Note, Wayne State at one time used a three digit course numbering system, then went to a four digit system. For my CV and here I use the four digit system to be current with the present course listings.
 
CSC1000   Introduction to Computer Science
    For non-computer science majors. Brief introduction to problem solving: analysis, design, implementation and testing using a general purpose structured programming language. Introduction to use text editors, word processors, spreadsheets, databases, and telecommunications.
 
CSC1010   Fundamentals of Computer Science
    History of computing; computer applications: word processors, spreadsheets; system design; introduction to programming; program translation; hardware components; Boolean algebra; artificial intelligence; computers and society.
 
CSC3200   Programming Languages
    History and overview of programming languages, virtual machines, representation of data types; sequence control; data control, sharing and type checking; run-time storage management; language translation systems; programming language semantics; programming paradigms.
 
CSC4100   Computer Architecture
    Data representation; digital logic circuits; instruction formats and addressing modes; register transfer and microoperations; microprogrammed control; RISC architecture; memory organization; pipelined and vector processing; multiprocessors.
 
CSC4420   Computer Operating Systems
    Operating systems services; file systems; CPU scheduling; memory management; virtual memory; disk scheduling; deadlocks; concurrent processes.
 
CSC4500   Introduction to Theoretical Computer Science
    Finite automata and regular expressions; context-free grammars; pushdown automata; Turing machines; hierarchy of formal languages and automata; computability and decidability.

© Jeffrey O. Pfaffmann, 2003. Contact -- kop@cs.wayne.edu