Course Descriptions

CIS 118 Introduction to Computer Science (4 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 and structured programming with C/C++; data types, variables, expressions, selection and repetition structures, functions passing by value and reference, recursion, all about arrays, file input and output(I/O), error handling, and classes. This course gives students basic computer science concepts and skills.

CIS 122 Introduction to Programming: Python (3 units)

Designed to teach computer programming with an introduction to Python Programming in interesting, relevant, and practical contexts. Focus is on hands-on Python programming skills, problem-solving using algorithmic thinking, abstraction, implementing an algorithm to executable code, debugging and testing software programs. Fundamental programming constructs such as variables, data types, selection, iteration, functions, data structures, file I/O, OOP and other core concepts are covered. Applications focus on computational techniques to understand data analysis, basic encryption algorithms, matrix manipulation, sorting and searching algorithms, basic game design, and more.

CIS 242 Computer Architecture and Assembly Language (3 units)

Covers the basics of integrated circuit technology, digital logic gates and circuit design, computer organization and industry standard computer architecture (ISA), microcode, number systems and data representation, machine languages, assembly languages and programming, operating systems, high-level languages and programming, and the application abstraction levels.

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

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

CIS 252 Introduction to 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.

CIS 262 Discrete Mathematics for Computer Science (3 units)

Covers topics in discrete mathematics with emphasis on computer science applications. Includes algorithms, Master’s theorem, base and number representation, logic, sets and category theory, relations, functions, induction, recursion, Boolean algebra and digital circuits, combinatorics, Pascal's Identity, permutations and combinations, counting, probability, Bayes' Theorem, Statistics, algebraic structures, Binomial theorem, directed and undirected graphs, elementary number theory, discrete probability, proof techniques, induction, pigeonhole principle, sequences, Fibonacci numbers and computational complexity.

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

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

CIS 286 Introduction to Data Structures - Java (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, n-trees, binary trees, hash tables, dictionaries, sets and graphs using JAVA. Standard methods are used for sorting, searching. analyzing the relative efficiency of algorithms (Big-O notation) and recursion. This course conforms to the ACM CS2 standards.

CIS 294 Introduction to Object Oriented Programming: Swift (3 units)

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

CIS 295 Introduction to Cloud Computing (3 units)

An introduction to Amazon Web Services (AWS) and cloud computing, which shift information systems from physical infrastructure to the internet. Explains how to evaluate business and technical benefits of AWS and cloud computing and cloud applications. Includes an analysis of storage, servers, and software applications, as well as a discussion of job opportunities.

CIS 296 Database Essentials in the Cloud (3 units)

Amazon Web Services (AWS) and cloud database management, which support multiple data storage options. Definitions, operations, and scaling of SQL (Structured Query Language) and noSQL data storage. Considers factors to balance and design data storage. Principles are applied by performing exercises using both relational and non-relational database approaches.

CIS 297 Amazon Web Services (AWS) and Cloud Compute Engines (3 units)

Explore how Amazon Web Services (AWS) and other cloud computing systems are built using a common set of core technologies, algorithms, and design principles centered around distributed systems. Students use various cloud platforms to provision, load-balance and scale their applications. The course discusses, from a developer perspective, the most important reasons for using Amazon Web Services (AWS) and other cloud computing services and examines the underlying design principles of scalable cloud applications.

CIS 298 Amazon Web Services (AWS) and Cloud Security (3 units)

Protection of the confidentiality, integrity and availability of computing systems and data. Uses of redundant and layered controls, continuous validation and testing, and automation to ensure that the Amazon Web Services (AWS) and cloud infrastructures are continuously monitored and protected. Examination of shared responsibility models.

CIS 321 iPhone Programming: Swift (3 units)

Introduction to programming the iPhone or iPad. Introduction to programming concepts, variables, assignments, selection, repetition, functions, object-oriented classes with their outlets and actions, Swift syntax, CocoaTouch environment, XCode IDE and the iPhone SDK to write original GUI programs for the iPhone, iPod Touch or iPad.

CIS 695 Independent Study (0.5- 3 units)

Designed for students who are interested in furthering their knowledge via self-paced, individualized instruction provided in selected areas or directed study 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.