Teaching

Undergraduate

  1. Intro. to Programming
    • Programming and problem solving skills (in Java)
    • Algorithm design, testing, and debugging
    • Searching and sorting
    • Recursion
    • Introduction to data structures (arrays, queues, stacks)
    • Introduction to algorithm complexity.
  2. Data Structures
    • Vectors, arrays, stacks, queues, linked lists, trees, graphs.
    • Use of pointers and dynamic storage.
    • Binary search trees, AVL trees, B-Trees.
    • Comparison of searching, sorting and hashing techniques.
  3. Principles of Electrical Engineering
    • Circuit elements
    • Independent sources, Dependent sources
    • Circuit analysis in the DC and AC steady state
    • Network theorems
    • Operational amplifiers.
  4. Assembly Language and Machine Architecture
    • Binary operations: addition, subtraction; Integer Multiplication, Division
    • Fixed Point/Rational; Floating Point operations
    • Floating point addition
    • Performance, Metrics
    • Amdahl's Law, CPI
    • Logic Design: gate level, Fundamentals, ALU design
    • Logic Design: ALU, Verilog
    • Single cycle Datapath; Performance
    • Multicycle datapath; Multicycle control
    • Instruction design: datapath, control modification
    • Multiply, Exceptions
    • Microprogramming
  5. Digital Systems Laboratory
    • Basic concepts of digital circuits, simulation and instrumentation.
    • Systems composed of discrete devices, logic gates, combinatorial and sequential circuits are designed, simulated, built and tested.
  6. DSP Laboratory - Accompanying laboratory course to junior level DSP course
    • Introduction to quantization, filter design, transforms and Matlab.
  7. Principles of Programming Languages
    • Motivation for language constructs and techniques
    • Formal language theory (syntax and semantics).
    • Principles of imperative, object oriented, functional and logic programming languages.
  8. Computer Interfacing
    • Introduction to computer interfacing
    • Buses, serial and parallel protocols
    • Digital audio and video formats
    • I/O devices including disks, tapes and networks
    • Operating system driver interfaces.
  9. Digital Electronics
    • Transistor level analysis and design of digital circuits including bipolar and MOS technologies
    • Design of memories and gate circuits
  10. DSP Systems
    • Application of DSP microprocessors to signal processing problems.
    • Use of the TMS320 series with accompanying A/D and D/A converters.
  11. DSP System Design
    • Introduced to study interaction between hardware, software and DSP algorithm design.
    • DSP algorithm tradeoffs
    • DSP processor architecture
    • DSP processor interfaces
  12. Audio Engineering
    • Acoustics, transducer (microphones, loudspeakers) design and use.
    • Signal processing of audio, especially equalization, mixing and reverberation.
    • Analog disk and tape recording; Digital disk and tape recording.
    • Postproduction processing: mixing and editing.
  13. Introduction to Compilers
    • Lexical Analysis, Finite Automata
    • Finite Automata
    • Grammars, Ambiguity
    • Top-down parsing, Bottom-up parsing
    • LR Parsing, Semantics
    • Type checking
    • Runtime organization
    • Code generation
    • Intermediate languages
    • Local optimization, Global optimization
    • Register allocation
    • Polymorphism, Exceptions
    • Domain Specific Languages

Graduate

  1. Computer Architecture I
    • Fundamentals of computer architecture using quantitative and qualitative principles.
    • Instruction set design with examples and measurements of use
    • Basic processor implementation: hardwired logic and microcode, pipelining
    • hazards and dynamic scheduling, memory hierarchy; caching, main memory and virtual memory, input/output
    • Vector machines
    • Introduction to parallel processors: SIMD and MIMD organizations
  2. Computer Architecture II
    • Implementation of computer architecture at the module level.
    • Introduction to computer hardware description languages.
    • Computer arithmetic
    • Control: horizontal, vertical and two-level microprogramming, finite-state control and asynchronous state machines
    • Data path design
    • Memories: SRAMs, DRAMs, FIFOs
    • Buses: asynchronous and synchronous protocols
    • I/O devices: disks, networks, terminals, transmission lines.
  3. Digital Audio Signal Processing
    • Applications of DSP processing to audio at the graduate level
    • Analysis and synthesis techniques.
  4. Applications of DSP to Electroacoustics
    • Application of DSP techniques to microphones and loudspeakers including: microphone equalization, microphone arrays, loudspeaker compensation and loudspeaker arrays.
    • Use of DSP techniques in acoustic measurement.

Valid XHTML 1.0!



File last written on 2006-06-30 at 16:51
e-mail: mark.kahrs at gmail daht com
home page:http://www.kahrs.us/~mark