CS 111
CS 111 - Comp Program & Prob Solving

An introduction to problem solving through computer programming. Students learn how to read, modify, design, debug, and test algorithms that solve problems. Programming concepts include control structures, data structures, abstraction, recursion, modularity, and object-oriented design. Students explore these concepts in the context of interactive programs involving graphics and user interfaces using the Python programming language. Students are required to attend an additional two-hour laboratory section each week. Required for students who wish to major or minor in computer science or elect more advanced courses in the field.

Units: 1

Max Enrollment: 30

Prerequisites: Fulfillment of the basic skills component of the Quantitative Reasoning requirement. No prior background with computers is expected.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Does not fulfill the laboratory requirement.

CS 112
CS 112 - Comp for the Sciences

An introduction to computer programming that provides the tools necessary for students to use computers effectively in scientific work, including physical sciences, biological sciences, medicine, mathematics, psychology, and economics. Students learn to write software to solve problems, visualize and analyze data, perform computer simulations, and implement and test computational models that arise in a wide range of scientific disciplines. The course introduces MATLAB, an extensive and widely used technical computing environment with advanced graphics, visualization, and analysis tools, and a rich high-level programming language. Students are required to attend an additional two-hour laboratory section each week.

Units: 1

Max Enrollment: 30

Prerequisites: Fulfillment of the basic skills component of the Quantitative Reasoning requirement. No prior background with computers is expected.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes: Does not fulfill the laboratory requirement.

CS 115
CS 115/ MAS 115 - Computing for Socio-Techno Web

Technologies and services made available from Computer Science, such as online environments Facebook, Twitter, and Wikipedia, are integral in today's world. Many problems exist in our real world that transfer to and get amplified in the virtual world created by highly interconnected and ubiquitous computing. What are the basic technologies that enable all this innovation? How do these new environments affect our lives? This course aims to answer these questions through investigation of the socio-techno web. On the technical side we study three languages: HTML5, CSS, and basic JavaScript. We interweave the technical with the social aspects by examining issues introduced by the use of the Social Web. In the process we learn how computers work.

Units: 1

Max Enrollment: 30

Crosslisted Courses: MAS 115

Prerequisites: This course is open to Firstyears and Sophomores, others by permission.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 121
CS 121/ MAS 121 - Intro to Game Design

Video games are a popular form of interactive media that engage players in dynamic experiences through unprecedented combinations of storytelling, visualization, interactivity, and multi-sensory immersion. This course will introduce students to video game production and concepts. We will develop a framework for critically analyzing this medium, learn to identify effective strategies for creating games and describe what elements of design impact the final experience of a game. We’ll also identify the function of user agency in this medium to better understand how players are affected by representation in video games. Throughout the course, students will be asked to apply these concepts while building their own games and become familiar with the fundamentals of video game design.

Units: 1

Max Enrollment: 18

Crosslisted Courses: MAS 121

Prerequisites: None. Open to Firstyears and Sophomores, others by permission of the instructor.

Instructor: Tynes

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Fall

Notes:

CS 203
CS 203 - Computer Music

This course explores how computer code can be used to produce music by examining topics such as digital signal processing, synthesis, protocols, networking, and modeling. Students work with a computer environment called SuperCollider, an open-source software designed for real-time audio synthesis. Students complete weekly programming assignments and create music ranging from synthesizer tracks in popular songs to experimental algorithmic compositions.

Units: 1

Max Enrollment: 18

Prerequisites: CS111

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving; ARS - Visual Arts, Music, Theater, Film and Video

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Not Offered

Notes:

CS 204
CS 204 - Intro to Web Development

This course introduces modern web development using HTML, CSS and JavaScript. JavaScript is explored in detail, including scoping, closures, objects, prototype inheritance, and namespacing. The jQuery library is also introduced, and the course covers event handling and Ajax interactions. Students will build web pages using front-end templates such as bootstrap and JavaScript libraries for client-side templating. Designed web pages will be modern, responsive and accessible. The course also covers the jQuery UI (User Interface) library and its capabilities.

Units: 1

Max Enrollment: 24

Prerequisites: CS 111 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Fall and Spring

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 220
CS 220 - Human-Computer Interaction

