University of Vermont

UVM Course Directory

Term: Fall 2019

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 050 - Seminar for New CS Majors

A fun and accessible breadth-first introduction to the CS community and curricula at UVM. CS faculty serve as guest lecturers to introduce new CS majors to selected topics covered in upper division UVM CS electives. Prerequisites: Computer Science or Computer Science & Information Systems majors who have not yet completed CS 110. Co-requisite: CS 021 or CS 110.

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 or CS 110; MATH 021 or MATH 023.

CS 087 - QR: Intro to Data Science

Basic techniques of data harvesting and cleaning; association rules, classification and clustering; analyze, manipulate, and visualize data using programming languages. Basic principles of probability and statistical modeling/inference to make meaning out of large datasets. Cross-listed with: STAT 087.

CS 091 - Instructing in Computer Sci

Assist in instruction of undergraduate computer science courses under the direct supervision of a faculty member. Duties may include grading, office hours, laboratory and/or recitation instruction, or other related activities. Instructor permission required. 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 124.

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 with a grade of C- or better; CS 064 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 148 - QR: Database Design for Web

Design and implementation of a relational database model using SQL and PHP. Typical project includes creation of ecommerce shopping site. Prerequisites: CS 008; CS 020 or CS 021.

CS 166 - QR: Cybersecurity Principles

Introduction to cybersecurity, fundamental security design principles, programming flaws, malicious code, web and database security, cryptography algorithms and hashing functions; overview of computer networks and common network threat vectors. No credit if taken after CS 266. Prerequisites: CS 008, CS 021.

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 198 - Independent Study

A course which is tailored to fit the interests of a specific student, which occurs outside the traditional classroom/laboratory setting under the supervision of a faculty member, for which credit is awarded. Offered at department discretion.

CS 201 - QR: 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 121 and CS 124.

CS 204 - QR: Database Systems

Techniques for processing very large collections of data. Secondary storage. Database design and management. Query languages and optimization. Database recovery. Prerequisite: CS 124.

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 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 228 - QR: 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.

CS 237 - QR:Intro to Numerical Analysis

Error analysis, root-finding, interpolation, least squares, quadrature, linear equations, numerical solution of ordinary differential equations. Prerequisites: Math 121; MATH 122 or MATH 124 or MATH 271; CS 020 or CS 021. Cross-listed with: MATH 237.

CS 254 - QR: Machine Learning

Introduction to machine learning algorithms, theory, and implementation, including supervised and unsupervised learning; topics typically include linear and logistic regression, learning theory, support vector machines, decision trees, backpropagation artificial neural networks, and an introduction to deep learning. Prerequisites: STAT 151 or STAT 251; MATH 122 or MATH 124.

CS 265 - QR: Computer Networks

Introduction to the theoretical and pragmatic principles and practices of computer networking. Topics include: the Internet; wired and wireless communications protocols; network security protocols. Prerequisites: CS 110; CS 121.

CS 266 - QR:Network Secrty&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 124.

CS 275 - QR:Mobile App Development I

A projects-based course focusing on software development for mobile devices, including the concepts of event-driven programming, GUI design and implementation, utilization of hardware sensors, and client/server applications. Prerequisite: CS 120, Senior standing. Pre/co-requisites: Recommended: CS 148 or CS 204.

CS 283 - Undergraduate Honors Thesis

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

CS 287 - QR: Data Science I

Data harvesting, cleaning, and summarizing. Working with non-traditional, non-numeric data (social network, natural language textual data, etc.). Scientific visualization using static and interactive "infographics." A practical focus on real datasets, and developing good habits for rigorous and reproducible computational science. Prerequisites: CS 020 or CS 021; STAT 141 or STAT 143 or STAT 211. Pre/co-requisites: Recommended: CS 110; Math 122 or Math 124. Cross-listed with: STAT 287.

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 293 - Computing Career Preparation

Seminar to help students develop necessary skills for becoming computing professionals and exposes them to different computing careers. Topics include job search strategies, preparation for technical interviews, networking, and developing soft skills. Several guest lectures by computing professionals and alumni. Prerequisite: CS 124.

CS 294 - 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 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 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.

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.

CS 392 - Master's Project

Prerequisite: Department permission.