The Master of Science in Computer Science program is a 30-semester hour program.
Each graduate course is 3 semester hours. The following is a sample study plan:
|Required Fundamental Courses - Semester Hours: 9|
|CSC 204||Algorithm Design and Analysis|
|CSC 252||Programming Language Concepts|
|CSC 256||Advanced Operating Systems Design|
|ELECTIVES - Semester Hours: 18|
|CSC 207||Advanced Data Structures|
|CSC 288||Network Security|
|CSC 254||Database Design|
|CSC 285||Mobile Information Device Programming|
|CSC 251||Software Project Management|
|CSC 259||Concurrent and Parallel Programming|
|Required Capstone Experience - Semester Hours: 3|
|CSC 303||Capstone Experience|
|Requires the permission of department, and completion of 21 credit hours.|
Required Fundamental Courses - Semester Hours: 9
CSC 204 - Algorithm Design and Analysis....3 credits
Review of algorithm basics (Big-Oh, Big-Theta and Big-Omega notation), algorithms for searching, sorting (Mergesort, Quicksort, Heap Sort), median order statistic, hashing, priority queues, red-black trees, AVL trees, dynamic programming, amortized analysis, graph algorithms for shortest path problems, minimum spanning tree, min-cut and max-flow problems and NP completeness.
CSC 252 - Programming Language Concepts....3 credits
The theory, evolution and practice of high-level programming languages. The comparative analysis of modern language such as ML, PERL, C++ and Java. The impact of advanced programming methods such as higher-order functional programming, object-oriented design patterns and aspect-oriented programming.
CSC 256 - Advanced Operating Systems Design....3 credits
Analytical models of operating systems. An examination of the major models that have been used to study operating systems and the computer systems which they manage. Petri nets, dataflow diagrams and other models of parallel behavior are studied. Introduction to the fundamentals of queuing theory.
Electives - Semester Hours: 18
CSC 207 - Advanced Data Structures....3 credits
Managing multiple stacks and queues. Stack series. Permutations obtainable from stacks and queues. Concatenatable queues. Locating repeated substrings: an application of stacks. Stack and queue operation sequences. Set representation methods. The union-find algorithm. Trees: Robson traversal, Lindstrom scanning, Siklossy traversal. Generalized lists. Mergeable heaps. Files as a data structure. Storage compaction. Garbage collection.
CSC 288 - Network Security....3 credits
This course addresses networking from a security perspective. Topics include: overview of Internet protocols and architecture; the security perspective; goals of security such as confidentiality, integrity, and availability; attacks such as Denial of Service (DOS), viruses, worms, and Trojan horses; blended threats; detection and prevention; attack signatures; covert channels; firewalls, intrusion detection, and anti-virus techniques; use of cryptography techniques for authentication and communication; standard security protocols such as the Secure IP Protocol (IPsec), Secure Sockets Layer (SSL), Public Key Infrastructure (PKI); threats such as internal vs. external, structured vs. unstructured, hostile vs. non-hostile.
CSC 254 - Database Design....3 credits
Study of database design and modeling; the relational model; relational algebra and calculus; normal forms; SQL query language; database application development; transaction processing; storage and indexing principles.
CSC 285 - Mobile Information Device Programming....3 credits
This course covers the development of applications for network-enabled mobile devices. Topics include: cell phones, personal digital assistants (PDAs) and other small computational devices, their strengths and limitations; configurations and profiles; overview of programming mobile devices; standard and custom user interface elements and events; networking; record stores and persistence; text and multimedia messaging; drawing and animation using game application program interfaces (APIs) and 3D APIs; audio and video APIs; comparison of current technologies.
CSC 251 – Software Project Management....3 credits
This course will explore the concepts of software project management and financial accounting within a project. The course will cover what is project management, how to develop a project plan , track progress against a plan, staffing, measurements, organization in developing plans, project initiation, scope, proposals, scheduling, costs, risks, control, project leadership, team building and conflict resolution. Scheduling diagrams for PERT, Critical Path Method and resource constraints will be covered. Reporting progress on a weekly basis will be demonstrated and utilized A set of scenarios will be setup to show how to develop the plan, expand it, estimate costs and track project schedules and budgets. Use of a project management tool will be demonstrated and students will acquire mastery of the tool over the course duration.
CSC 259 - Concurrent and Parallel Programming....3 credits
This course will consist of two halves. The first half will introduce students to concurrency from both a theoretical and hands-on perspective. Topics include Hoare CSP, Pi-calculus, asynchronous communication and distributed synchronization. The second half of the course will focus on high-speed parallel computing. Topics include scientific applications on a Beowulf cluster. A large part of the course will be project-oriented and requires the learning of several modern APIs such as Java RMI and the Message Passing Interface.
Required Capstone Experience - Semester Hours: 3
CSC 303 – Capstone Experience....3 credits
Requires the permission of department, and completion of 21 credit hours.