Course Schedule
COURSE SCHEDULE: summer 2020
COMP 11-C
Introduction to Computer Science

The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary.

Milod Kazerounian
MW 6:00p-7:30p
Room To Be Announced
COMP 15-C
Data Structures

A second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion.

Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit.
Matthew Russell
W 6:00p-9:30p
Room To Be Announced
COMP 61-A
Discrete Mathematics

(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs.

Prerequisite: Math 32 or Computer Science 11 or permission of instructor.
Srdjan Divac
MWR 1:00-3:30
Room To Be Announced
COMP 116-C
Computer System Security

A systems perspective on host-based and network-based computer security. Current vulnerabilities and measures for protecting hosts and networks. Firewalls and intrusion detection systems. Principles illustrated through hands-on programming projects.

Prerequisite: Comp 40.
Ming Chow
MTWRF 12:00a-12:00a
Online
COMP 120-A
Web Engineering

Web applications are complex systems that deliver a plethora of functionality to a large number of users, and also exhibit unique behaviors and demands in terms of performance, scalability, usability, and security. Web engineering is an emerging and multidisciplinary process that is used to create quality web applications. This course will discuss the limits of current web technologies, the similarities and differences between web and software engineering, design, information and service architectures, content management, and testing disciplines. Frameworks such as Rails, Spring, and Symfony will be emphasized and used. Projects will involve search, cloud computing, location-based services, and mobile web development.

Prerequisite: Comp 15 and Comp 20, or Consent of Instructor.
Ming Chow
MTWRF 12:00a-12:00a
Online
COMP 131-A
Artificial Intelligence

History, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning.

Prerequisite: Comp 15 and either COMP/MATH 22 or 61 or familiarity with both symbolic logic and basic probability theory.
Fabrizio Santini
TR 6:00p-8:30p
Room To Be Announced
COMP 150-B
Algorithms and Data Structures 2

This course offers an opportunity to expand your knowledge on various topics involving algorithms, data structures and graphs. Often these topics are intertwined; e.g., to create efficient algorithms, it may be useful to design data structures or use existing ones. We will cover a range of topics, such as path approximation, spanners, network flow, linear programming, all-pairs shortest paths, near-planarity, Fibonacci heaps and Quake heaps, balanced trees (Splay, WAVL, Scapegoat, BB-alpha), skip lists, fractional cascading, high-dimensional range counting, graph coloring, the probabilistic method, string matching, etc. These are topics that are useful to know, as one prepares for advanced interviews and/or further graduate work. As an elective, this course will aim to let each student focus more on topics that they are interested in. Evaluation will be primarily based on participation and a project.

Prerequisite: Completion of COMP 160 or permission of instructor.
Greg Aloupis
MTWRF 12:00a-12:00a
Online
COMP 150-A
Computing for Developing Regions

The course will cover a series of case studies on the use of computing to solve important problems in the developing regions, such as healthcare, education, and governance. The course will involve a semester long hands-on project which will focus on one of the above challenges. This term's projects will focus on the COVID-19 crisis -- the new challenges and opportunities around using technology to face this pandemic.

Prerequisite: Completion of COMP 15 or graduate standing
Fahad Dogar
MTWR 10:30-12:30
Room To Be Announced
COMP 160-A
Algorithms

Introduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Greg Aloupis
MTWRF 12:00a-12:00a
Online
COMP 160-AB
Algorithms

Introduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Greg Aloupis
MTWRF 12:00a-12:00a
Online
COMP 170-A
Computation Theory

Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems.

Prerequisite: COMP 15 and COMP/MATH 22 or 61.
Martin Allen
MW 6:00p-8:30p
Room To Be Announced