CSci 60
Foundations of Computer Science
Computer science spans a range of topics from theoretical studies of algorithms and the limits of computation to the practical issues of implementing computing systems. This course covers the foundations of computer science including logic, discrete mathematics, and aspects of computation. Particular emphasis is given to abstraction, iteration, induction, recursion, complexity of programs, data models, and logic. The course consists of 3 lecture and 2 lab hours and is also supported by supplemental instruction.
​
Taught: Every Semester
The respective course materials are hosted on canvas.
CSci 134
Compiler Design
​Compilers are fundamental to modern computing. They act as translators, transforming a human-oriented programming language into a computer-oriented machine one. Apart from being able to design such systems, compiler theory can also support better coding practices. This course offers comprehensive coverage of compiler theory. It covers the syntax and semantics of programming languages and the main phases of the compilation process (i.e., lexical analysis, parsing, semantic analysis, code generation, and optimization). Emphasis is given on lexical analysis, several parsing techniques including SLR and LALR parsing, parser generators, the role of symbol table organization, and semantic action routines.
​
Taught: Fall 2018
The respective course materials are hosted on canvas.
CSci 200
Introduction to Research in Computer Science
This class aims to provide an orientation into the graduate program and an introduction to the computer science research methodology, including topics on academic writing and publishing, as well as on intellectual property and academic honesty. It also aims to introduce academic writing and academic presentation best practices.
​
Taught: Fall 2023, Spring 2024, Fall 2024
The respective course materials are hosted on canvas.
CSci 154
Simulation
A computer simulation is a generally approximate imitation of the operation of a process or a system based on a respective model using a computer. Computer simulation is a powerful tool for the study of complex systems in computer science, statistics and operations research. This course covers the basic principles and phases of computer simulation, including a review of the basic principles behind and examples of simulation languages with a focus on the Python programming language. Particular emphasis is given on data mining and modeling, as well as on generating random variables, as an integral part of the computer simulation process.​
​
Taught: Every Spring Semester
The respective course materials are hosted on canvas.
CSci 165 (former CSci 191T)
Bio-inspired Machine Learning
Bio-inspired machine learning is a field of study which seeks to solve computer science problems using models of biology. It relates to connectionism, social behavior, and emergence. This course focuses on selected bio-inspired machine learning topics with an emphasis on metaheuristics, optimization, computational neuroscience, and learning. Topics include evolutionary algorithms, ant colony optimization, simulated annealing, gradient descent, learning theories, artificial neural networks, self-organizing maps and reinforcement learning.
​
Taught: Every Spring Semester
​
​
​
​
​
​
The respective course materials are hosted on canvas.
CSci 201
Computer Science Colloquium
This class aims to provide hands-on experience in computer science research methodology and academic writing, and academic presentation best practices.
Taught: Fall 2023, Spring 2024, Fall 2024
The respective course materials are hosted on canvas.
CSci 265
​​Reinforcement Learning
(former ​​Introduction to Reinforcement Learning, CSci 291T)
Reinforcement learning lies in the intersection of mathematics, computer science, engineering, economics, neuroscience and psychology, and deals with designing agents that interact in unknown and stochastic environments. It has produced some extremely successful applications in domains ranging from game playing to manufacturing and is a highly active area of research. This course covers the basic concepts and current trends in reinforcement learning, including the theory of Markov decision processes, dynamic programming, temporal difference learning, Monte Carlo methods, and the role of function approximation.
​
Taught: Every Fall Semester
The respective course materials are hosted on canvas.
CSci 166
Principles of Artificial Intelligence
Artificial intelligence is intelligence demonstrated by machines. The respective field of study focuses on the science needed to develop intelligent and autonomous agents. This course covers the principles of artificial intelligence. Topics include agent theory, optimization, unsupervised learning, supervised learning, and reinforcement learning.
Taught: Fall 2022
​
​
​
​
​
​
​
​
​
​
​
The respective course materials are hosted on canvas.
CSci 119
Introduction to Formal Languages and Automata
This course aims to foster a deep understanding of fundamental machine models and their recognized languages, preparing students to apply these concepts across computer science fields like programming, parsing, and computational theory.
Taught: Fall 2024
The respective course materials are hosted on canvas.