Fritz Ruehr

Assistant Professor of Computer Science
Willamette University

Classes (current & former)

  • CS 348: Programming Languages

    To be filled in at a later date ... (see main page for now)

  • CS 241: Data Structures (and Algorithms)

    Second course in the introductory sequence for Computer Science majors at Willamette. As a second course in programming, it deepens and enriches a student's understanding of the basic processes involved in computing. But it also begins to focus on deeper and more abiding issues such as evaluating design strategies and implementation effectiveness.

    Old version of CS 241: Data Structures

  • CS 231: Introduction to Programming

    An introductory course in computers and programming. This semester (Fall 1998) I plan to teach a broader set of topics, including the following:
    • some history (of computing) and philosophy (nature of language and information, role of symbols, etc.);
    • issues in data representation (number systems, algebra of logarithms and exponents, digital representation of various kinds of information);
    • computer organization and low-level programming (including simple architecture and assembly language programming, the latter using a simulator for a simplified machine, the PC-231);
    • and finally, the traditional core topic for this course, higher-level programming using the Java langauge. This will constitute the bulk of the course (about 2/3).
    I also plan to help students better prepare for later coursework and "para-curricular" education by starting them off in a Unix programming environment in our reinvigorated Departmental lab (running Red Hat Linux on Intel architecture).

  • CS 446: Automata Theory

    An upper-level course on the theory of computation. Despite the course title (which is traditional at Willamette), we actually consider computation from the perspectives of both abstract machines (automata) and language formalisms (the Chomsky hierarchy).

  • CS 451: Topics in Computer Science

    An upper-level course on functional programming taught (bi-lingually) in Scheme and Haskell. Lecture notes and labs can be viewed on-line with a browser. HtX software (see the Oberlin HtX homepage) is used to generate the notes automatically from a simple outline format.

  • CS 130: Computing Concepts

    An introductory course for non-major liberal arts students which stresses the conceptual under-pinnings of computation. Course topics include history of computing, introduction to hardware architecture, digital data representation, networks, Web page construction, and Java programming.

    I'm still putting the homepage together for this course, but you can view on-line lecture notes on introductory topics, hardware architecture and binary representations.

  • Oberlin College CS 275/280 [the DRAGN Project]

    Before coming to Willamette, I worked at Oberlin College for three years in an NSF-funded visiting position. Rhys Price Jones, Rich Salter and I taught an innovative sophomore curriculum, developed associated web-based course materials and also the software we used to produce them (HtX).