Online Computer Science Degree at Drexel University
Drexel Online.  A Better U.

Online Master of Science in Computer Science

DEADLINE ALERT!
Applications and all supplemental materials for the next term must be submitted by:

September 03, 2010
Sidebar Divider

ONLINE OPEN HOUSE!
Drexel University Online presents “The Complete Guide to Becoming a Drexel Online Student.” This online information session on August 4th will outline how to get started as a Drexel Online student. Click on any of the following times to register: Noon EST3 p.m. EST and 7 p.m. EST.


Drexel University Online is holding an Engineering Online Open House on August 12th. Click here to register...
 
NEWS AND UPDATES
 
Drs. Jeremy Johnson , professor and department head of computer science at CoE, and Spiros Mancordis, professor of computer science and director of software engineering BS and MS programs and the Software engineering Research Group at CoE, were recognized by the Association for Computer machinery (ACM) as recipients of the ACM senior member designation. Johnson wa also elected chair of ACM SIGSAM, ACM's special interest group in Symbloic and Algebraic manipulation. Johnson and a colleague co-organized a session on "High Performance Computer Alegebra" at the Applications of Computer Alegebra Conference in Montreal. He presented the paper "Using Maple and Maple TA in a course about Technical Computing" at the conference. The paper was co-authored with Drs. Bruce Char, professor of computer science at CoE, and David Augenblick, auxiliary professor of computer science at CoE.
 
Sidebar Divider

 

TUITION REDUCTION
Does your organization provide tuition benefits through Drexel University Online?

Sidebar Divider


Print | Email To A Friend | Share Share

Curriculum

The online computer science degree program consists of 45 credits (15 courses) and is organized in 10-week quarters. Students are required to take 6 core courses and 9 elective courses. Click here to view the pre-requisites for the MSCS program.

Pre-Core Courses - 6 credits*

CS 520

Foundations for Computer Science 

3 credits

CS 571

Programming Tools and Environments 

3 credits

*Students who meet all but a few of the program pre-requisites may be provisionally admitted and may be required to take one or both of the pre-core courses. If a student is required to take these courses for entry into the program, then the credits will count toward fulfillment of the electives.

Core Courses - 18 credits

CS 521

Data Structures and Algorithms I

3 credits

CS 522

Data Structures and Algorithms II

3 credits

CS 525

Theory of Computation

3 credits

CS 543

Operating Systems

3 credits

CS 550

Programming Languages

3 credits

CS 544

Computer Networks

3 credits

Elective Courses - 27 credits
Sample courses provided below

CS 500

Database Theory 

3 credits

CS 510

Introduction to Artificial Intelligence

3 credits

CS 530

Developing User Interfaces

3 credits

CS 575

Software Design

3 credits

CS 576

Dependable Software Systems

3 credits

CS 645

Network Security

3 credits

ECEC 500

Foundations of Computer Hardware

3 credits

ECEC 600

Fundamentals of Computer Networks

3 credits

Core Course Descriptions

CS 520 - Foundations for Computer Science 

Survey of basic mathematics concepts needed for the study of computer science at the graduate level: induction, iteration, recursion; analysis of program running time; elementary probability and combinatorics; relations, graphs and trees; regular expressions and finite automata; propositional and predicate logic.

Back to course list

CS 521 - Data Structures and Algorithms I 

Techniques for analyzing algorithms: asymptotic notation, recurrences, and correctness of algorithms; divide and conquer: quick sort, merger sort, median and order statistics; elementary data structures: hashing, binary heaps, binary search trees, balanced search trees; graph algorithms: Depth and Breadth first searches, connected components, minimum spanning trees, shortest paths in graphs.

Back to course list

CS 522 - Data Structures and Algorithms II 
(Prerequisite: CS 557 Minimum Grade: C) 

Discussion of algorithm design techniques, augmented data structures including Binomial and Fibonacci heaps and Splay tree; Amortized analysis of data structures, topics in pattern and string matching, network flow problem, matching in bipartite graphs, and topics in complexity theory including reduction and NP-completeness, and approximation algorithms.

Back to course list

CS 525 - Theory of Computation 
(Pre-Requisites: CS 521 Minimum Grade: C or CS 557 Minimum Grade:C) 

