Artificial Intelligence

In-depth introduction to Artificial Intelligence concentrating on aspects of intelligent agent construction. Topics include: situated agents,advanced search and problem-solving techniques, principles of knowledge representation and reasoning, reasoning under uncertainty, perception and action, automated planning, and learning.

Computer Architecture

The structure of digital computers from the logic level to the system level. Topics include: the design of components such as arithmetic units; the organization of sub-systems such as the memory; the interplay between hardware and software; the von Neumann architecture and its performance enhancements such as cache memory, instruction and data pipelines, coprocessors, and parallelism.

Prerequisite for undergraduates: COMPSCI 391IB/335 with a grade of C or better.

Computer Architecture

The structure of digital computers from the logic level to the system level. Topics include: the design of components such as arithmetic units; the organization of sub-systems such as the memory; the interplay between hardware and software; the von Neumann architecture and its performance enhancements such as cache memory, instruction and data pipelines, coprocessors, and parallelism.

Prerequisite for undergraduates: COMPSCI 391IB/335 with a grade of C or better.

Intro to Computer Vision

This introductory computer vision class will address fundamental questions about getting computers to "see" like humans. We investigate questions such as -What is the role of vision in intelligence? -How are images represented in a computer? -How can we write algorithms to recognize an object? -How can humans and computers "learn to see better" from experience? We will write a number of basic computer programs to do things like recognize handwritten characters, track objects in video, and understand the structure of images.

Software Engineering

In this course, students learn and gain practical experience with software engineering principles and techniques. The practical experience centers on a semester-long team project in which a software development project is carried through all the stages of the software life cycle. Topics in this course include requirements analysis, specification, design, abstraction, programming style, testing, maintenance, communication, teamwork, and software project management. Particular emphasis is placed on communication and negotiation skills and on designing and developing maintainable software.

Software Engineering

In this course, students learn and gain practical experience with software engineering principles and techniques. The practical experience centers on a semester-long team project in which a software development project is carried through all the stages of the software life cycle. Topics in this course include requirements analysis, specification, design, abstraction, programming style, testing, maintenance, communication, teamwork, and software project management. Particular emphasis is placed on communication and negotiation skills and on designing and developing maintainable software.

Machine Learning

Introduction to core machine learning models and algorithms for classification, regression, dimensionality reduction and clustering with a focus on real-world applications in a variety of computing contexts (desktop/cluster/cloud). Requires the use of Python.
Subscribe to