Teaching
Undergraduate
- 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.
- 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.
- Principles of Electrical Engineering
- Circuit elements
- Independent sources, Dependent sources
- Circuit analysis in the DC and AC steady state
- Network theorems
- Operational amplifiers.
- 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
- 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.
- DSP Laboratory - Accompanying laboratory course to junior level DSP course
- Introduction to quantization, filter design, transforms and Matlab.
- 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.
- 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.
- Digital Electronics
- Transistor level analysis and design of digital circuits including
bipolar and MOS technologies
- Design of memories and gate circuits
- DSP Systems
- Application of DSP microprocessors to signal processing problems.
- Use of the TMS320 series with accompanying A/D and D/A converters.
- DSP System Design
- Introduced to study interaction between hardware, software and DSP algorithm design.
- DSP algorithm tradeoffs
- DSP processor architecture
- DSP processor interfaces
- 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.
- 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
- 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
- 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.
- Digital Audio Signal Processing
- Applications of DSP processing to audio at the graduate level
- Analysis and synthesis techniques.
- 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.
File last written on Jan 2018
e-mail: mark.kahrs at gmail daht com
home page:http://www.kahrs.us/~mark