Current Semester
Intro to C Programming and Unix (CSI 1420) [Moodle]
This freshman course at Oakland University is a C-language version of CS1 including a lab component, and covers binary number systems as well as low-level programming concepts such as bitwise operators, pointers and memory management, structs, and I/O. It introduces basic Unix commands, shell programming, and utilities for developing and debugging C programs.
Digital Logic Design (ECE 2700) [Moodle]
This sophomore course at Oakland University includes a lab component and covers Boolean algebra, number systems and arithmetic, combinational and sequential digital circuits, and introduces the hardware design language VHDL.
Previous Courses
I no longer post old lecture slides online. However, I'm always happy to provide lecture slides and project handouts from previous semesters to current or former students! Please email me if copies would be helpful to you.
Foundations of Computer Science II (CS 2308)
This freshman/sophomore C++ course at Texas State introduces pointers and dynamic memory allocation, the fundamentals of object-oriented programming, algorithmic complexity and algorithm choice as relates to searching and sorting, and abstract data types including lists, stacks, and queues.
Digital Logic (CS 2420)
This sophomore course at Texas State covers Boolean logic design and optimization, combinatorial and sequential digital circuits, finite state machines, and the fundamentals of computer hardware technologies including memory, ALUs, and registers.
Computer Architecture (CS 3339)
This junior/senior course at Texas State teaches modern computer architecture including RISC vs. CISC instruction sets, ALUs, single- and multiple-cycle datapath and control, pipelining, caches and cache coherence, virtual memory, and parallel architectures including multicore CPUs and GPUs.
Digital Logic (EE 2420)
This sophomore course at Texas State provides an introduction to Boolean algebra, combinational logic design and minimization, sequential circuits and finite state machines, register-transfer level design, SystemVerilog, and the fundamental components from which microprocessors are built (e.g., ALUs, registers, muxes). A laboratory component provides hands-on experience with course concepts via both SystemVerilog simulation and physical circuit implementation.




