Computer Science Courses
---
Computer Architecture
Topics: performance measurement and benchmarking, assembly language, machine language, integer and floating-point arithmetic,
processor architectures, register sets, micro-programming, etc...
Technologies: SPARC Assembly
Computer Graphics And Image Processing
Topics: digital image formats, geometric operations on digital images, filtering, histogramming, binarization of grayscale images,
labeling binary images, perimeter and area determination, thinning operations, object recognition using global features,
edge detection processes, etc...
Technologies: C++, QT
Data Structures
Topics: study and implementation of common data structures such as: containers, linked lists, stacks, queues, trees, heaps, maps, etc...
Technologies: C++, Java
Database Design
Topics: physical representation, modeling, relational concepts, database systems, implementation (SQL)
Technologies: SQL, Java, JSP
Design And Analysis Of Algorithms
Topics: analysis of algorithms, dynamic programming, probabilistic algorithms, examples of geometric, combinatorial, and graph algorithms,
pattern matching, introduction to NP-completeness, etc...
Technologies: C++, Java
Distributed Processing and Network Programming
Topics: design of networked environments (both hardware and software), implementation of key network programming techniques such as:
name resolution, file transfer, client-server, peer-to-peer, RPC, synchronization techniques, multi-threaded approaches, etc...
Technologies: Java, TCP/IP
Independent Study: Binding C++ With Python Using boost.python (game study)
Topics: research into the motivations for language binding, strengths/weaknesses/pitfalls, survey of available binding libraries,
implementation of the technique into a new game project, etc...
Technologies: C++, Python, boost.python, SDL
Interdisciplinary Game Development
Topics: exploration of the interdisciplinary work-flow process, active and passive rendering, sprite animation, collision detection,
audio playback, input devices, deployment, applications of artificial intelligence, etc...
Technologies: Java, Slick API
Linux Systems Programming
Topics: study of Linux system calls, process management, memory management, file I/O, buffered I/O, threading, IPC, implementation
of low-level Linux utilities using the C language, etc...
Technologies: C
Open Source Software Development
Topics: culture behind, process involved, comparison to commercial software development, implementation of a feature to an established
open source project, etc...
Technologies: C++, QT, XML
Operating Systems
Topics: process control, concurrency, scheduling, security, and file systems. Introduces topics in systems programming, including
I/O programming, signals, and IPC, etc...
Technologies: C, C++
Programming Languages
Topics: Study of principles of programming languages. Emphasizes language paradigms and important features, structures, characteristics,
and formal syntax of modern high-level programming languages.
Software Engineering - 2 semester capstone course for the Computer Science major
Topics: process, requirements, design, quality assurance, project management, human-computer interaction, software engineering tools, etc...
Technologies: C++, QT, SDL, XML, TCP/IP, UML, SVN
Theory Of Computation
Topics: mathematical logic, alphabets and languages, finite automata, regular and nonregular languages, Kleene's theorem, regular grammars,
push-down automata and context-free grammars, turing and post machines, recursive and recursively enumerable languages,
the Chomski Hierarchy, implementation of key concepts using C/C++ languages, etc...
Technologies: C, C++, Java
Math Courses
---
Business Statistics
Topics: statistical/probabilistic concepts and techniques with application to business problems including: random variables and
probability distributions, measures of central tendency and dispersion, testing of hypotheses, simple linear regression,
correlation, etc...
Calculus I/II
Topics: differential calculus of algebraic and transcendental functions and
applications, anti-differentiation, Riemann integral, derivatives and integrals of transcendental functions with additional
applications, techniques of integration, improper integrals, calculus in higher dimensions and series, etc...
Discrete Math
Topics: propositional and predicate logic, sets, induction, recursion, relations, functions, combinatorial enumeration, Boolean algebra,
finite state machines, etc...