Human-Computer Interaction is one of the areas that have transformed the way we use computers in the last 30 years. Topics include methodology for designing and testing user interfaces, interaction styles (command line, menus, graphical user interfaces, virtual reality, tangible user interfaces), interaction techniques (including use of voice, gesture, eye movements), design guidelines, and user interface software tools. Students will design a user interface, program a prototype, and test the results for usability.

Units: 1

Max Enrollment: 18

Prerequisites: One of the following courses - CS 111, CS 112, CS/MAS 115.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 230
CS 230 - Data Structures

An introduction to techniques and building blocks for organizing large programs. Topics include: modules, abstract data types, recursion, algorithmic efficiency, and the use and implementation of standard data structures and algorithms, such as lists, trees, graphs, stacks, queues, priority queues, tables, sorting, and searching. Students become familiar with these concepts through weekly programming assignments using the Java programming language. Students are required to attend an additional two-hour laboratory section each week.

Units: 1

Max Enrollment: 24

Prerequisites: CS 111 and permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Does not fulfill the laboratory requirement.

CS 231
CS 231 - Fundamental Algorithms

An introduction to the design and analysis of fundamental algorithms. General techniques covered: divide-and-conquer algorithms, dynamic programming, greediness, probabilistic algorithms. Topics include: sorting, searching, graph algorithms, compression, cryptography, computational geometry, and NP-completeness.

Units: 1

Max Enrollment: 24

Prerequisites: CS 230 and either MATH 225 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 232
CS 232 - Artificial Intelligence

What is artificial intelligence (AI) and should humans fear it as one of "our biggest existential threats"? In this course we will grapple with these difficult questions and investigate them in different ways. We will follow the history of AI from Alan Turing's "Can Machines Think?" seminal paper to the recent Elon Musk musings on AI's threat to mankind. We will discuss the underlying theory of the symbolic, knowledge-rich approaches of the 20th century AI (e.g., rule-based systems) and the 21st century approaches relying on statistical learning from large amounts of data (e.g., machine learning algorithms). Finally, we will dissect some of the AI applications in modern life: personal assistant technology like Alexa and Siri, machine translation (Google Translate), and self-autonomous cars. By the end of the semester, students should be able to answer the starting questions in depth and with nuance.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year; Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 234
CS 234 - Data, Analytics, & Visual

As the number of our digital traces continues to grow, so does the opportunity for discovering meaningful patterns in these traces. In this course, students will initially learn how to collect, clean, format, and store data from digital platforms. By adopting a computational approach to statistical analysis, students will then implement in code different statistical metrics and simulation scenarios for hypothesis testing and estimation. Finally, students will generate meaningful visualizations for data exploration and communicating results. Additionally, we will discuss the ethics of data collection and think critically about current practices of experimenting with online users. Students will work in groups to create their own datasets, ask an interesting question, perform statistical analyses and visualizations, and report the results.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Degree Requirements: QRF - Quantitative Reasoning - Overlay

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Fall

Notes: Ann E. Maurer '51 Speaking Intensive Course.

CS 235
CS 235 - Theory of Computation

This course offers an introduction to the theory of computation. Topics include languages, regular expressions, finite automata, grammars, pushdown automata, and Turing machines. The first part of the course covers the Chomsky hierarchy of languages and their associated computational models. The second part of the course focuses on decidability issues and unsolvable problems. The final part of the course investigates complexity theory.

Units: 1

Max Enrollment: 24

Prerequisites: CS 230 and either MATH 225 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 240
CS 240 - Foundations of Comp. Systems

This course examines how computers run programs, introducing key software and hardware abstractions and implementations between programming languages and transistors. The course traces representation and translation of data and programs through three broad topics in computer systems: computer hardware implementation, including digital logic, computer arithmetic, and machine organization; the hardware-software interface, including instruction set architecture, assembly code, and the C programming language; and abstractions for practical systems, including the physical memory hierarchy, the operating system process model, virtual memory, and memory management. Students complete extensive hands-on projects in hardware and software systems. Students are required to attend one three-hour laboratory weekly.

Units: 1.25

Max Enrollment: 24

Prerequisites: CS 230, or permission of the instructor.

Instructor: Staff

Distribution Requirements: LAB - Natural and Physical Sciences Laboratory; MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring; Fall

