Computer Science Summer Courses


    Introduction to Programming in Java

  • CMPS 5J

    Session 1

    Introduces programming in Java 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 small to medium-sized programs. This course and courses 5C and 5P cover similar concepts, but use different programming languages. Because 5J followed by course 11 is a two-quarter alternative to the accelerated course 12A/L, engineering majors and students planning on continuing the programming sequence are encouraged to take 5J rather than 5C or 5P. Students may not receive credit for 5J taken concurrently or subsequently to course 12A, 12B, or Computer Engineering 13. (General Education Code(s): MF, IN.) 

    Instructor: Dustin Adams


  • Introduction To Programming In Python

  • CMPS 5P

    8-Week

    Introduces programming in Python, a high-level programming language used in the physical and social sciences and for Internet scripting. Students learn programming and documentation skills, as well as algorithmic problem-solving, coding, and debugging methodologies. Students write programs to solve sample problems drawn from a wide range of disciplines, primarily in the sciences. No prior programming experience is required, but a mathematics background at the pre-calculus level is assumed. This course and courses 5C and 5J cover similar concepts, but use different programming languages. Students may not receive credit for course 5P after receiving credit for course 11, 12A, or Computer Engineering 13. (General Education Code(s): IN, MF - Mathematical and Formal Reasoning)

    Instructor: Chris Schuster


  • Introduction to Data Structures

  • 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 required. (General Education Code(s): MF, IN.) 

    Instructor: Patrick Tantalo


  • 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 required.


  • Algorithms and Abstract Data Types

  • 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 19B, 20B or 11B; and one course from the following: MATH 21, 22, 23A, or AMS 10. 

    Instructor: Patrick Tantalo


  • Advanced Programming

  • 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.

    Instructor: Wesley Mackey


  • Introduction to Software Engineering

  • 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.

    Instructor: Richard Jullig


  • Introduction to Software Engineering

  • 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.

    Instructor: Richard Jullig