Knowledge representation and reasoning is the study concerning approaches and methods for representing knowledge and algorithms and techniques to manipulate such a symbolic represe [...]

Introduction to object-oriented concepts, analysis and development using C++, Object oriented problem solving, program design process, classes, methods, objects and encapsulation. [...]

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data [...]

Design and Analysis of Algorithms introduces algorithms by looking at the real-world problems that motivate students. The course teaches students a range of design and analysis tec [...]

You have a great idea for a game. Turning that idea into a reality doesn’t just about know the tools. In this course, student will practice moving from game concept through design [...]

The course introduces some fundamental concepts in automata theory and formal languages including grammar, finite automaton, regular expression, formal language, pushdown automaton [...]

The "Semantic Web" is a work-in-progress, consisting of various initiatives to make web documents more "understandable" by computer programs such as search engines and e-commerce a [...]

In this course, student will learn one of the standard APIs for computer graphics, OpenGL. We will use the fixed function pipeline approach. We will also cover some techniques that [...]

This course covers the basics of modern full stack web development, from UX design to front-end coding to custom databases. Students will build foundational skills in a full range [...]

The study of human-computer interaction enables system architects to design useful, efficient, and enjoyable computer interfaces. This course will teach the theory, design procedur [...]

In the Software Design and Architecture Course, students will learn how to apply design principles, patterns, and architectures to create reusable and flexible software application [...]

The aim of this course is to help students develop an understanding of the fundamental principles of multimedia systems and how they are being developed and applied. The course wil [...]