Notes: This course does satisfy the laboratory requirement.

CS 242
CS 242 - Computer Networks

A systems-oriented approach to data networks, including a theoretical discussion of common networking problems and an examination of modern networks and protocols. Topics include point-to-point links, packet switching, Internet protocols, end-to-end protocols, congestion control, and security. Projects may include client-server applications and network measurement tools.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Fall

Notes:

CS 250
CS 250 - Research or Individual Study

Units: 1

Max Enrollment: 25

Prerequisites: CS 230 or permission of the instructor.

Instructor:

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Mandatory credit/noncredit.

CS 250H
CS 250H - Research or Individual Study

Units: 0.5

Max Enrollment: 15

Prerequisites: CS 230 or permission of the instructor.

Instructor:

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring; Fall

Notes: Mandatory credit/noncredit.

CS 251
CS 251 - Principles Programming Languages

This course introduces the principles underlying the design, semantics, and implementation of modern programming languages in major paradigms including function-oriented, imperative, and object-oriented. The course examines: language dimensions including syntax, naming, state, data, control, types, abstraction, modularity, and extensibility; issues in the runtime representation and implementation of programming languages; and the expression and management of parallelism and concurrency. Students explore course topics via programming exercises in several languages, including the development of programming language interpreters.

Units: 1

Max Enrollment: 24

Prerequisites: CS 230 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 301
CS 301 - Compiler and Runtime Design

This course covers principles and practice in the design and implementation of modern compilers and programming language runtime systems. Topics include lexical analysis, parsing, symbols tables, semantic analysis, type checking, intermediate representations, program analysis and optimization, code generation, garbage collection, and other runtime support. As time permits, the course may also survey topics including just-in-time compilation, runtime optimization, concurrent runtime systems, or extended automatic program error detection. Students will construct a full compiler and runtime system for a simple statically-typed programming language over the course of the semester.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 and at least one of CS 240 or CS 251. CS 235 is recommended, but not required.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year; Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 304
CS 304 - Databases with Web Interfaces

A study of the three-layer architecture commonly used for Web-based applications such as e-commerce sites. We will learn to model and design databases using entity-relationship diagrams and the Standard Query Language (SQL) for managing databases. We will focus on Flask, a popular Python-based web micro-framework, as well as important alternatives such as Node.js. We will learn about implementing features using Ajax. We will also discuss performance, reliability, and security issues. Finally, we will create dynamic websites driven by database entries.

Units: 1

Max Enrollment: 24

Prerequisites: CS 230 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes:

CS 305
CS 305 - Machine Learning

Machine learning is the science of teaching computers how to learn from observations. It is ubiquitous in our interactions with society, showing up in face recognition, web search, targeted advertising, speech processing, genetic analysis, and even Facebook's selection of posts to display. It is currently at the forefront of research in artificial intelligence, and has been making rapid strides given the vast availability of data today. This course is a broad introduction to the field, covering the theoretical ideas behind widely used algorithms like support vector machines, neural networks, graphical models, decision trees, and many more. We will also study practical applications of these algorithms to problems in vision, speech, language, biology, and the social sciences.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 and either MATH 206 or MATH 220 or MATH 225.

Instructor: Staff

Distribution Requirements: EC - Epistemology and Cognition; MM - Mathematical Modeling and Problem Solving

Semesters Offered this Academic Year: Not Offered

Notes: Mandatory credit/noncredit.

CS 307
CS 307 - Computer Graphics

A survey of topics in computer graphics with an emphasis on fundamental techniques. Topics include: graphics hardware, fundamentals of three-dimensional graphics including modeling, projection, coordinate transformation, synthetic camera specification, color, lighting, shading, hidden surface removal, animation, and texture-mapping. We also cover the mathematical representation and programming specification of lines, planes, curves, and surfaces. Students will build graphics applications using a browser-based platform.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring

Notes:

CS 313
CS 313 - Computational Biology

Many elegant computational problems arise naturally in the modern study of molecular biology. This course is an introduction to the design, implementation, and analysis of algorithms with applications in genomics. Topics include bioinformatic algorithms for dynamic programming, tree-building, clustering, hidden Markov models, expectation maximization, Gibbs sampling, and stochastic context-free grammars. Topics will be studied in the context of analyzing DNA sequences and other sources of biological data. Applications include sequence alignment, gene-finding, structure prediction, motif and pattern searches, and phylogenetic inference. Course projects will involve significant computer programming in Java. No biology background is expected.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Not Offered

