Teaching AI, research, and computer science through active learning and research-driven education.
“The art of teaching is the art of assisting discovery.”
— Mark Van Doren
“The value of a college education is not the learning of many facts but the training of the mind to think.”
— Albert Einstein
“I don’t know how to teach. I’m a professor!”
— Professor Farnsworth, Futurama


CSci 102
AI and Society
This course introduces AI within a historical framework that traces the evolution of technological systems from manual societies through mechanization, automation, and the rise of AI and machine learning. Students are introduced to the fundamentals of AI, scientific inquiry, and philosophical and ethical reasoning as tools for evaluating emerging technologies. The course examines, among others: autonomous warfare, AI and surveillance, data privacy, digital addiction, behavioral modification, algorithmic bias, intellectual property, data annotation, deepfakes, system vulnerabilities, cognitive biases, responsible use of AI, AI governance and regulation.
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.
The respective course materials are hosted on canvas.

CSci 165
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.
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.
The respective course materials are hosted on canvas.

CSci 202
Research Methods and Ethics in Computer Science
This class provides 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 introduces academic writing and academic presentation best practices and provide hands-on experience.
The respective course materials are hosted on canvas.

CSci 265
Reinforcement Learning
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.
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.
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.
The respective course materials are hosted on canvas.

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.
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.
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.
The respective course materials are hosted on canvas.

NA
Workshop in Python
An end-to-end workshop covering Python fundamentals, advanced programming concepts, and idiomatic “Pythonic” practices, with an emphasis on writing clear, efficient, and maintainable code.
The respective course materials are hosted on canvas.