Computer Science (B.A. or B.S.)

Postgraduate

In New Haven (USA)

Price on request

Description

  • Type

    Postgraduate

  • Location

    New haven (USA)

The Department of Computer Science offers both B.S. and B.A. degree programs, as well as four combined majors in cooperation with other departments: Electrical Engineering and Computer Science, Computer Science and Economics, Computer Science and Mathematics, and Computer Science and Psychology. Each major program not only provides a solid technical education but also allows students either to take a broad range of courses in other disciplines or to complete the requirements of a second major.

Facilities

Location

Start date

New Haven (USA)
See map
06520

Start date

On request

About this course

The B.S. and the B.A. degree programs have the same required five core courses: CPSC 201; CPSC 202 or MATH 244; CPSC 223; CPSC 323; and CPSC 365 or 366. CPSC 480 and 490 may not be counted toward these core courses. 

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Computational
  • Humanities
  • Music
  • Network Training
  • Programming
  • Communication Training
  • Engineering
  • Technology
  • Systems
  • Law
  • Web
  • Driving
  • Design
  • Algorithms
  • Network
  • Computing
  • Credit
  • Problem Solving
  • Staff
  • IT Law

Course programme

Introductory Courses

* CPSC 035b / MUSI 035b, Twenty-First Century Electronic and Computer Music TechniquesScott Petersen

Exploration of twenty-first century electronic and computer music through the diverse subjects and issues at the intersection of technology and new music. How computers have changed and challenged the analysis, composition, production, and appreciation of music over the last fifty years. Knowledge of basic music theory and the ability to read Western musical notation is assumed. Enrollment limited to first-year students. Preregistration required; see under First-Year Seminar Program.
HTBA

CPSC 100a / CPSC S100, Introduction to Computing and ProgrammingBenedict Brown

Introduction to the intellectual enterprises of computer science and to the art of programming. Students learn how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript, plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. See CS50's website, for additional information. No previous programming experience required. Open to students of all levels and majors.  QR
HTBA

CPSC 112b, Introduction to ProgrammingBenedict Brown

Development on the computer of programming skills, problem-solving methods, and selected applications. No previous experience with computers necessary.  QR
HTBA

* CPSC 150a, Computer Science and the Modern Intellectual AgendaDavid Gelernter

Introduction to the basic ideas of computer science (computability, algorithm, virtual machine, symbol processing system), and of several ongoing relationships between computer science and other fields, particularly philosophy of mind. No previous experience with computers necessary. Enrollment limited to 25.  WR, HU
HTBA

CPSC 183a, Law, Technology, and CultureBrad Rosen

An exploration of the myriad ways in which law and technology intersect, with a special focus on the role of cyberspace. Topics include digital copyright, free speech, privacy and anonymity, information security, innovation, online communities, the impact of technology on society, and emerging trends. No previous experience with computers or law necessary.  SO
HTBA

* CPSC 185b, Control, Privacy, and TechnologyBrad Rosen

The evolution of various legal doctrines with and around technological development. Topics include criminal law, privacy, search and seizure, digital rights, and the implications of technologically permitted methods of control on the law. Special attention to case law and policy. After CPSC 183.  WR, SO
HTBA

CPSC 200b, Introduction to Information SystemsStaff

The real-world artifacts and implementations that comprise the vital computational organisms that populate our world. Hardware and software and the related issues of security, privacy, regulation, and software engineering. Examples stress practical applications of technology, as well as limitations and societal issues. After CPSC 100 or 112 or equivalent.  QR
HTBA

CPSC 201a or b, Introduction to Computer ScienceStaff

Introduction to the concepts, techniques, and applications of computer science. Topics include computer systems (the design of computers and their languages); theoretical foundations of computing (computability, complexity, algorithm design); and artificial intelligence (the organization of knowledge and its representation for efficient search). Examples stress the importance of different problem-solving methods. After CPSC 112 or equivalent.  QR
HTBA

CPSC 202a, Mathematical Tools for Computer ScienceDana Angluin

Introduction to formal methods for reasoning and to mathematical techniques basic to computer science. Topics include propositional logic, discrete mathematics, and linear algebra. Emphasis on applications to computer science: recurrences, sorting, graph traversal, Gaussian elimination.  QR
HTBA

CPSC 223a or b, Data Structures and Programming TechniquesStaff

Topics include programming in C; data structures (arrays, stacks, queues, lists, trees, heaps, graphs); sorting and searching; storage allocation and management; data abstraction; programming style; testing and debugging; writing efficient programs. After CPSC 201 or equivalent.  QRRP
HTBA

CPSC 235b / EENG 245b, Self-Driving Cars: Theory and PracticeMan-Ki Yoon

This course explores the theory and practice of building self-driving cars using advanced computing technologies. Topics include embedded system programming, sensor fusion, control theory, and introductory planning and navigation techniques using machine learning and computer vision. Students work in small teams to design and build miniaturized self-driving cars that autonomously navigate an indoor track that resembles real road environments. The final project involves driving competitions and project report/presentation of their work. Prerequisite: CPSC 112, 201, 223, or equivalent. Instructor’s permission is required to waive the prerequisites. Enrollment limited to 18.  QR
HTBA

