Courses

View courses in

  • CAS CS 451: Distributed Systems
    Programming-centric introduction to how networks of computers are structured to operate as coherent single systems. Introducing principles of architecture, processes, communications, naming, synchronization, consistency and replication, fault tolerance and security, and paradigms such as web-based, object-based, file system, and consistency-based.
  • CAS CS 455: Computer Networks
    Concepts underlying the design of high-performance computer networks and scalable protocols. Topics include Internet design principles and methodology, TCP/IP implementation, packet switching and routing algorithms, multicast, quality of service considerations, error detection and correction, and performance evaluation.
  • CAS CS 460: Introduction to Database Systems
    Introduction to database management systems. Examines entity-relationship, relational, and object-oriented data models; commercial query languages: SQL, relational algebra, relational calculus, and QBE; file organization, indexing and hashing, query optimization, transaction processing, concurrency control and recovery,integrity, and security.
  • CAS CS 480: Introduction to Computer Graphics
    Introduction to computer graphics algorithms, programming methods, and applications. Focus on fundamentals of two- and three-dimensional raster graphics: scan-conversion, clipping, geometric transformations, and camera modeling. Introduces concepts in computational geometry, computer-human interfaces, animation, and visual realism.
  • CAS CS 491: Directed Study
    Independent study in Computer Science under the guidance of a faculty member. Student and supervising faculty member arrange and document expectations and requirements. Examples include internship opportunities for academic credit, in-depth study of a special topic, or independent research project.
  • CAS CS 492: Directed Study
    Independent study in Computer Science under the guidance of a faculty member. Student and supervising faculty member arrange and document expectations and requirements. Examples include internship opportunities for academic credit, in-depth study of a special topic, or independent research project.
  • CAS CS 504: Data Mechanics
    Examines how data moves and informs decisions within large systems. Applies mathematically rigorous tools and methods for data collection, retrieval, integration, and interpretation. Uses relational and MapReduce paradigms to assemble analysis, optimization, and decision-making algorithms to track and scale data.
  • CAS CS 506: Computational Tools for Data Science
    Covers practical skills in working with data and introduces a wide range of techniques that are commonly used in the analysis of data, such as clustering, classification, regression, and network analysis. Emphasizes hands-on application of methods via programming.
  • CAS CS 507: Introduction to Optimization in Computing and Machine Learning
    Convex optimization algorithms and their applications to efficiently solving fundamental computational problems. Intended audience is advanced undergraduates and master students. Topics include modeling using mathematical programs, gradient descent algorithms, linear programming, Lagrangian duality, basics of complexity theory for optimization.
  • CAS CS 511: Formal Methods 1
    Introduction to formal specification, analysis, and verification of computer system behavior. Topics include formal logical reasoning about computer programs and systems, automated and semi-automated verification, and algorithmic methodologies for ascertaining that a software system satisfies its formally specified properties. Cannot be taken for credit in addition to the course with the same number formerly entitled "Object-Oriented Software Principles."
  • CAS CS 512: Formal Methods 2
    Introduction to formal specification, analysis, and verification of computer system behavior. Topics include formal logical reasoning about computer programs and systems, automated and semi-automated verification, and algorithmic methodologies for ascertaining that a computing system satisfies its formally specified properties.
  • CAS CS 520: Programming Languages
    Concepts of programming languages: data, storage, control, and definition structures; concurrent and distributed programming; functional and logic programming.
  • CAS CS 530: Advanced Algorithms
    Studies the design and efficiency of algorithms in several areas of computer science. Topics are chosen from graph algorithms, sorting and searching, NP-complete problems, pattern matching, parallel algorithms, and dynamic programming.
  • CAS CS 531: Advanced Optimization Algorithms
    Optimization algorithms, highlighting the fruitful interactions between discrete and continuous. Intended audience is advanced master students and doctoral students. Topics include gradient descent algorithms, online optimization, linear and semidefinite programming, duality, network optimization, submodular optimization, approximation algorithms via continuous relaxations.
  • CAS CS 533: Spectral Methods for Machine Learning and Network Analysis
    Spectral algorithms and their applications to efficiently solving fundamental computational problems in the analysis of networks and high-dimensional data. Topics include spectral graph theory, random walks over networks and their convergence, spectral clustering, subspace projections and embeddings, numerical algorithms.
  • CAS CS 535: Complexity Theory
    Covers topics of current interest in the theory of computation chosen from computational models, games and hierarchies of problems, abstract complexity theory, informational complexity theory, time-space trade-offs, probabilistic computation, and recent work on particular combinatorial problems.
  • CAS CS 537: Randomness in Computing
    Survey of probabilistic ideas of the theory of computation. Topics may include Monte Carlo and Las Vegas probabilistic computations; average case complexity and analysis; random and pseudorandom strings; games and cryptographic protocol; information; inductive inference; reliability;others. (Offered alternate years.)
  • CAS CS 538: Fundamentals of Cryptography
    Basic Algorithms to guarantee confidentiality and authenticity of data. Definitions and proofs of security for practical constructions. Topics include perfectly secure encryption, pseudorandom generators, RSA and Elgamal encryption, Diffie-Hellman key agreement, RSA signatures, secret sharing, block and stream ciphers.
  • CAS CS 542: Machine Learning
    Prerequisites: Programming (CASCS112 or equivalent), Linear Algebra (CASCS132 or equivalent), Probability (CASCS237 or equivalent), and single-variable calculus (MA 123-124 or equivalent); multi-variable calculus (MA 225 or equivalent) is highly recommended. Introduction to modern machine learning concepts, techniques, and algorithms. Topics include regression, kernels, support vector machines, feature selection, boosting, clustering, hidden Markov models, and Bayesian networks. Programming assignments emphasize taking theory into practice, through applications on real-world data sets.
  • CAS CS 548: Advanced Cryptography
    Continuation of CAS CS 538. Advanced techniques to preserve confidentiality and authenticity against active attacks, zero-knowledge proofs; Fiat-Shamir signature schemes; non-malleable public-key encryption; authenticated symmetric encryption; secure multiparty protocols for tasks ranging from Byzantine agreement to mental poker to threshold cryptography.

Back to full list of College of Arts & Sciences