CS678 Computer Vision

This is an introductory course to Computer Vision at graduate level. We will first introduce low-level image analysis concepts such as image formation and filtering, edge detection, and interest point detection and matching. We will move forward by introducing the problems of object detection and recognition and related approaches based on deep learning. In the last part of the course, we will focus on 3D scene understanding aspects, including camera calibration, stereo vision, epipolar geometry, and structure from motion.

CS696 Machine Learning

What could be achieved by building automated systems that improve their performance through experience? Robots would learn how to navigate around based on experience gained by roaming their environment. Cellphones would get better at recognizing your voice, and executing and anticipating your commands. Physicians would prescribe personalized therapies that best cure diseases based on historical health records. Machine learning addresses those, and many more problems through the study and development of techniques enabling a system to automatically learn from observed data.
The purpose of this graduate course is to provide an introduction to the fundamental set of techniques and algorithms that constitute machine learning as of today, while providing a thorough grounding in the methodologies and theoretic foundations. The course will also discuss recent applications of machine learning, such as to computer vision, robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing.

CS560 Big Data Engineering

  • Previous offerings: Fall’20, F’19, F’18
Thanks to various recent technological developments, (sensing, imaging, communication, computing, internet of things, next generation sequencing, social networks, social media, etc.), we are constantly inundated with massive amounts of data, of different types, at an ever increasing rate. The quantity, variety, and complexity of data has far outpaced the processing capability of currently available computational platforms. Yet, making sense of this data deluge requires that we first capture, collect, and clean the data as it is generated, that we store and represent the data as efficiently as possible, in way that facilitates later analysis, and that we develop special analysis techniques that can facilitate rapid prediction and discovery on the data.
The aim of this course is to provide a high level introduction to fundamental topics in big data analytics. The treatment will be generally broad, covering key topics, such as data structures, representations, and search techniques used in big data analytics, basic methods in predictive analytics and machine learning, the distributed file systems, cloud services, and high performance computing used in addressing big data problems, and basic techniques for social network analysis, crowd sourcing, and visualization in big data. As part of the course, students will be introduced to key practical tools used in big data analytics, using a project-driven approach. This course will be helpful for students that want to know more about the rapidly emerging area of data analytics/data science, and the engineering and computational tools and techniques needed to support systems to handle and exploit big data.

CS674 Computational Photography

The ubiquity of digital cameras and the internet, coupled with advances in computer vision and graphics, have been the catalysts of computational photography, an emerging field with the goal of going beyond the limitations of conventional photography by proposing new ways in which photographs can be captured, manipulated, and organized.
The general goal of this graduate class is to learn how, by using computational techniques and alternative camera design, computational photography produces a richer representation of our visual world. In particular, in this course, we will study ways of manipulating and combining photographs and videos to enhance the photography experience, by touching upon areas such as mathematical models of light, photo reconstruction and restoration, internet photography, and advanced photography systems and techniques.
Popular algorithms will be presented. Emphasis will be given on using these techniques to build practical systems through programming assignments. These should lead to the development of image analysis and synthesis tools, needed to render novel images on the computer, from previously acquired samples of the real world (images or video).

CS472 Artificial Intelligence

  • Offerings: Spring’19, S’18
The content includes: Principles of knowledge-based search techniques, automatic deduction, knowledge representation using predicate logic, machine learning, probabilistic reasoning. Applications in tasks such as problem solving, data mining, game playing, natural language understanding, computer vision, speech recognition, and robotics.

CS470 Introduction to Computer Graphics

  • Offerings: Fall’19, F’18, F’17
This course is an introduction to computer graphics, with an emphasis on interactive 3D computer graphics. The course will cover the general principles, methods and technologies associated with planning; designing and implementing interactive graphics based software and systems. Much of the course will focus on learning and using OpenGL to implement these computer graphics ideas and principles.

CS221 Analysis of Algorithms

  • Offerings: Spring’20, S’17, S’16, S’15, S’14, S’13, S’12, F’10
This course will cover basic combinatorial algorithm design techniques including divide and conquer, and dynamic programming. Problem domains will include searching, sorting, and graph algorithms. We will cover the basic techniques for analyzing the time and space efficiency of algorithms. If time permits, the course will include a brief introduction to the theory of computational complexity.