Gerald (Jerry) H. Roth
Professor of the Practice of Computer Science
Department of Electrical Engineering and Computer Science
School of Engineering
Vanderbilt University

Home Research Teaching       Vita      

As a member of the teaching faculty in the Department of Electrical Engineering and Computer Science, I regularly teach the following classes:

CS 1101 Programming and Problem Solving
An intensive introduction to algorithm development and problem solving on the computer. Structured problem definition, top down and modular algorithm design. Running, debugging, and testing programs. Program documentation.

CS 2201 Program Design and Data Structures
Continuation of CS 1101. The study of elementary data structures, their associated algorithms and their application in problems; rigorous development of programming techniques and style; design and implementation of programs with multiple modules, using good data structures and good programming style.

CS 2204 Program Design and Data Structures for Scientific Computing
Data Structures and their associated algorithms in application to computational problems in science and engineering. Time and memory complexity; dynamic memory structures; sorting and searching; advanced programming and program-solving strategies; efficient software library use.

CS 3270 Programming Languages
General criteria for design, implementation, and evaluation of programming languages. Historical perspective. Syntactic and semantic specification, compilations, and interpretation processes. Comparative studies of data types and data control, procedures and parameters, sequence control, nesting, scope and storage management, run-time representations. Non-standard languages, problem-solving assignments in a laboratory environment.

CS 3276 Compiler Construction
Review of programming language structures, translation, loading, execution, and storage allocation. Compilation of simple expressions and statements. Organization of a compiler including compile-time and run-time symbol tables, lexical scan, syntax scan, object code generation, error diagnostics, object code optimization techniques, and overall design. Use of a high-level language to write a complete compiler.

CS 3892 Special Topics: Introduction to Parallel Computing
An introduction to parallel programming platforms and principles of parallel algorithm design. Topics include the following: analytical modeling of parallel programs, basic communication operations, programming using the Message Passing paradigm, programming of shared address space platforms, dense matrix algorithms, parallel sorting, graph algorithms, search algorithms for discrete optimization problems, and cloud computing.