This course teaches students how to design and
analyze algorithms and data structures, including sorting and searching
algorithms, graph algorithms, and dynamic programming.
This course covers the design and
organization of computer hardware, including the central processing unit (CPU),
memory, and input/output devices.
This course covers the principles and design of
programming languages, including syntax, semantics, and type systems.
This course covers the design and implementation of
operating systems, including processes, threads, and memory management.
This course covers the design and implementation of
database systems, including data modeling, query languages, and database
optimization.
This course covers the principles of computer networking,
including protocols, routing, and networking hardware.
This course covers the principles and techniques of artificial
intelligence, including machine learning, natural language processing, and
computer vision.
This course covers the design and evaluation of
user interfaces for computer systems, including usability testing and
user-centered design.