Available courses

An embedded system is any computer system embedded in a larger product for the purpose of monitoring or controlling some part of the larger system. Embedded systems, unlike general-purpose computer systems, are highly optimized to deliver the best application-specific performance possible under a wide and varying set of constraints. In this course, we will cover the basic elements of embedded system design, including system specification and modeling, the components of embedded hardware and software, and techniques for system validation, evaluation, and optimization. The goal of this course is to familiarize students with each of these aspects of embedded system design and both their relationship with one another and with design and optimization as a whole.

Correct and complete implementation of software requirements. Verification and validation lifecycle. Requirements analysis, model based analysis, and design analysis. Unit and system testing, performance, risk management, software reuse. Ubiquitous computing.

This course will introduce students to Artificial Intelligence (AI), beginning from historical and philosophical perspectives, progressing through a number of core topics from classical AI, and then dealing extensively with various areas of machine learning. The latter topic will emphasize connectionist architectures (artificial neural networks) and evolutionary computing approaches.

The course highlights the design, development, and evaluation of human-computer interfaces, with an emphasis on usability, interaction paradigms, computer-mediated human activities, and implications to society. These issues are studied from a number of perspectives including that of the engineer and end-user. A team-based project applies your knowledge and skills to the full life cycle of an interactive human-computer interface.