Term: Fall 2016
Subject: Computer Science
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.
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.
Introduction to algorithmic problem solving and computer programming. Designed to provide a foundation for further studies in computer science.
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. Prerequisite: CS 020 or CS 021.
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.
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 021.
See Schedule of Courses for specific titles. Prerequisite: Instructor permission.
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.
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.
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.
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.
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.
Design and implementation of a relational database model using SQL and PHP. Typical project includes creation of ecommerce shopping site. Prerequisites: CS 008 and CS 021.
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.
Techniques for processing very large collections of data. Secondary storage. Database design and management. Query languages and optimization. Database recovery. Prerequisite: CS 124.
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.
Reducibility and decidability, recursion theory, time and space complexity, P, NP, NP-completeness, PSPACE, PSPACE-completeness, L and NL, advanced topics in computability and complexity. Prerequisites: CS 124 and CS 125.
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. Prerequisites: CS 104 or CS 124; MATH 122 or MATH 124 or MATH 271 recommended.
A projects-based course focused on applications development on wireless and embedded platforms, including iOS, Arduino, and Linux-based devices. Emphasis on C programming and cyber-physical systems software. Prerequisite: CS 124. Pre/Co-requisites: Recommended: CS 148 or CS 204.
See description of Honors Thesis Program in the College of EM section of this catalog.
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.
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.
See Schedule of Courses for specific titles. Subject will vary from year to year. May be repeated for credit with instructor permission.
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.
Prerequisite: Department permission.
Credit as arranged.