Notes:

CS 315
CS 315 - Web Search and Mining

In the past decade, we have experienced the rise of socio-technical systems used by millions of people: Google, Facebook, Twitter, Wikipedia, etc. Such systems are on the one hand computational systems, using sophisticated infrastructure and algorithms to organize huge amount of data and text, but on the other hand social systems, because they cannot succeed without human participation. How are such systems built? What algorithms underlie their foundations? How does human behavior influence their operation and vice-versa? In this class, we will delve into answering these questions by means of: a) reading current research papers on the inner-workings of such systems; b) implementing algorithms that accomplish tasks such as web crawling, web search, random walks, learning to rank, text classification, topic modeling; and c) critically thinking about the unexamined embrace of techno-solutionism using a humanistic lens.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Fall

Notes:

CS 320
CS 320 - Tangible User Interfaces

Tangible user interfaces emerge as a novel human-computer interaction style that interlinks the physical and digital worlds. Extending beyond the limitations of the computer mouse, keyboard, and monitor, tangible user interfaces allow users to take advantage of their natural spatial skills while supporting collaborative work. Students will be introduced to conceptual frameworks, the latest research, and a variety of techniques for designing and building these interfaces. Developing tangible interfaces requires creativity as well as an interdisciplinary perspective. Hence, students will work in teams to design, prototype, and physically build tangible user interfaces.

Units: 1

Max Enrollment: 18

Prerequisites: CS 215, CS 220, or CS 230, or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year; Fall

Semesters Offered this Academic Year: Fall

Notes:

CS 321
CS 321 - Extended Reality

Mixed and Augmented Reality technologies combine virtual content with the physical environment, allowing people to interact with computers and digital content in exciting new ways. These emerging human-computer interaction paradigms have been applied to a variety of fields including medicine, education, design, entertainment, and play. This course introduces fundamental methods, principles, and tools for designing, programming, and testing mixed and augmented reality applications. Topics include the history of virtual and augmented reality, application domains, hardware for 3D input and display, tracking and registration, 3D perception, and societal implications. Students will work individually and in teams to develop novel virtual and augmented reality experiences.

Units: 1

Max Enrollment: 18

Prerequisites: CS 220 or CS 230.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes: Ann E. Maurer '51 Speaking Intensive Course.

CS 323
CS 323 - Social Computing

Social Computing systems connect us to our closest friends, and globally to people all over the world. In recent decades, companies like Facebook, Snapchat, and even Amazon, have reshaped our social environments. All of these systems, at their core, are designed to facilitate interactions between people. What design decisions shape these systems? Students will learn the theoretical foundations of Social Computing drawn from the Social Sciences, and will learn software prototyping and design techniques to create new systems. This class will explore topics such as identity, anonymity, reputation, moderation, crowdsourcing, and social algorithms. Students will work in teams to design, prototype, and build social computing systems.

Units: 1

Max Enrollment: 18

Prerequisites: CS 220 or CS230.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year; Fall

Semesters Offered this Academic Year: Not Offered

Notes:

CS 332
CS 332 - Visl Proc Comp & Bio Vsn Syst

This course explores methods for deriving information about the three-dimensional world from visual images and using this information for tasks such as recognizing objects and events, navigating through a dynamic scene, and communicating between social agents. We use an interdisciplinary approach that combines computer science, psychology, and neuroscience, facilitating the design of effective computer vision systems while contributing to an understanding of human visual processing and how it is carried out in the brain. Topics include edge detection, stereo vision, motion analysis, the analysis of color, object and face recognition, activity recognition, visual attention and search, recognition methods based on deep learning, and applications in medicine, security, information retrieval, and mobile robotics. The course uses vision software written in MATLAB.

Units: 1

Max Enrollment: 20

Prerequisites: CS 112 or CS 230, or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year; Fall

Semesters Offered this Academic Year: Fall

Notes:

CS 341
CS 341 - Operating Systems

