The technological successes that have led to the Internet's wide adoption for work and social purposes. The ways in which computer technology has led...
The nature of Computer Science as a discipline; the design and analysis of algorithms and their implementation as modular, reliable, well-documented...
A continuation for both Computer Science 1025A/B and Computer Science 1026A/B. Data organization and manipulation; abstract data types and their...
Techniques used for determining technological needs of businesses; building and managing systems to meet those needs; development roles of individuals...
This course explores the use of different types of media (e.g., text, images, sound, animation) to convey ideas and facilitate interaction. Topics...
A continuation for Engineering Sceince 1036A/B and the former Computer Science 036a/b. Data organization and manipulation; abstract data types and...
This course continues the exploration of popular media and Internet technologies. Topics include making websites more interactive, more searchable and...
A survey course on the cultural, political, economic, military, and technological history leading to the development of the modern computer and its...
A hands-on introduction to tools for the simulation of social phenomena from the early work of Herbert Simon to more recent work on agent-based social...
An introduction to fundamental programming skills in the context of High Performance Computing (HPC), exploring tools, techniques, and theory used in...
Essential information processing skills for life science students. Includes core concepts of algorithms and data structures; creating programs and...
An overview of core data structures and algorithms in computing, with a focus on applications to informatics and analytics. Includes lists, stacks,...
This course introduces computing fundamentals as they relate to medical computing. A series of topics is covered, including topics selected from:...
This course will cover the same material as Computer Science 2124A/B, but will also provide students with the opportunity to enhance their...
Computer architecture; data representations; hardware; memory management; instruction sets; exposure to an assembly language for a RISC machine;...
Propositional and predicate logic; representing static and dynamic properties of real-world systems; logic as a tool for representation, reasoning and...
Lists, stacks, queues, priority queues, trees, graphs, and their associated algorithms; file structures; sorting, searching, and hashing techniques;...
An introduction to software tools and systems programming. Topics include: understanding how programs execute (compilation, linking and loading); an...
A team project course that provides practical experience in the software engineering field. Introduction to the structure and unique characteristics...