COMP 121 The Art of Coding: iOS App Development with Swift (3 units)

Introduction to computer hardware and the programming commands to control them. Topics Include: hardware, operating systems, and the Software Development Life Cycle which includes design, development, documentation, the importance of review, principles of testing and maintenance; Algorithm development, Procedural, Structural, and Event-driven programming; data types, variables, expressions, selection and repetition structures, functions passing by value and reference, recursion, all about arrays, file I/O, exception handling, and classes. Students will use the Swift programming language and Apple’s xCode development environment to design and test basic object-oriented, event-driven iOS apps for deployment on an iPhone or iPad. This course engages students in basic computer science concepts and skills necessary to move into and excel in computer science and engineering courses.

COMP 155 Computer Programming Visual Basic (3 units)

An introduction to computer programming using the high level language VISUAL BASIC. The course covers terminology and syntax, event-driven and object-oriented programming, how to solve problems starting with descriptions of the problem in English and translating the description into Visual Basic.

COMP 250 Introduction to Object-Oriented Programming: C++ (3 units)

Introduction to programming and software engineering for computer science and engineering majors and computer professionals. A systematic approach to the design, implementation, and management of robust C++ computer programs. Course emphasizes Object-Oriented programming design, programming documentation, testing and debugging techniques. This course conforms to the ACM CS1 standards.

COMP 251 Introduction to Microcontrollers with C/C++ (1 units)

Introduction to computer programming concepts and methodologies in C/C++ using microcontrollers to program computer circuits and hardware. Covers a microcontroller such as the Atmel AVR or Arduino single-board computer and circuits like LED displays and servo motor controllers. Teaches algorithms, data types, memory usages and management, files and streams, hardware interfaces, sensors, motors, basic control techniques, and microcontroller peripherals including timers, analog-to-digital conversion, interrupts, and serial communication.

COMP 252 Data Structures: C++ (3 units)

Design and implementation of larger projects using object-oriented software engineering principles with emphasis on definition and use of data structures including: arrays, stacks, queues, linked lists, trees, hash tables, dictionaries, sets and graphs. Standard methods are used for sorting, searching and analyzing the relative efficiency of algorithms (Big-O notation). This course conforms to the ACM CS2 standards.

COMP 256 Computer Architecture and Assembly Language (3 units)

Covers the basics of Integrated Circuit technology, digital logic gates and circuit design, computer organization and ISA standard computer architecture, microcode, number systems and data representation, machine languages, Assembly languages and programming, memory systems, addressing, Operating Systems, interrupt/exception handling, input/output processing, and the connection between high-level language, assembly language, and machine operation on a microprocessor system.

COMP 262 Discrete Mathematics for Computer Science (3 units)

Covers the fundamental mathematical elements of computer science including mathematical logic, sets, functions and relations, generating functions, combinatorics, methods of mathematical proof, basic number theory, algorithms, graphs, and trees.

COMP 284 Introduction to Object-Oriented Programming: Java (3 units)

Introduction to object-oriented computer programming for computer science majors and computer professionals. Emphasizes object-oriented design, good software engineering principles and developing fundamental programming skills in Java. This course conforms to the ACM CS1 standards.

COMP 286 Data Structures: Java (3 units)

Abstract data type implementation and usage techniques for computer science majors and computer professionals. Object-oriented approach to a variety of abstract data types including: lists, stacks, queues, priority queues, trees, maps and graphs. Also includes advanced sorting and searching topics, and algorithmic analysis using Big-O notation. This course conforms to the ACM CS2 standards.

COMP 665 Selected Topics in Computer Science (0.5- 2 units)

This course explores selected contemporary topics or themes in Computer Science. Example topics include new programming languages, operating systems, net-centric computing, problem-solving and program design methodologies, software engineering processes, graphical user-interface design, information management, and contemporary issues in Computer Science.

COMP 695 Independent Study in Computer Science (0.5- 3 units)

Designed for students who are interested in furthering their knowledge via self-paced, individualized, directed instruction provided in selected areas to be arranged with instructor and approved by the division dean using the Independent Study Form. Varying modes of instruction can be used -- laboratory, research, skill development, etc. For each unit earned, students are required to devote three hours per week throughout the semester. Students may take only one Independent Study course within a given discipline.