This course is designed to provide a solid foundation in the design and implementation of key concepts in existing operating systems. These concepts include process management, scheduling, multitasking, synchronization, deadlocks, memory management, file systems, and I/O operations. Throughout the course, the mechanism design aspects of these concepts will be discussed and assessed from the point of view of a programmer. Moreover, more modern operating systems will be explored, such as virtual operating systems.

Units: 1

Max Enrollment: 18

Prerequisites: CS 240 or permission of instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Fall

Notes:

CS 342
CS 342 - Computer Security

An introduction to computer security and privacy. Topics will include privacy, threat modeling, software security, web tracking, web security, usable security, the design of secure and privacy preserving tools, authentication, anonymity, practical and theoretical aspects of cryptography, secure protocols, network security, social engineering, the relationship of the law to security and privacy, and the ethics of hacking. This course will emphasize hands-on experience with technical topics and the ability to communicate security and privacy topics to lay and expert audiences. Assignments will include technical exercises exploring security exploits and tools in a Linux environment; problem sets including exercises and proofs related to theoretical aspects of computer security; and opportunities to research, write, present, and lead discussions on security- and privacy-related topics. Students are required to attend an additional 70-minute discussion section each week.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 and CS 240 or permission of the instructor.

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year; Spring

Semesters Offered this Academic Year: Not Offered

Notes:

CS 343
CS 343 - Distributed Computing

What is the “cloud”? What is a distributed system? This course is for students interested in understanding the fundamental concepts and algorithms underlying existing distributed systems. By the end of this course, students will have the basic knowledge needed to work with and build distributed systems, such as peer-to-peer systems and cloud computing systems. Topics include MapReduce, Spark, communication models, synchronization, distributed file systems, coordination algorithms, consensus algorithms, fault-tolerance, and security.

Units: 1

Max Enrollment: 18

Prerequisites: CS 230 (required); CS 231 and CS 242 (recommended).

Instructor: Staff

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Every other year

Semesters Offered this Academic Year: Not Offered

Notes:

CS 349H
CS 349H - HCI in the age of Automation

We are living in the age of automation, where artificial intelligence (AI) is integrated into apps and devices that are woven into our daily lives. Our dependency on automated systems such as expert systems, conversational agents, self-driving cars, and drones in daily tasks will increase in the near future, and will foster new forms of human-automation interaction.

How can we design human-automation interactions, which are intuitive, and promote safety, transparency, trust, productivity and wellbeing? How can we design automated systems that promote equity and dignity? What impact will automation have on individuals, communities, and our global society?

This course will begin by surveying human-interaction with various automated systems. We will then examine automation as a global issue with impact on privacy, the future of work and wellbeing, and the peril of propagating bias. Finally, we will consider the potential of automation to address global challenges in healthcare, food security, and sustainability.

Units: 0.5

Max Enrollment: 18

Prerequisites: CS111, and at least one 200 or 300 level course from another department, which explores relevant issues (e.g. ANTH 232, AFR 213, ECON 229, ES 214, PHIL 222, SOC 320, CAMS 301, BIOC 324, POL1 303)

Instructor: Orit Shaer

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring

Semesters Offered this Academic Year: Spring

Notes:

CS 350
CS 350 - Research or Individual Study

Units: 1

Max Enrollment: 15

Prerequisites: Permission of the instructor. Open to juniors and seniors.

Instructor:

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Mandatory credit/noncredit.

CS 350H
CS 350H - Research or Individual Study

Units: 0.5

Max Enrollment: 15

Prerequisites: Permission of the instructor.

Instructor:

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Spring; Fall

Notes: Mandatory credit/noncredit.

CS 360
CS 360 - Senior Thesis Research

Units: 1

Max Enrollment: 15

Prerequisites: Permission of the department.

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Students enroll in Senior Thesis Research (360) in the first semester and carry out independent work under the supervision of a faculty member. If sufficient progress is made, students may continue with Senior Thesis (370) in the second semester.

CS 370
CS 370 - Senior Thesis

Units: 1

Max Enrollment: 25

Prerequisites: CS 360 and permission of the department.

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: Students enroll in Senior Thesis Research (360) in the first semester and carry out independent work under the supervision of a faculty member. If sufficient progress is made, students may continue with Senior Thesis (370) in the second semester.