University of Vermont

Department of Computer Science


Term: Spring 2016

Subject: Computer Science

CS 008 - Intro to Web Site Development

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 - 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. Credit not given for both CS 016 and CS 020/ENGR 020.

CS 021 - Computer Programming I

Introduction to algorithmic problem solving. Designed to provide a foundation for further studies in computer science. Prerequisites: MATH 010 or a strong background in secondary school algebra and trigonometry.

CS 064 - 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. Co-requisites: One semester of programming, MATH 020 or MATH 022.

CS 095 - Special Topics

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

CS 100 - Object-Oriented Programming

Object-oriented software analysis, design, and programming using a modern object-oriented programming environment. Topics include encapsulation, information hiding, inheritance, and polymorphism. Prerequisite: CS 026 or CS 110.

CS 110 - Intermediate Programming

Intermediate programming concepts including common data structures, algorithms, style, design, documentation, testing and debugging techniques, and an introduction to object-oriented programming. Prerequisites: One of CS 016, CS 020, CS 021 or equivalent.

CS 121 - 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 026 or CS 110. No credit for both CS 101 and CS 121.

CS 124 - Data Structures & 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 026 or CS 110, CS 064 or MATH 052 or MATH 054. No credit for both CS 104 and CS 124.

CS 125 - Computability and 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 - 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 205 - 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. Students who receive credit for CS 205 may not receive credit for CS 208 or CS 209. Prerequisite: CS 104 or CS 124. Cross-listed with: CSYS 205.

CS 206 - 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 - Computer Architecture

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

CS 224 - 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. CS 125 and one course in probability (e.g. STAT 143, STAT 151 or CS 128) recommended.

CS 256 - Neural Computation

Introduction to artificial neural networks, their computational capabilities and limitations, and the algorithms used to train them. Statistical capacity, convergence theorems, backpropagation, reinforcement learning, generalization. Prerequisites: MATH 122 or MATH 124 or MATH 271; STAT 143 or STAT 153 or equivalent; CS 110. Cross-listed with: STAT 256, CSYS 256.

CS 265 - Computer Networks

Introduction to the theoretical and pragmatic principles and practices of computer networking. Topics include: local area networks; the Internet; network and world-wide-web application programming. Prerequisites: CS 026 or CS 110, CS 101 or CS 121, and STAT 153 or equivalent.

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 332 - Data Mining

Analytical and empirical techniques for analysis of large volumes of data. Topics include association analysis, classification, clustering, pattern discovery in sequential data, and Bayesian networks. Prerequisites: STAT 153 or equivalent; CS 251 recommended.

CS 392 - Master's Project

Prerequisite: Department permission.