Here are links to all of my Allegheny courses thus far, as well as the catalog description for each course (just the first time each is listed).
- Spring 2017
- CMPSC 112 – Introduction to Computer Science II — A continuation of CMPSC 111 with an emphasis on data structures, data abstraction, algorithm design, the analytical and experimental evaluation of algorithm performance, and object-oriented design and implementation techniques. Topics include stacks, queues, deques, lists, strings, trees and graphs, dictionaries, recursion, searching and sorting algorithms, and an introduction to program verification.
- Fall 2016
- CMPSC 210 – Principles of Computer Organization — An introduction to the basic organization and operation of computers including logical structure, hardware components, machine and assembly language, and computer system performance. Topics include internal representation of information, instruction set architecture, instruction types and addressing techniques, computer arithmetic, memory systems, design and operation of the control unit, input/output devices and interfaces, assembly language and translation techniques, and modern architectural enhancements such as pipelining and multiprocessors. Special emphasis is on systems programming and assignments in a particular assembly language.
- Spring 2016
- CMPSC 112 – Introduction to Computer Science II
- CMPSC 250 – Analysis of Algorithms — A treatment of selected topics from the analysis of algorithms including models of computation, design of efficient algorithms, computational complexity, and NP-completeness. Students develop expertise in mathematical analysis and algorithmic programming methodology.
- Fall 2015
- CMPSC 112 – Introduction to Computer Science II
- CMPSC 382 – Visual Computing — An introduction to the fundamentals of computer graphics, visualization, and visual computing. Topics covered include concepts of light, color, two- and three-dimensional representations, data visualization, image processing, image rendering, and animation. These concepts are illustrated using medical imaging, simulation, human vision processing, computer art, and other applications. Laboratory assignments covering each major course topic provide a solid basis for advanced work in computer graphics and visualization.
- Spring 2015
- CMPSC 112 – Introduction to Computer Science II
- CMPSC 250 – Analysis of Algorithms
- Fall 2014
- CMPSC 210 – Principles of Computer Organization
- CMPSC 230 – Theory of Computation and Formal Languages — An introduction to the theories of finite-state machines, pushdown automata and Turing machines as well as the relation between automata and the formal languages they recognize. Students explore computational theory and its practical applications in lexical analysis and language parsing.