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.
3 preparatory courses required*, including:
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.
Principles of programming, algorithmic and procedural problem solving. Program design and development, software testing. Classes, abstract data types, linked lists, stacks, and queues.
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.
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.
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.
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.
Computer system infrastructure, implementation, and design. Topics include computer organization, resource allocation and scheduling, and memory. Development of C++ programs using dynamic memory.
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.
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.