Skip available courses

Available courses

  • This course presents theories and practices in Human-Computer Interaction that allow development of user interfaces that are fit for the purposes of their diverse users in a variety of contexts. It informs students how to gather user requirements, create prototypes, and conduct evaluations to verify the design.
    Self enrolment: Human-Computer Interaction
  • Logic in Computer Science
    Guest access: Logic in CSSelf enrolment: Logic in CS
  • This quarter the topics will focus on modern SAT solvers
    (SAT meaning propositional satisfiability) and QBF solvers.
    (QBF stands for quantified boolean formula.)
    Applications will be studied according to student interests.
    Guest access: CMPS 290A Topics in Algorithms and Complexity TheorySelf enrolment: CMPS 290A Topics in Algorithms and Complexity Theory
  • Analysis of Algorithms is a required graduate class for CS and CE, at least.
    Guest access: Analysis of AlgorithmsSelf enrolment: Analysis of Algorithms
  • Introductory programming for students who have no prior programming experience. Students learn programming and documentation skills as well as algorithmic problem-solving and programming methodologies. Introduces computers, compilers, and editors. Students write medium-sized programs. This course and courses 5J and 5P cover the same material, but use different programming languages. (Formerly course 60N.) (General Education Code(s): IN, MF - Mathematical and Formal Reasoning)
    Self enrolment: Introduction to Programming in C/C++
  • Cloud computing is rapidly changing how people and organizations deal with large data sets. Some prominent examples of this sea change are the widespread adoption of map/reduce for data analytics on massive data sets, the proliferation of vendors that offer elastic storage and database services (e.g., Amazon's S3 and SimpleDB services), and the numerous research and commercial projects that develop database systems running ``in the cloud''. The course will cover the leading research efforts in this arena with an emphasis on systems. The material is mostly based on published research papers, but it will also include white papers of industrial systems. Enrolled students will be expected to give in-class presentations of research papers, and also to complete a project relevant to the topic of the course.
    Guest access: CMPS 290H -- Data Management in the CloudSelf enrolment: CMPS 290H -- Data Management in the Cloud
  • Graduate level analysis of algorithms
    Self enrolment: CMPS 201 Spring 2010 - Analysis of Algorithms
  • Course Description
    Concepts, approaches, tools, and methodology of database design. Topics include the entity-relationship model; the relational data model; normal forms; commercial languages such as SQL (SQL constraints, SQL triggers, and update languages); query-by-example (QBE); XML data model, and XML query language (XQuery); as well as relational database-management support for XML and object-relational features in database-management systems. Involves a database -application development project.
    Prerequisite(s): course 12B. Course intended for non-majors; computer science majors should enroll in course 180.
  • CS203 is designed to acquaint graduate students with basic ideas behind modern programming language design, including the study of operational and axiomatic semantics and type systems.

    In addition to the topics studies in class, students will have the opportunity to consider other related topics of interest in the form of a course project.
    Guest access: CMPS 203, Winter 2010: Programming LanguagesSelf enrolment: CMPS 203, Winter 2010: Programming Languages
  • *Primary Topic:*

    How is all this technology we invent any good for anything. Poverty,

    liberty, peace, environment? Seriously, why would we want to learn

    about whatever it is we're learning? Ideally we'll cover a range of topics.

    In practice I have read most in poverty reduction, this sub area is

    starting to get called ICTD. But we will try to be broader. Privacy, games,

    and assistive technologies are all things worked on by someone in SOE.

    We'll read lots of papers, watch videos, etc.. Everything from cel phone

    microscopes, rural kiosks, interfaces for the illiterate, to networking

    when you have no power. Ideally, we'll come away with a

    understanding of the current state of this emerging field, and an

    answer to how each of us could apply our primary research to this area

    if we were so inclined.

    Self enrolment: CS/DANM Computing for Social Issues/Participatory Culture
  • Introduction to the basics of computer programming using the Python programming language for engineering or science students who have no prior programming experience. Students learn programming and documentation skills, as well as algorithmic problem-solving and programming methodologies. Introduces students to computers, programming tools, and editors.
    Self enrolment: CMPS 5P, Fall 2009: Introduction to Programming in Python
  • This is an accelerated introduction to programming using the Java language
    Self enrolment: CMPS 12a, Introduction to Programming (Accelerated) Fall 2009
  • Introductory programming for students who have no prior programming experience. Students learn programming and documentation skills, as well as algorithmic problem-solving and programming methodologies. Introduces computers, compilers, and editors. Students write medium-sized programs. The two-quarter sequence courses 5J and 11 cover in two quarters the same material as the accelerated introductory course and lab 12 A/L cover in one quarter. (Formerly course 60G.)
    Self enrolment: CMPS 5J spring 2009,  Introduction to programming in Java
  • This course is an introduction to operating systems. Please see http://www.soe.ucsc.edu/courses/course?cmps111 for more information.
    Self enrolment: CMPS 111, Spring 2009: Introduction to Operating Systems

  • Course description:

    Covers issues in the design, implementation, analysis, and specification of programming languages. Topics include formal semantics (including operational, axiomatic, and denotational semantics), advanced type systems, program analysis (including abstract interpretation and model checking), specification, and verification.


    Prerequisites: CMPS203 Programming Languages, or a similarly semantics-oriented course in programming languages.

    Guest access: CMPS 253: Advanced Programming LanguagesSelf enrolment: CMPS 253: Advanced Programming Languages
  • Introductory programming for School of Engineering majors who have no prior programming experience. Students learn programming and documentation skills, as well as algorithmic problem-solving and programming methodologies. Introduces computers, compilers, and editors. Students write medium-sized programs. The two-quarter sequence courses 5J and 11 cover in two quarters the same material as the accelerated introductory course and lab 12 A/L cover in one quarter.
    Guest access: CMPS 5J, Winter 2010, Introduction to Programming in JavaSelf enrolment: CMPS 5J, Winter 2010, Introduction to Programming in Java
  • CS203 is designed to acquaint graduate students with basic ideas behind modern programming language design, including the study of operational and axiomatic semantics and type systems.

    In addition to the topics studies in class, students will have the opportunity to consider other related topics of interest in the form of a course project.
    Self enrolment: CMPS 203, Winter 2009: Programming Languages
  • This is the lab course that accompanies CMPS 12A.
    Guest access: CMPS 12L, Winter 2009: Programming LaboratorySelf enrolment: CMPS 12L, Winter 2009: Programming Laboratory
  • This course is designed primarily for SoE majors who have had some prior programming experience. The course focuses on the Java language. Topics include classes and methods, arrays, recursion, and inheritance.
    Guest access: CMPS 12A, Winter 2009: Introduction to Programming  (Accelerated)Self enrolment: CMPS 12A, Winter 2009: Introduction to Programming  (Accelerated)
  • Introduction to programming for engineering or science students who have no prior programming experience. Students learn programming and documentation skills, as well as algorithmic problem-solving and programming methodologies. Introduces students to computers, programming tools, and editors. Students write medium-sized programs to solve web-based and scientific problems. This course and course 5J cover largely the same material, but use different programming languages.
    Guest access: CMPS 5P, Fall 2008: Intro to Programming in Python