COURSE DETAIL
This course covers the fundamental principles of graphic design through small assignments, two big projects, critiques, readings, and lectures. Topics include the elements of form and color, understanding visual forms (points, lines, and surfaces), and visual grammar such as scale, repetition, rhythm, balance, etc.
For practicing visual grammar, students learn graphic software such as Adobe Illustrator and Adobe Photoshop. For the projects, students develop their expressive ways to transfer meaning and values based on practicing visual grammar.
COURSE DETAIL
This course covers financial engineering theories including fixed-income securities, interest rate risks, modern portfolio theory, capital asset pricing model, and derivatives. Students explore and build hands-on experience for application of Al techniques such as dimension reduction, supervised/unsupervised learning, natural language processing, and deep reinforcement learning.
COURSE DETAIL
This course provides an introduction to the foundations of 3D computer graphics.
Students learn the basic methods used to define shapes, materials, and lighting when creating computer-generated images for use in film, games, and other applications. Topics include affine and projective transformations, clipping and windowing, visual perception, scene modeling and animation, algorithms for visible surface determination, reflection models, illumination algorithms, and color theory in depth.
No official prerequisites, but the course assumes some programming experience in C or C++ and a basic knowledge of linear algebra. Exposure to calculus and image processing is useful but not required.
COURSE DETAIL
This course covers basic concepts of database management, database applications and database processing. Topics on various aspects of database programming, database design using the ER model, relational database design theory, application development will be covered. Query processing techniques will also be covered. Some other topics related to database processing may also be covered.
COURSE DETAIL
This course provides sound understanding of fundamental concepts and emerging problems in networking and provides training in network programming. Students will learn how to explain in detail how a piece of information travels through the Internet and reaches the other side of the world.
Topics include emerging issues around the Internet, basic network programming for sockets, TCP, and routing. Prerequisite: basic programming skills in C/C++.
COURSE DETAIL
This course covers programming language concepts, not as paradigms but as a set of basic building blocks, by using the Scala programming language to implement interpreters for the concepts.
Students will learn how to learn new languages quickly and how to evaluate various languages and pick the most suitable one for a given task. The course also explores how to know when and how to design language, and how to understand the effects of languages on thought and communication.
COURSE DETAIL
This course introduces the basic principles and hardware structures of a modern programmable computer. Students will explore computer architecture as the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals.
Students will learn how to design the control and datapath for a pipelined RISC processor and how to design fast memory and storage systems. The principles presented in lecture are reinforced in the laboratory through design and simulation of a register transfer (RT) implementation of a RISC processor pipeline in Verilog.