Computer Science Summer Courses


    Introduction to Programming (Accelerated) (5 credits)

  • CMPS 12A

    Session 1

    Accelerated introduction to programming. Students write medium-sized programs. Topics include: functions; conditionals and loops; classes; event-driven programming and graphic user interfaces (GUIs); recursion; and arrays. Students who have no or very limited programming experience should consider courses 5J and 11 which cover the same material in two quarters. Students may not receive credit for both this course and course 11. Some prior programming experience in a language such as C, C++, Java, or C# strongly recommended. Prerequisite(s): Mathematics 3 or 11A or 19A or Applied Mathematics and Statistics 3 or Applied Mathematics and Statistics/Economics 11A, or a score of 400 or higher on the mathematics placement examination (MPE). Concurrent enrollment in 12L required. 

    Proposed Instructor: Evan Olds

    See in Schedule of Classes 


  • Introduction to Data Structures (5 credits)

  • CMPS 12B

    8-Week

    Teaches students to implement common data structures and the algorithms associated with each data structure, through progressively difficult exercises. Topics include big "O" notation; pointers, recursion (induction), and dynamic allocation; linked lists and list processing; stacks, queues, binary trees and binary search trees; simple sorting techniques and simple search techniques. Students will gain a working knowledge of the elements of the Java and C programming languages. Prior experience with Unix is assumed. Prerequisite(s): course 11 or 12A or Computer Engineering 13. Concurrent enrollment in course 12M is required. (General Education Code(s): MF.) 

    Visiting students, contact the instructor, Patrick Tantalo at ptantalo@ucsc.edu to petition for enrollment. Include proof of prerequisite material.

    Proposed Instructor: Patrick Tantalo

    See in Schedule of Classes 


  • Computer Programming Laboratory (2 credits)

  • CMPS 12L

    Session 1

    Laboratory sequence complementing topics taught in course 12A by providing training and exposure to several software development tools and practices not covered in course 12A. In addition, the lab provides an initial exposure to a second programming language to reinforce concepts from course 12A. Prerequisite(s): Concurrent enrollment in course 12A is required.

    Proposed Instructor: Muhammad Saber

    See in Schedule of Classes 


  • Data Structures Laboratory (2 credits)

  • CMPS 12M

    8-Week 

    Complements course 12B, gaining additional competence with a number of important software development tools, languages, and techniques. Included are advanced Unix features and utilities such as grep, find, diff, the shell, and pipes; C programs utilizing I/O, arrays, pointers, and structures; a scripting language to perform simple text and file manipulation; and the make utility. Concurrent enrollment in course 12B is required. 

    Visiting students, contact the instructor, Muhammad Saber at mtsaber@ucsc.edu to petition for enrollment. Include proof of prerequisite material.

    Proposed Instructor: Muhammad Saber

    See in Schedule of Classes 


  • Algorithms and Abstract Data Types (5 credits)

  • CMPS 101

    8-Week

    Studies basic algorithms and their relationships to common abstract data types. Covers the notions of abstract data types and the distinction between an abstract data type and an implementation of that data type. The complexity analysis of common algorithms using asymptotic (big "O") notation is emphasized. Topics include sorting and searching techniques, basic graph algorithms, and algorithm design techniques. Abstract data types covered include priority queues, dictionaries, disjoint sets, heaps, balanced trees, and hashing. Familiarity with C, Java, and Unix is assumed. Prerequisite(s): course 12B or 13H; CMPE 16 or 16H; MATH 11B or 19B or 20B; and one course from the following: MATH 21, 22, 23A, AMS 10, or AMS 131. 

    Visiting students, contact the instructor, Patrick Tantalo at ptantalo@ucsc.edu to petition for enrollment. Include proof of prerequisite material.

    Proposed Instructor: Patrick Tantalo

    See in Schedule of Classes 


  • Advanced Programming (5 credits)

  • CMPS 109

    8-Week

    An introduction to object-oriented techniques of software development including data abstraction, inheritance, polymorphism, and object-oriented design. Extensive practice using a computer to solve problems, including construction of graphical user interfaces and a multithreaded client/server applications. Prerequisite(s): course 12B/M or 13H. 

    Visiting students, contact the instructor, Wesley Mackey at wmackey@ucsc.edu to petition for enrollment. Include proof of prerequisite material.

    Proposed Instructor: Wesley Mackey

    See in Schedule of Classes 


  • Introduction to Software Engineering (5 credits)

  • CMPS 115-01

    Session 1

    Emphasizes the characteristics of well-engineered software systems. Topics include requirements analysis and specification, design, programming, verification and validation, maintenance, and project management. Practical and research methods are studied. Imparts an understanding of the steps used to effectively develop computer software. (Formerly Software Methodology.) Prerequisite(s): satisfaction of the Entry Level Writing and Composition requirements and course 101.

    Proposed Instructor: Richard Jullig

    See in Schedule of Classes 


  • Introduction to Software Engineering (5 credits)

  • CMPS 115-02

    Session 1

    Emphasizes the characteristics of well-engineered software systems. Topics include requirements analysis and specification, design, programming, verification and validation, maintenance, and project management. Practical and research methods are studied. Imparts an understanding of the steps used to effectively develop computer software. (Formerly Software Methodology.) Prerequisite(s): satisfaction of the Entry Level Writing and Composition requirements and course 101.

    Proposed Instructor: Richard Jullig

    See in Schedule of Classes 


  • Artificial Intelligence (5 credits)

  • CMPS 140-01

    Session 1

    Introduction to the contemporary concepts and techniques of artificial intelligence, including any or all of: machine perception and inference, machine learning, optimization problems, computational methods and models of search, game playing and theorem proving. Emphasis may be on any formal method of perceiving, learning, reasoning, and problem solving which proves to be effective. This includes both symbolic and neural network approaches to artificial intelligence. Issues discussed include symbolic versus nonsymbolic methods, local versus global methods, hierarchical organization and control, and brain modeling versus engineering approaches. Lisp or Prolog may be introduced. Involves one major project or regular programming assignments. Prerequisite(s): course 101

    Proposed Instructor: Narges Norouzi

    See in Schedule of Classes 


  • Artificial Intelligence (5 credits)

  • CMPS 140-02

    Session 1

    Introduction to the contemporary concepts and techniques of artificial intelligence, including any or all of: machine perception and inference, machine learning, optimization problems, computational methods and models of search, game playing and theorem proving. Emphasis may be on any formal method of perceiving, learning, reasoning, and problem solving which proves to be effective. This includes both symbolic and neural network approaches to artificial intelligence. Issues discussed include symbolic versus nonsymbolic methods, local versus global methods, hierarchical organization and control, and brain modeling versus engineering approaches. Lisp or Prolog may be introduced. Involves one major project or regular programming assignments. Prerequisite(s): course 101

    Proposed Instructor: Narges Norouzi

    See in Schedule of Classes