| COMP 11-C |
Introduction to Computer ScienceThe 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. |
MW 6:00p-7:30p Room To Be Announced |
| COMP 15-C |
Data StructuresA 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. |
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. |
MWR 1:00-3:30 Room To Be Announced |
| COMP 116-C |
Computer System SecurityA 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. |
MTWRF 12:00a-12:00a Online |
| COMP 120-A |
Web EngineeringWeb 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. |
MTWRF 12:00a-12:00a Online |
| COMP 131-A |
Artificial IntelligenceHistory, 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. |
TR 6:00p-8:30p Room To Be Announced |
| COMP 150-B |
Algorithms and Data Structures 2This 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. |
MTWRF 12:00a-12:00a Online |
| COMP 150-A |
Computing for Developing RegionsThe 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 |
MTWR 10:30-12:30 Room To Be Announced |
| COMP 160-A |
AlgorithmsIntroduction 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. |
MTWRF 12:00a-12:00a Online |
| COMP 160-AB |
AlgorithmsIntroduction 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. |
MTWRF 12:00a-12:00a Online |
| COMP 170-A |
Computation TheoryModels 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. |
MW 6:00p-8:30p Room To Be Announced |
spring 2020