Merritt Computer Science Logo

We are the Community College based Computer Science and Cybersecurity program that provides training from top industry experts for Bay Area residents of all ages and backgrounds who want to learn the most up-to-date knowledge and skills required to build a sustainable career in Computer Science and Cybersecurity.

We train you for a career that is professionally satisfying and financially rewarding so you can make the world a better and safer place.

Diversity makes us stronger. The most effective solutions are unique and surprising. The people best suited to meet them have non-traditional backgrounds and profiles.

Our Courses and Specialties

The Associate in Science in Computer Science is a Career Technical Education (CTE) and Transfer degree that enables the student to join the software development workforce at the entry level. It includes instruction in the design of software and the implementation of software designs. It incorporates study in Mathematics and Physics to enable the student to design models of systems that often cannot be directly measured and observed. This enables the creation of algorithms; an unambiguous specification of how to solve a class of problems. It also includes instruction in implementation (coding) of software designs using a strongly typed programming language. These two distinct skill sets form the basis for successful software development in the work force as well as continued study in Computer Science, Computer Engineering, and related fields.

Workforce Skills for the Software Developer

Graduates of this program will have the main competencies to develop software as part of a team, for their own business, or for purposes of investigation and invention. They will be able to:

  1. Select the appropriate design and implementation to solve a problem within given constraints.
  2. Analyze computer architecture to formulate estimates of performance.
  3. Explain the fundamentals of a problem-solving approach and analysis.

These competences enable the student to create or interpret software designs, discuss design choices, align their efforts with project goals, and estimate how well the program will perform in the intended computer system. These core workforce competencies are supplemented by restricted electives which prepare the graduate for different sectors of the software development workforce; for example Mobile Applications versus Web Applications. These electives enable graduates to compete for positions in which knowledge of the elective subject matter commands a salary premium.

Start your Baccalaureate here and Save Money

Complete Your First 2 Years at Merritt, Transfer as a Junior

Graduates of this program will have also completed preparation to transfer to a baccalaureate program in the Computer Science major, or related fields of study. They will have completed instruction in the subjects found in the lower division courses of a Computer Science baccalaureate:

  1. Writing programs in an object oriented language. (CIS 007)
  2. The Implementation and use of abstract data types, libraries, and frameworks. (CIS 033)
  3. Formal logic, proofs, estimation of algorithm completion, estimates of run time magnitude. (CIS 011)
  4. Machine architecture, assembly language, combinatorial logic, and sequential logic (CIS 078)
  5. Calculus 1 – Including: Differential Equations, Limits, Theorems. (MATH 3A)
  6. Calculus 2 – Including: Definite integrals, Methods of integration, series, parametric equations. (MATH 3B)
  7. Physics -  Topics including: Motion, forces, gravity, energy, momentum, equilibrium, oscillations. (PHYS 4A)

These courses are transfer courses and are part of an internationally recognized program permitting the graduate to work in software development anywhere in the world!

Sequence of the Computer Science Major Courses

This is a high-unit program where the courses follow a prescribe sequence. Each one relies on skills gained in the pre-requisite and you are advised to begin in the fall semester.

1. CIS 007 Control Structures and Objects - year 1 Fall

Introduction to computer programming: Algorithm design through use of control structures, flow charting, and debugging; elements of good programming style; introduction to Object Oriented Programming (OOP) through the design and implementation of objects that interact using well-defined interfaces to solve a problem; course may be instructed in any object-oriented programming language such as C++, Java, or Python; first in a sequence of contextualized STEM Core computer science curriculum for High Performance Computing (HPC).


STUDENT PERFORMANCE OBJECTIVES (EXIT SKILLS)

Students will be able to:
1. Design and implement computer programs using abstract data types, loops, classes, methods or functions.
2. Design and implement computer programs using objects, inheritance, polymorphism in addition to control structures.
3. Write documentation explaining their code and chosen implementation

 

2. CIS 033 Software Architectures and Algorithms - year 1 Spring


Design and development of large programs: Systematic data abstraction, strongly typed data and data structures, object declaration models, inheritance and polymorphism, information hiding, managed frameworks and libraries such as the Standard Template Library (STL), object life cycles and garbage collection, recursion, well-defined algorithms, collections and iterator abstraction, strategies for code re-use, testing, UML and software engineering principles.


STUDENT PERFORMANCE OBJECTIVES (EXIT SKILLS)

1. Describe object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism
2. Design, implement, test, and debug simple programs in an object-oriented programming language
3. Write a program using relationships among objects object inheritance and class hierarchy
4. Describe how iterators access the elements of a container.

 

3. CIS 011 Discrete Structures and Logic - year 2 Fall


Discrete structures used in Computer Science with an emphasis on their applications: Functions, relations and sets; basic logic; proof techniques; basics of counting; graphs and trees; and discrete probability. Not open for credit to students who have completed or are currently enrolled in MATH 11.


STUDENT PERFORMANCE OBJECTIVES (EXIT SKILLS)
  1. Describe object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism
  2. Design, implement, test, and debug simple programs in an object-oriented programming language
  3. Write a program using relationships among objects object inheritance and class hierarchy
  4. Describe how iterators access the elements of a container.

 

4. CIS 078 Digital Architectures for Computation - year 2 Spring


Organization of digital circuits and computing architectures: Fundamentals of digital circuits, combinational logic and sequential logic; processor components and processing architectures such as Von Neumann and Harvard architecture; control unit instruction word decoding and Instruction Level Parallelism (ILP); high level, assembly, and machine code; memory addressing modes, performance, and memory models; Random Access Model (RAM) and Candidate Type Architecture (CTA); analysis of single threaded code.


STUDENT PERFORMANCE OBJECTIVES (EXIT SKILLS)

1. Identify the components in a system that perform computation and categorize the architecture.
2. Describe the components of a computer instruction and explain the resulting state and contents of memory and registers.
3. Write simple assembly language program segments
4. Write programs that use high-level programming constructs using assembly language
5. Design simple sequential and/or combinational logic circuits using transition diagrams, state tables and basic logic components.