Courses Taught

Spring 23

CS5001: Intensive Foundations of Computer Science
Introduces systematic problem solving through programming. Offers students an opportunity to learn how to analyze a problem, how to divide and organize the problem into appropriate components, how to describe the problem in a computer language, how to analyze and understand the behavior of their programs, and how to test that their programs are working correctly. Additionally, introduces a method of program design called object-oriented programming and various ways to organize data, including a discussion of their advantages and disadvantages. To practice the course concepts, students undertake assignments ranging from small, highly specified programming tasks to larger open-ended problems where students design and code their own solutions.
Modality: hybrid (SF), online (Vancouver)
CS5008: Data Structures, Algorithms, and their Applications in Computer Systems
This course presents an integrated approach to the study of data structures, algorithms, and their applications within computer systems. We introduce a variety of systems-related topics (models of computation, computer architecture, compilation, system software) and fundamental techniques for solving algorithms (divide-and-conquer, dynamic programming, graph algorithms) as they apply to computer systems. The integration of topics is demonstrated through the implementation of fundamental data structures (lists, queues, trees, maps, graphs) in the C programming language. Additional breadth topics can include programming applications that expose students to primitives of different subsystems such as multi-threading.
Modality: hybrid (BOS)

Fall 22

DSCI3000: Foundations of Data Science
Introduces core modern data science technologies and methods that provide a foundation for subsequent Data Science classes. Covers working with tensors and applied linear algebra in standard numerical computing libraries (e.g., NumPy); processing and integrating data from a variety of structured and unstructured sources; introductory concepts in probability, statistics, and machine learning; basic data visualization techniques; and now standard data science tools such as Jupyter notebooks.
Modality: online

Summer 22

CS163: CS 1: No Prior Programming Experience
Computer programming for students without previous programming experience. Topics include variables, assignment, expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: online
CS164: CS 1: Prior Programming Experience
Computer programming for students with limited programming experience. Problem decomposition for good design; expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: online

Spring 22

CS163: CS 1: No Prior Programming Experience
Computer programming for students without previous programming experience. Topics include variables, assignment, expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: on-campus, online
CS164: CS 1: Prior Programming Experiience
Computer programming for students with limited programming experience. Problem decomposition for good design; expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: on-campus, online
CS150B: Culture and Coding: Python (AUCC 3B/GT-AH3)
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Python programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: on-campus, online

Fall 21

CS163: CS 1: No Prior Programming Experience
Computer programming for students without previous programming experience. Topics include variables, assignment, expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: on-campus, online
CS164: CS 1: Prior Programming Experience
Computer programming for students with limited programming experience. Problem decomposition for good design; expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: online
CS150B: Culture and Coding: Python (AUCC 3B/GT-AH3)
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Python programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: on-campus, online

Summer 21

CS163: CS 1: No Prior Programming Experience
Computer programming for students without previous programming experience. Topics include variables, assignment, expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: online
CS164: CS 1: Prior Programming Experiience
Computer programming for students with limited programming experience. Problem decomposition for good design; expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: online
CS150: Culture and Coding: Java (AUCC 3B/GT-AH3)
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Java programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: online

Fall 20

CS163: CS 1: No Prior Programming Experience
Computer programming for students without previous programming experience. Topics include variables, assignment, expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: online
CS164: CS 1: Prior Programming Experience
Computer programming for students with limited programming experience. Problem decomposition for good design; expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: on-campus, online
CS150: Culture and Coding: Java (AUCC 3B/GT-AH3)
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Java programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: on-campus, online

Summer 20

CS163: CS 1: No Prior Programming Experience
Computer programming for students without previous programming experience. Topics include variables, assignment, expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: online
CS164: CS 1: Prior Programming Experiience
Computer programming for students with limited programming experience. Problem decomposition for good design; expressions, operators, booleans, conditionals, characters and strings, control loops, arrays, objects and classes, file input/output, interfaces, recursion, lists, and sorting.
Modality: online
CS150: Culture and Coding: Java (AUCC 3B/GT-AH3)
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Java programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: online

Spring 20

CS150: Culture and Coding: Java (AUCC 3B/GT-AH3)
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Java programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: on-campus, online

Fall 19

CS150: Culture and Coding: Java (AUCC 3B/GT-AH3)
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Java programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: on-campus, online

Spring 19

CS150: Introduction to Programming: Java
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Java programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: on-campus

Fall 18

CS150: Introduction to Programming: Java
Survey of computer science, formal logic, and computational thinking. Explores the historical, gender, and cultural perspectives on the role of technology in society. Includes learning basic elements of the Java programming language. Write small programs, and construct written arguments on ways in which technology influences our modern culture. Previous computer science experience not necessary.
Modality: on-campus