University of Vermont

2012-2013 Catalogue

Courses in Computer Science

CS 002 - MS Office: Beyond the Basics
Word documents looking dull? Excel charts lacking something? PowerPoint slides fizzling? All this and more is covered. Learn more than just the basics.
Credits: 3.
CS 003 - Concepts of Computer Systems
Introduction to computer systems, components, system software, editors, utilities and language processors, programming, problem solving, applications. May not be taken for credit concurrently with, or following receipt of credit for, any CS course numbered higher than CS 003. Prerequisite: Two years high school algebra.
Credits: 3.
CS 005 - Introductory Special Topics
Prerequisite: Instructor permission. Hours variable. May not be taken for credit after any Computer Science course numbered CS 016 or higher.
Credits: 0-3.
CS 008 - Introduction: WWW Design (2-2)
Provides a strong foundation in HTML, working with images, beginning JavaScript programming, and web design so that the student can create a functional web site.
Credits: 3.
CS 014 - Visual Basic Programming
Introduction to Microsoft's rapid development environment. Create playful and relevant Windows applications.
Credits: 3.
CS 016 - Prog MATLAB Engineers&Science
Problem solving, computer programming, and the use of standard numerical methods, visualization and systems thinking in the context of engineering and scientific applications using MATLAB. Prerequisite: Concurrent enrollment in MATH 020 or MATH 022. Credit not given for both CS 016 and CS 020.
Credits: 4.
CS 019 - Introduction to Programming
A gentle, graphical introduction to computer programming. Pre/co-requisite: No credit after CS 021 or higher.
Credits: 3.
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.
Credits: 3.
CS 021 - Computer Programming I
provide a foundation for further studies in computer science. Prerequisites: MATH 010 or a strong background in secondary school algebra and trigonometry. Introduction to algorithmic problem solving. Designed to
Credits: 3.
CS 031 - C Programming
Introduction to C programming for those already familiar with another programming language. Variable types, pointers, memory allocation, input/output, math, time, and other library calls. Prerequisites: One of CS 016, CS 020, CS 021 or equivalent.
Credits: 1-3.
CS 032 - Puzzles, Games & Algorithms
Introductory computer science through exploration and analysis of mathematical puzzles and games, and the algorithms that handle them.
Credits: 3.
CS 042 - Dynamic Data on the Web
Data is everywhere; Learn to collect, organize, and classify it. Students will design and create tables, queries and reports on the web using introductory programming.
Credits: 3.
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.
Credits: 3.
CS 095 - Special Topics
See Schedule of Courses for specific titles. Prerequisite: Instructor permission.
Credits: 1-4.
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.
Credits: 3.
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.
Credits: 4.
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.
Credits: 3.
CS 123 - Programming Languages
Systematic treatment of principles underlying the features and implementation of programming languages. Contrast of traditional procedural languages and at least one nontraditional language. Prerequisites: CS 026 or CS 110; CS 064 or MATH 052 or MATH 054. No credit for both CS 103 and CS 123.
Credits: 3.
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 both CS 104 and CS 124. MATH 052 or MATH 054. No credit for
Credits: 3.
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.
Credits: 3.
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.
Credits: 3.
CS 148 - Database Design for the Web
Design and implementation of a relational database model using SQL and PHP. Typical project includes creation of ecommerce shopping site. Prerequisite: CS 008 or above.
Credits: 3.
CS 189 - CS for Geospatial Technologies
Introductory course providing hands-on experience with activities involving programming languages, platforms, and technologies in use by the GIS programmer/developer. Prerequisite: One course in GIS (CE 010, GEOG 081, or NR 143) or one in computer programming.
Credits: 3.
CS 192 - Independent Service & Teaching
Independently designed project or pedagogical experience that benefits the University or the Community under the direction of a CS faculty member. Requires final presentation. Pre/co-requisite: Department permission.
Credits: 1-3.
CS 195 - Special Topics
See Schedule of Courses for specific titles. Prerequisite: Instructor permission.
Credits: 1-9.
CS 201 - Operating Systems
Supervisory and control software for multiprogrammed computer systems. Processes synchronization, interprocess communication, scheduling, memory management, resource allocation, performance evaluation, object-oriented systems, case studies. Prerequisites: CS 101 or CS 121; CS 104 or CS 124.
Credits: 3.
CS 202 - Compiler Construction
Practice in design and implementation of translators for ALGOL-like languages. Regular and context-free grammars, parsing, code generation for stack and register machines. Interpreters. Run-time storage administration for block-structured languages. Prerequisites: CS 103 or CS 123; CS 243.
Credits: 3.
CS 204 - Database Systems
Techniques for processing very large collections of data. Secondary storage. Database design and management. Query languages and optimization. Database recovery. Prerequisite: CS 104 or CS 124.
Credits: 3.
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.
Credits: 3.
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.
Credits: 3.
CS 208 - Software Requirements&Design
Project management, requirements for software products, design methodologies and formal and informal notations describing designs. Includes developing requirements and design for a substantial software product. Credit not awarded for more than one of CS 205 and CS 208. Prerequisite: CS 104 or CS 124.
Credits: 3.
CS 209 - Software Implement&Verificat'n
Covers advanced program development methodologies, software performance measuring and tuning and the verification and validation of software. Includes a significant implementation and evaluation project. Credit not awarded for more than one of CS 205 and CS 209. Prerequisite: CS 104 or CS 124.
Credits: 3.
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.
Credits: 3.
CS 224 - Algorithm Design & Analysis
Comprehensive analysis of common algorithmic paradigms including greedy algorithms, divide and conquer, dynamic programming, graph algorithms, and approximation algorithms. Complexity hierarchies. Prerequisites: CS 104 or 124, MATH 173 recommended
Credits: 3.
CS 228 - Human-Computer Interaction
The design, implementation and evaluation of user interfaces for computers and other complex, electronic equipment. Includes a significant project. Pre/co-requisites: Programming experience and Junior standing or Instructor permission.
Credits: 3.
CS 231 - Programming for Bioinformatics
Instructor permission. Cross-listed with: MMG 231. Introductory course on computing (including scripting, database, and statistical analysis) for developing bioinformatics applications. Particular emphasis is given to comparative genomics and systems biology scenarios. Prerequisites: STAT 151, STAT 153 or
Credits: 3.
CS 232 - Methods in Bioinformatics
This course provides a methodological survey of bioinformatics. Particular emphasis is given to algorithms associated with sequence analysis, comparative genomics, structural biology, and systems biology. Prerequisites: STAT 151, STAT 153, or Instructor permission. Cross-listed with: MMG 232.
Credits: 3.
CS 243 - Theory of Computation
Introduction to theoretical foundations of computer science. Models of computation. Church's thesis and noncomputable problems. Formal languages and automata. Syntax and semantics. Prerequisite: CS 104 or 124. (Same as Math 243).
Credits: 3.
CS 251 - Artificial Intelligence
Introduction to methods for realizing intelligent behavior in computers. Knowledge representation, planning, and learning. Selected applications such as natural language understanding and vision. Prerequisites: CS 103 or CS 123; CS 104 or CS 124; STAT 153 or equivalent. Cross-listed with: CSYS 251.
Credits: 3.
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 124 or MATH 271; STAT 153 or equivalent; computer programming. Cross-listed with: STAT 256, CSYS 256.
Credits: 3.
CS 260 - Parallel Computing
Taxonomy of parallel computers, basic concepts for parallel computing, effectiveness and scalability, parallel algorithms for variety of problems, distributed memory Prerequisite: CS 104 or CS 124, or Instructor permission. and shared memory paradigms.
Credits: 3.
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.
Credits: 3.
CS 266 - Network Security&Cryptography
Security and secrecy in a networked environment. Cryptography: public and private key. Authentication: trusted agents, tickets. Electronic mail and digital signatures. Privacy and national security. Prerequisite: CS 104 or CS 124.
Credits: 3.
CS 274 - Computer Graphics
Graphical representation of two- and three-dimensional objects on color raster displays. Line generation, region filling, geometric transformations, hidden line and surface removal, rendering techniques. Prerequisite: CS 104 or CS 124, MATH 124 or MATH 271, recommended.
Credits: 3.
CS 276 - Integrative Computing
Integrative computing principles and practices: Abstraction via APIs, distributed systems orchestration, security, application design and implementation. Team projects for mobile and other networked, embedded devices. Prerequisites: Senior standing in Computer Science or Instructor permission.
Credits: 3.
CS 283 - Undergraduate Honors Thesis
See description of Honors Thesis Program in the College of EM section of this catalog.
Credits: 3.
CS 284 - Undergraduate Honors Thesis
See description of Honors Thesis Program in the College of EM section of this catalog.
Credits: 3.
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.
Credits: 1.
CS 294 - Independent Readings&Research
Independent readings and investigation under the direction of faculty member. Prerequisite: Department permission.
Credits: 1-6.
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.
Credits: 1-18.
CS 296 - Special Topic:Computer Science
See Schedule of Courses for specific titles. Subject will vary from year to year. May be repeated for credit.
Credits: 1-12.
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.
Credits: 3.
CS 303 - Adv Top:Prog Environ&Language
Object-oriented, functional, or procedural programming languages, language design, parsing, translation, compilation, interpretation, programming and runtime environments. May be repeated for credit with Instructor permission.
Credits: 3.
CS 316 - Adv Topi:Computational Science
Topics chosen from engineering and scientific applications, visualization, large-scale data analysis. May be repeated for credit with instructor permission. Prerequisite: Varies by semester. Instructor permission required.
Credits: 3.
CS 321 - Adv Top:Computer Architecture
Topics from computer architecture, network architecture, array and vector processors, memory hierarchies. May be repeated for credit with Instructor permission. Prerequisite: CS 222.
Credits: 3.
CS 331 - Adv Tpcs Database&Knwldg Sys
Topics chosen from database design, knowledge based systems, object-oriented and relational systems, data models, knowledge representation. May be repeated for credit with Instructor permission. Prerequisite: CS 204, CS 224.
Credits: 3.
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.
Credits: 3.
CS 346 - Adv Top:Theory of Computation
Topics from complexity theory, analysis of algorithms, formal languages, combinatorial and geometric algorithms, and theory of databases, networks, distributed algorithms. May be repeated with Instructor permission. Prerequisite: CS 224, CS 243.
Credits: 3.
CS 351 - Pattern Anyl&Artificial Intell
Topics chosen from pattern analysis, clustering, neural networks, planning, natural language understanding. May be repeated for credit with instructor permission. Prerequisites: CS 224, CS 351.
Credits: 3.
CS 352 - Evolutionary Computation
Theory and practice of biologically-inspired search strategies, including genetic algorithms, genetic programming, and evolution strategies. Applications include optimization, parameter estimation, and model identification. Significant project. Students from multiple disciplines encouraged. Pre/co-requisites: Familiarity with programming, probability, and statistics. Cross-listed with: BIOL 352, CSYS 352.
Credits: 3.
CS 355 - Statistical Pattern Recogntn
Analysis of algorithms used for feature selection, density estimation, and pattern classification, including Bayes classifiers, maximum likelihood, nearest neighbors, kernels, discriminants, neural networks, and clustering. Prerequisite: STAT 241 or STAT 251 or Instructor permission. Cross-listed with: STAT 355, CSYS 355.
Credits: 3.
CS 361 - Adv Topics:Systems Software
Topics chosen from operating systems, distributed or parallel software systems, real-time systems, experimental systems, software engineering. May be repeated for credit with Instructor permission. Prerequisite: CS 201, CS 222.
Credits: 3.
CS 363 - Computer System Performance
Topics chosen from models of computer and operating system performance and queuing systems. May be repeated for credit with Instructor permission. Prerequisite: CS 201, STAT 151.
Credits: 3.
CS 365 - Adv Top:Network Design&Anyl
Topics chosen from network design, network protocols, network algorithms, and network performance. May be repeated for credit with Instructor permission. Prerequisite: CS 224, CS 265.
Credits: 3.
CS 374 - Computer Graphic&Visualization
Topics chosen from computer graphics and visualization, such as rendering, hidden surface removal, animation, data visualization. May be repeated for credit with Instructor permission. Prerequisite: CS 224, CS 274.
Credits: 3.
CS 381 - Seminar
Presentations by students, faculty, and guest speakers on advanced topics in Computer Science. May be repeated up to three times for credit.
Credits: 1.
CS 391 - Master's Thesis Research
Credits: 1-18.
CS 392 - Master's Project
Prerequisite: Department permission.
Credits: 1-6.
CS 394 - Independent Study
Independent readings and investigation under the direction of a faculty member. Prerequisite: Instructor permission.
Credits: 1-6.
CS 395 - Special Topics
Subject will vary from year to year. May be repeated for credit. Prerequisite: Instructor permission.
Credits: 1-6.
CS 491 - Doctoral Dissertation Research
Credit as arranged.
Credits: 1-18.

[Location]

Contact UVM © 2014 The University of Vermont - Burlington, VT 05405 - (802) 656-3131