I have studied at the University of Tennessee for five years, majoring in Physics for the first year and a half, and majoring in Computer Science for the remainder.

Following is a listing of the classes I have taken. I have placed relevant course work at each link when available; some of the directories are more organized than others.

CS102: Introduction to Computer Science

Basic C++, using the Scribbler to develop basic programming ability.

CS140: Data Structures I

Using C++’s STL and self-made structures to develop algorithms.

CS160: Computer Architecture

Low-level analysis of computer architecture, and an introduction to ARM assembly programming.

CS302: Data Structures II

A continuation of CS140, using more advanced algorithms to approach more complex problems.

CS311: Discrete Mathematics

Sets, functions, relations, equivalence relations, partial orderings and proof techniques, especially mathematical induction. Application of proof techniques to prove correctness of algorithms. Introduction to basic counting and combinatorics.

CS312: Algorithm Analysis and Automata

Fundamentals of regular, context-free, and recursively enumerable languages, as well as finite automata, pushdown automata, and Turing Machines, with discussions of counting and combinatorics as related to the analysis of algorithms.

CS360: Systems Programming

Introduction to C and a UNIX enviornment, writing programs that utilize system calls.

CS361: Operating Systems

An overview of how operating systems are written to provide safety and functionality.

CS365: Computer Languages / Systems

Introduction to Java and Scheme, and an analysis of the different programming language paradigms.

CS420: Biologically Inspired Computing

An overview of programming techniques that mimic patterns found in nature.

CS456: Computer Graphics

An introduction to the history of graphics computing, and to the use of OpenGL and WebGL for rendering graphics.

CS461: Compilers

An overview of the design of a compiler’s frontend, backend, and optimizations.

CS462: Parallel Computing

An overview of techniques used for parallel computing, involving OpenMP, MPI, and using BeagleBone Blacks and UTK’s Newton HPC platform.

ECE453: Computer Networks

Principles of computer networking and software design of network protocol with an emphasis on the internet and TCP/IP protocol suite. Includes Level 1 design projects.

ECE401: Senior Design Theory

A design course that focuses the student’s attention on professional practice, ethics, accumulated background of curricular components, and recent developments in the field. The focus is on teaching both the design process and design principles that allow students to utilize all of the above elements to effectively create designs for major design projects.

ECE402: Senior Design Practicum

A project-oriented course that requires teams of students to design a major project that incorporates the principles taught in 401. The design emphasis is directed to topics within the field of electrical and computer engineering.