Theory of computation introduces basic mathematical models of computation and the finite representation of infinite objects. These topics covered in the course include: finite automata and regular languages, context free languages, Turning machines, Partial recursive functions, Church's Thesis, undecidability, reducibility and completeness, and time complexity.

Back to course list

CS 543 - Operating Systems 

Covers the classical internal algorithms and structures of operating systems, including CPU scheduling, memory management, and device management. Considers the unifying concept of the operating system as a collection of cooperating sequential processes. Covers topics including file systems, virtual memory, disk request scheduling, concurrent processes, deadlocks, security, and integrity.

Back to course list

CS 550 - Programming Languages 

Covers basic concepts of the design and implementation of programming languages, including data representation and types, functions, sequence control, environments, block structure, subroutines and coroutines, storage management. Emphasizes language features and implementation, not mastery of any particular languages.

Back to course list

CS 571 - Programming Tools and Environments 

Covers UNIX operating system, Shell programming, PERL, JAVA, and advanced features of C++ from the viewpoint of efficient software development.

Back to course list

CS 544 - Computer Networks 

Computer networks and computer communication; network topologies; local area networks and store-and-forward networks; circuit, message, and packet switching; CBX vs. LAN; network protocols and OSI reference model; performance analysis; and distributed systems. Includes case studies.

Back to course list

Sample Elective Course Descriptions

CS 500 - Database Theory I 

Introduces relational and knowledge base data models and contrasts the expressiveness of the two models. Covers semantics of knowledge bases, negation, dependencies, Armstrong's axioms, decompositions, and normal forms.

Back to course list

CS 510 - Introduction to Artificial Intelligence 

Well-formed problems; state spaces and search spaces; Lisp and functional programming; uniformed search; heuristic search; stochastic search; knowledge representation; propositional logic; first order logic; predicated calculus; planning; partial order planning; hierarchical planning.

Back to course list

CS 530 - Developing User Interfaces 

This course examines the implementation of multimodal user interfaces within the context of interface design and evaluation. The course involves both practice implementing interfaces using current technologies and study of topical issues such as rapid prototyping, advanced input, and assistive technology.

Back to course list

CS 575 - Software Design 

Introduces techniques and notations with formal (mathematical) underpinnings for specifying the structural and behavioral properties of software systems. Covers these systems at various levels of abstraction, from architecture to subsystem decompositions to module/class dependencies and interfaces. Students analyze, synthesize, and express software designs using a variety of special-purpose design notations, and obtain practical experience with a team project. Topics include software architecture, architectural styles, module interconnection languages, modularity and information hiding principles, object-oriented design patterns (structural and behavioral), Petri nets, state charts, state transition diagrams, and Z notation.

Back to course list

CS 576 - Dependable Software Systems 

Offers an in-depth treatment of software testing and software reliability, two components of developing dependable software systems. Testing topics include path testing, data-flow testing, mutation testing, program slicing, fault interjection and program perturbation, paths and path products, syntax testing, logic-based testing, testing within the software development process, test execution automation and test design automation tools. Reliability topics include reliability metrics, fault avoidance, cleanroom software development, fault tolerance, exception handling, N-version programming, recovery blocks, formal methods, functional specifications, and Z notation.

Back to course list

CS 645 - Network Security 
(Pre-Requisites: (CS 543 Minimum Grade: C or CS 720 Minimum Grade: C ) and (CS 544 Minimum Grade: C or CS 740 Minimum Grade: C )) 

The purpose of this course is to cover the principles and practice of cryptography and network security. The first half of the course covers cryptography and network security techniques. The second part deals with the practice of network security, i.e. with the processes and application that have to be in place to provide security.

Back to course list

ECEC 500 - Foundations of Computer Hardware 

Covers computer organization and architecture; elements of computer hardware, processors, control units, and memories; hardware for basic mathematical operations; tradeoffs between speed and complexity; examples of embedded systems; microcontrollers; systems modeling.

Back to course list

ECEC 600 - Fundamentals of Computer Networks 

Fundamentals design principles of ATM, Internet and local area networks; protocol layers and the Internet Architecture; medium access protocols; application protocols and TCP/IP utilities; basic prinicles and virtual circuit switching; naming and addressing; flow and congestion control protocols; routing algorithms; Quality-of-Service in computer networks; security issues in networks.

Back to course list