CPSC 257a, Information Security in the Real WorldStaff

Introduction to information security, the practice of protecting information from unauthorized actions, in the context of computer systems. Topics include current security-related issues, basic adversarial models and threats to computer systems, potential defenses, security tools, and common security breaches and their wider impacts. Prerequisite: CPSC 100, 112, or equivalent programming experience, or with permission of instructor.  QR
HTBA

CPSC 276a, Introduction to Web Application for the Digital HumanitiesBenedict Brown

Introduction to applications of computer and data science in the humanities, including web technologies, visualization, and database design. Students work in teams to develop a variety of applications proposed by faculty and staff from the Digital Humanities Lab, the Institute for the Preservation of Cultural Heritage, and the Computer Science department. Meets with CPSC 376. Students may earn credit for CPSC 276 or 376; not both. Prerequisite: CPSC 110, CPSC 112, equivalent programming experience, or permission of the instructor.  QR
HTBA

* CPSC 290a or b, Directed ResearchStaff

Individual research. Requires a faculty supervisor and the permission of the director of undergraduate studies. May be taken more than once for credit.
HTBA

Intermediate Courses

CPSC 310b, Technology, Power, and Security: Political Challenges of the Computer AgeJoan Feigenbaum

Twenty-first century societies are faced with both threats and opportunities that combine sophisticated computation with politics and international relations in critical ways. Examples include cyber warfare; cyber espionage; cyber crime; the role of social media in democratic self-governance, authoritarian control, and election "hacking"; cryptocurrencies; and mass surveillance. This course examines the political challenges wrought by massive increases in the power of computational and communication technologies and the potential for citizens and governments to harness those technologies to solve problems. It is co-taught by one faculty member in computer science and one in political science. Programming experience and some knowledge of basic computer science is required. Meets with CPSC 210/PLSC 369. Students may earn credit for CPSC 210/PLSC 369 or for CPSC 310; not for both. Prerequisite: CPSC 223 or the equivalent.  QR, SO
HTBA

CPSC 323a or b, Introduction to Systems Programming and Computer OrganizationStaff

Machine architecture and computer organization, systems programming in a high-level language, issues in operating systems, software engineering, prototyping in scripting languages. After CPSC 223.  QRRP
HTBA

CPSC 334a, Creative Embedded SystemsScott Petersen

Ubiquitous computing is creating new canvases and opportunities for creative ideas. This class explores the use of microprocessors, distributed sensor networks, IoT, and intermedia systems for the purposes of creative expression. The course is delivered in a mixed lecture and lab format that introduces the fundamental concepts and theory behind embedded systems as well as issues particular to their creative employment. The key objective of the course is for students to conceive of and implement creative uses of computation. To this end, skills to be obtained during the course are as follows: (1) appreciate the current efforts and motivation to push the limitations of computation for creative expression, both in new application and new foundational research; (2) weigh factors such as cost, power, processing, memory, I/O capabilities, and networking capabilities when choosing a set of embedded devices and sensors; (3) contextualize unfamiliar hardware and languages through examples, documentation, and familiar design pattern; and (4) manage communication between multiple languages, devices, and protocols. Additionally, at the end of the course students will have a portfolio of their work in the form of writing, code, video, audio, and physical artifacts. Prerequisite: CPSC 223 or equivalent or by permission of instructor.  QRRP
HTBA

CPSC 338b / EENG 348b, Digital SystemsStaff

Development of engineering skills through the design and analysis of digital logic components and circuits. Introduction to gate-level circuit design, beginning with single gates and building up to complex systems. Hands-on experience with circuit design using computer-aided design tools and programmable logic devices. Recommended preparation: EENG 201b.  RP
MW 11:35am-12:50pm

CPSC 362a / AMTH 262a / S&DS 262a, Computational Tools for Data ScienceRoy Lederman

Introduction to the core ideas and principles that arise in modern data analysis, bridging statistics and computer science and providing students the tools to grow and adapt as methods and techniques change. Topics include principle component analysis, independent component analysis, dictionary learning, neural networks and optimization, as well as scalable computing for large datasets. Assignments will include implementation, data analysis and theory. Students require background in linear algebra, multivariable calculus, probability and programming. Prerequisites: after or concurrently with MATH 222, 225, or 231; after or concurrently with MATH 120, 230, or ENAS 151; after or concurrently with CPSC 100, 112, or ENAS 130; after S&DS 100-108 or S&DS 230 or S&DS 241 or S&DS 242.  QR
HTBA

CPSC 365b / ECON 365b, AlgorithmsJames Glenn

