University of Vermont

UVM Course Directory

Term: Spring 2018

Subject: Computer Science

CS 006 - Exploring Cybersecurity

Fundamental concepts and tools utilized by cybersecurity professionals to assess and detect software and network vulnerabilities; best practices in physical and data security through the use of appropriate risk management methodologies. No credit if taken after CS 166 or 266.

CS 008 - QR: Intro to Web Site Dev

Provides a strong foundation in HTML, CSS, images, beginning web programming, and web design so that the student can create a complete functional web site.

CS 020 - QR: Programming for Engineers

Introduction to computer programming principles using MATLAB, with applications chosen from civil, electrical, environmental, and mechanical engineering. Co-requisite: MATH 021. Cross-listed with: ENGR 020.

CS 021 - QR: Computer Programming I

Introduction to algorithmic problem solving and computer programming. Designed to provide a foundation for further studies in computer science.

CS 064 - QR: Discrete Structures

Introduction to analytic and formal methods of computer science with practical examples, including analysis or data structures, recursion relations, proof methods, and logic programming. Credit not given for more than one of CS 064, MATH 052 or MATH 054. Prerequisites: CS 020 or CS 021; MATH 020 or MATH 021 or MATH 023.

CS 095 - Special Topics

See Schedule of Courses for specific titles. Prerequisite: Instructor permission.

CS 110 - QR: Intermediate Programming

Intermediate programming concepts including common data structures, algorithms, style, design, documentation, testing and debugging techniques, and an introduction to object-oriented programming. Prerequisite: One of CS 020 or CS 021 with a grade of C- or better.

CS 120 - QR: Advanced Programming

Build programming maturity and proficiency through significant projects with spiral development, including program specification, design, implementation, debugging, testing, validation, internal and external documentation. Focus on advanced topics including efficiency, profiling, modularity, extensibility, programming paradigms, design patterns, memory management, and generics. Prerequisite: CS 110 with a grade of C- or better.

CS 121 - QR: Computer Organization

Introduction to computer system organization including performance, assembly language, machine-level data representation, arithmetic for computers, processor datapath control, memory, and input/output. Prerequisite: CS 110.

CS 124 - QR: Data Struc & Algorithms

Design and implementation of linear structures, trees and graphs. Examples of common algorithmic paradigms. Theoretical and empirical complexity analysis. Sorting, searching, and basic graph algorithms. Prerequisites: CS 110; CS 064 or or MATH 052.

CS 125 - QR: Computability& Complexity

Formal languages and expressiveness. Turing completeness and Church's Thesis. Decidability and tractability. Complexity classes and theory of NP completeness. Prerequisites: CS 064 or MATH 052. Co-requisite: CS 124.

CS 142 - QR: Advanced Web Design

Advanced web site design, including structure, architecture, compliance, CSS, usability, etc., to help create a pleasing user experience. Prerequisite: CS 008.

CS 167 - Cybersecurity Defense

Cyber defense policy, privacy, ethics; network threat defense, intrusion detection systems, intro to penetration testing, OS security principles, system/network admin, cloud, mobile and IoT security; overview of security planning, management and incident response. No credit if taken after CS 266. Prerequisite: CS 166 or CS 266.

CS 190 - Internship

On-site supervised work experience combined with a structured academic learning plan directed by a faculty member or a faculty-staff team in which a faculty member is the instructor of record, for which academic credit is awarded. Offered at department discretion.

CS 192 - Service Learning in CS

Service learning experience that benefits the University or the Community under the direction of a CS faculty member. Prerequisite: Instructor permission.

CS 196 - Undergraduate Research

Undergraduate student work on individual or small team research projects under the supervision of a faculty member, for which credit is awarded. Offered at department discretion.

CS 205 - QR: Software Engineering

Treatment of software engineering problems and principles, including documentation, information hiding, and module interface specification syntax and semantics. Requires participation in a team project. Prerequisite: CS 124.

CS 206 - QR: Evolutionary Robotics

Exploration of the automated design of autonomous machines using evolutionary algorithms. Coursework involves reading of research papers, programming assignments and a final project. Prerequisites: Junior standing and programming experience, or Instructor permission.

CS 222 - QR: Computer Architecture

Architecture of computing systems. Control unit logic, input/output processors and devices, asynchronous processing, concurrency, parallelism, and memory hierarchies. Prerequisite: CS 121.

CS 224 - QR:Algorithm Design & Analysis

Comprehensive study of algorithms including greedy algorithms, divide and conquer, dynamic programming, graph algorithms and network flow. Computational intractability. Approximation, local search and randomization. Prerequisite: CS 124. Pre/co-requisites: Recommended: CS 125; STAT 143, STAT 151, or CS 128.

CS 225 - QR: Programming Languages

The principles of programming language design and fundamental implementation concepts. Syntax, semantics, and static program analysis for various paradigms. Programming language metatheory, including confluence and type safety. Stack-based implementation and memory management issues. Prerequisites: CS 124, CS 125.

CS 284 - Undergraduate Honors Thesis

See description of Honors Thesis Program in the College of EM section of this catalog.

CS 292 - Senior Seminar

Oral presentations that pertain to the ethical practice of computer science in government, industry, and academia. Topics may include computer security, copyright, and patent law. Prerequisite: Senior standing in Computer Science.

CS 295 - Special Topic:Computer Science

See Schedule of Courses for specific titles. Subject will vary from year to year. May be repeated for credit with instructor permission.

CS 302 - Modeling Complex Systems

Integrative breadth-first introduction to computational methods for modeling complex systems;numerical methods, cellular automata, agent-based computing, game theory, genetic algorithms, artificial neural networks, and complex networks. Pre/co-requisites: Computer programming in any language, calculus. (Linear algebra recommended). Cross-listed with: CSYS 302.

CS 387 - Data Science II

Advanced data analysis, collection, and filtering. Statistical modeling, monte carlo statistical methods, and in particular Bayesian data analysis, including necessary probabilistic background material. A practical focus on real datasets and developing good habits for rigorous and reproducible computational science. Prerequisite: STAT 287 or Instructor permission. Cross-listed with: STAT 387.

CS 392 - Master's Project

Prerequisite: Department permission.

CS 395 - Special Topics

Subject will vary from year to year. May be repeated for credit with Instructor permission.