Teaching

Covers problem solving through structured programming of algorithms on computers using the C++ object-oriented language. Includes variables, expressions, input/output (I/O), branches, loops, functions, parameters, arrays, strings, file I/O, and classes. Also covers software design, testing, and debugging.

Introduction to Computer Science (in C++)

Covers advanced programming concepts and algorithms through application-based data manipulation tasks from science, engineering, business, and the humanities. Emphasizes good programming principles in the design and development of substantial programs. Topics include abstract data types, objects and classes, recursion, and basic software engineering principles.

Data Oriented Introduction to Computing II (in Python)

Provides an introduction to the constructs provided in the C++ programming language for procedural and object-oriented programming. For those with prior programming experience.

C++ for Programmers

Topics include basic data structures such as arrays, lists, stacks, and queues. Covers dictionaries (including binary search trees and hashing) and priority queues (heaps). Offers an introductory analysis of algorithms, sorting algorithms, and object-oriented programming including abstract data types, inheritance, and polymorphism. Explores solving complex problems through structured software development. 

Introduction to Data Structures and Algorithms

A study of formal languages. Includes regular and context-free languages; computational models for generating these languages such as finite-state automata, pushdown automata, regular expressions, and context-free grammars; mathematical properties of the languages and models; and equivalence between the models. Also introduces Turing machines and decidability. 

Automata & Formal Languages

An introduction to the field of artificial intelligence. Covers problems, algorithms and techniques for deductive and inductive reasoning and search. Topics are drawn from knowledge representation and automated reasoning or constraint satisfaction, machine learning, and heuristic search.

Introduction to Artificial Intelligence

An overview of modern approaches for natural language processing. Focuses on major algorithms used in NLP for various applications such as part-of-speech tagging, parsing, named entity recognition, coreference resolution, sentiment analysis and machine translation.

Introduction to Natural Language Processing

For more information, please see the Computer Science Course Listings