Paradigms for algorithmic problem solving: greedy algorithms, divide and conquer, dynamic programming, and network flow. NP completeness and approximation algorithms for NP-complete problems. Algorithms for problems from economics, scheduling, network design and navigation, geometry, biology, and optimization. Provides algorithmic background essential to further study of computer science. Either CPSC 365 or CPSC 366 may be taken for credit. Prerequisites: CPSC 202 and 223.  QR
HTBA

* CPSC 366b / ECON 366b, Intensive AlgorithmsYang Cai

Mathematically sophisticated treatment of the design and analysis of algorithms and the theory of NP completeness. Algorithmic paradigms including greedy algorithms, divide and conquer, dynamic programming, network flow, approximation algorithms, and randomized algorithms. Problems drawn from the social sciences, Data Science, Computer Science, and engineering. For students with a flair for proofs and problem solving. Either CPSC 365 or CPSC 366 may be taken for credit. Prerequisites: MATH 244 and CPSC 223.  QR
HTBA

CPSC 367a / CPSC 467, Cryptography and SecurityMichael Fischer

An introduction to cryptography and information security. Cryptographic algorithms and their application to security of digital data are presented. Some topics include classical, symmetric, and public key cryptography; digital signatures; cryptographic hash functions; and pseudorandom number generation. Multiparty protocols such as zero-knowledge proofs, secret sharing, anonymous communication, and secure multiparty function evaluation are introduced. Practical applications of cryptography to secure network communication, secure password authentication, and blockchains are also covered. The emphasis is on cryptographic algorithms and protocols that can be useful in providing information security. Students interested in a more mathematical and rigorous approach to these topics should take CPSC 467 instead, or in addition to this course. This course may not be taken for credit after CPSC 467. Prerequisites: Some programming required. After CPSC 202 and 223.  QR
HTBA

CPSC 376a, Advanced Web Application Development in the Digital HumanitiesBenedict Brown

Advanced applications of computer and data science in the humanities, including web technologies, visualization, and database design. Students work in teams to develop a variety of applications proposed by faculty and staff from the Digital Humanities Lab, the Institute for the Preservation of Cultural Heritage, and the Computer Science department. Meets with CPSC 376. Students may earn credit for CPSC 276 or 376; not both. Prerequisite: CPSC 223 or equivalent, or permission of the instructor.  QR
HTBA

Advanced Courses

* CPSC 421b, Compilers and InterpretersStaff

Compiler organization and implementation: lexical analysis, formal syntax specification, parsing techniques, execution environment, storage management, code generation and optimization, procedure linkage and address binding. The effect of language-design decisions on compiler construction. After CPSC 323.  QR
HTBA

CPSC 423b, Principles of Operating SystemsAbraham Silberschatz

A survey of the underlying principles of modern operating systems. Topics include process management, memory management, storage management, protection and security, distributed systems, and virtual machines. Emphasis on fundamental concepts rather than implementation. After CPSC 323.  QR
HTBA

CPSC 424b, Parallel Programming TechniquesStaff

Practical introduction to parallel programming, emphasizing techniques and algorithms suitable for scientific and engineering computations. Aspects of processor and machine architecture. Techniques such as multithreading, message passing, and data parallel computing using graphics processing units. Performance measurement, tuning, and debugging of parallel programs. Parallel file systems and I/O. Prerequisite: CPSC 323, or CPSC 223 and significant experience with C/C++ programming in another science, social science or engineering discipline, or permission of instructor.  QRRP
HTBA

[ CPSC 426, Building Distributed Systems ]

CPSC 427b, Object-Oriented ProgrammingJames Glenn

Object-oriented programming as a means to efficient, reliable, modular, reusable code. Use of classes, derivation, templates, name-hiding, exceptions, polymorphic functions, and other features of C++. After CPSC 223.  QR
HTBA

CPSC 428b, Language-Based SecurityZhong Shao

Basic design and implementation of language-based approaches for increasing the security and reliability of systems software. Topics include proof-carrying code, certifying compilation, typed assembly languages, runtime checking and monitoring, high-confidence embedded systems and drivers, and language support for verification of safety and liveness properties. After CPSC 202, 323, and MATH 222, or equivalents.  QR
HTBA

[ CPSC 430, Formal Semantics ]

CPSC 431a / MUSI 428a, Computer Music: Algorithmic and Heuristic CompositionScott Petersen

Study of the theoretical and practical fundamentals of computer-generated music, with a focus on high-level representations of music, algorithmic and heuristic composition, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language. Ability to read music is assumed. After CPSC 202 and 223.  QR
HTBA

CPSC 432b / MUSI 427b, Computer Music: Sound Representation and SynthesisScott Petersen

Study of the theoretical and practical fundamentals of computer-generated music, with a focus on low-level sound representation, acoustics and sound synthesis, scales and tuning systems, and programming languages for computer music generation. Theoretical concepts are supplemented with pragmatic issues expressed in a high-level programming language. Ability to read music is assumed. After CPSC 202 and 223.  QR
HTBA

CPSC 433a, Computer NetworksYang Yang

Computer Science (B.A. or B.S.)

Price on request