MSACS Core Courses

Required courses, to be taken by everyone admitted to the program, including five core courses (15 credit hours). Core courses build upon the knowledge support courses or appropriate experience.

CSC 705: Design and Analysis Computer Algorithms

Credits

3 Credit Hours

Description

Design and analysis of algorithms to determine their time and space requirements. The study of efficient algorithms for various computational problems. Analysis of specific algorithms for internal sorting, hashing, and string search. Sorting manipulation of data structures, graphs, matrix multiplication, the Fast Fourier Transform, arithmetical operations and pattern matching. Study and implication of advanced topics on lists, stacks, trees, sets and dynamic allocation.

Prerequisite

CSC 300.

CSC 710: Structure and Design Programming Languages

Credits

3 Credit Hours

Description

Evolution of concepts in programming languages. Data and control abstraction. Run-time effects of binding, scope and extent; structure of ALGOL-like and interpretive languages. Data types, problem areas and implementation models. Control structures, exception handling, concurrency. Functional programming. Examples from representative languages.

Prerequisite

CSC 300.

CSC 714: Database Systems

Credits

3 Credit Hours

Description

Emphasis will be placed on database theory and will cover, transaction management, processing, correctness, recoverability, serializability, concurrency control, security, distributed databases and optimization.  Emerging topics in databases will also be addressed such as Massively Large Datasets, Unstructured Data, NOSQL, etc. Assumes working knowledge of SQL and the Relational Model.

CSC 718: Operating Systems & Parallel Programming

Credits

3 Credit Hours

Description

This course provides a graduate-level introduction to parallel and distributed systems and introduces fundamentals of shared and distributed memory programming to provide hands-on experience of parallel computing. The course will explore algorithms and techniques for programming shared-memory (e.g., multicores) and distributed-memory (e.g., clusters) computer systems. The course will include both theoretical and programming components.  Includes the study of parallel computer architecture, memory, and I/O. Also, parallel computer algorithms to include shared and distributed memory, parallel computation models, graph algorithms, and numerical algorithms.

CSC 720: Theory of Computation

Credits

3 Credit Hours

Description

Formal models of computation. Recursive function theory, computable functions, decidable and enumerable sets, unsolvable programs, correctness of programs, undecidability and incompleteness and complexity of computation.

Prerequisite

CSC 300.

 

Last Updated: 7/21/14