Graduate Certificate in Computer Science Fundamentals

The Graduate Certificate in Computer Science Fundamentals is designed for those without a computer science degree, who want to prepare to enroll in a computer science master's degree program. With satisfactory completion of the certificate, no GRE is required for admittance to the Master of Science in Computer Science program at SU.

Application Deadlines:

  • Early Decision: February 20th
  • Regular Decision: May 20th

Apply Now!

Preparatory Course

3 preparatory courses required*, including:

CPSC 5001: Programming Boot Camp I

Basic principles of programming, algorithmic and procedural problem solving, program design and development. Basic data types, expressions, control structures, functions, arrays, and searching. No prior programming experience assumed.

CPSC 5002: Programming Boot Camp II

Principles of programming, algorithmic and procedural problem solving. Program design and development, software testing. Classes, abstract data types, linked lists, stacks, and queues.

CPSC 5003: Programming Boot Camp III

Principles of programming, algorithmic and procedural problem solving. Recursion, data structures, and run-time analysis using big-O notation.


*Students may be waived from one or more of these preparatory courses if they have prior equivalent coursework.

Required Courses

CPSC 5011: Object-Oriented Concepts

Introduction to principles and techniques of object-oriented development. In-depth understanding of object-oriented concepts, including abstractions, encapsulation, inheritance, subtypes, subclasses, polymorphism and support for re-use.

CPSC 5021: Database Systems

This course presents the fundamental concepts of database design and applications. Topics include database design, entity-relationship (ER) model, standard query language (SQL), transactions, triggers. Design and development of applications using databases.

CPSC 5031: Data Structures And Algorithms

Basic strategies of algorithm design: top-down design, divide and conquer, average and worst-case complexity, asymptotic costs, simple recurrence relations. Choice of appropriate data structures such as arrays, stacks, queues, trees, heaps, graphs, has tables, etc. Applications to sorting and searching. Introduction to discrete optimization algorithm: dynamic programming, greedy algorithms.

CPSC 5041: Computing Systems Principles I

Computer system infrastructure, implementation, and design. Topics include computer organization, resource allocation and scheduling, and memory. Development of C++ programs using dynamic memory.

CPSC 5042: Computing Systems Principles II

Computer system infrastructure, implementation, and design. Topics include concurrency, synchronization, reliability, input/output, networking, and security. Development of multithreaded concurrent programs and client-server networking programs.

CPSC 5051: Fundamentals Of Software Engineering

Introduction to software engineering principles, methods, techniques and technology for design, development, and management of large and complex software systems. Emphasis will be on software development life cycle activities, including requirements engineering, architecture and design, construction, testing, deployment and maintenance. Students will be introduced to software evolution, measurement and evaluation, teamwork, and project management.


Admission online through Graduate Admissions office.