The computer science department of the Seidenberg School reviewed and revised the Master of Science in Computer Science in fall 2011. Since then, the department has been offering a 30-credit program that has been both strengthened and updated. The Computer Science Curriculum Committee, led by the computer science chair, reviews and updates the program’s curriculum each semester to ensure students are learning the most up-to-date and in-demand skills.

The new rigorous curriculum is built on a core of algorithms and computing theory, Internet and web computing, grid and cloud computing, and database systems. It offers students the flexibility of pursuing one or more focused, in-depth course sequences in cutting-edge areas like classical computer science, artificial intelligence, Internet computing, mobile computing, network security, and web security.

Whether you are looking to advance your career or change focus and keep ahead of the latest technologies, this online computer science master’s program will help you achieve your goals.


Graduate Program Curriculum — Total Credits: 30

Bridge Course

An entering student with limited or no previous background in the field of computer science or programming may be required to take a prerequisite bridge course. A student with a baccalaureate in computer science should be able to waive this prerequisite. The bridge course does NOT count toward the degree; however, grades earned are computed into the student’s QPA.

This course covers the fundamental concepts and methods of Object-Oriented problem-solving using Java as the programming language. The main topics include data modeling with primitive data types, single/multi-dimensional arrays, classes and packages; computation algorithm specification with expressions, assignments, conditional & loop statements, and methods; formatted data I/O on the console and through files; software reuse with class inheritance, interfaces and polymorphism; problem-solving with Java collection framework data types stack, queue, Vector and Ηashtable; basic sorting and searching algorithms; and basic graphic user interface programming based on event-driven programming.

Core Requirements (12 Credits)

This course includes the following: applications of abstraction and divide-and-conquer in computer science (hardware, software, theory), essential algorithms including searching, sorting, hashing and graphs; popular algorithms such as string machine, Map Reduce and RSA and their applications, complexity, computability, NP-hard problems, NP-complete problems, and undecided problems, and finite state automata vs. regular expressions.
This course focuses on the following: parallel computing theory, Parallel Random-Access Machines (PRAMs), Amdahl’s law for theoretical speedup limits, Petri Nets, parallel vs. distributed computing, speedup, fault-tolerance, resource-sharing, parallel architectures, data flow, instruction-level pipelining, embedded multicore systems, shared-memory multiprocessors, distributed-memory multicomputers, interconnection networks, distributed systems: client-server systems, cluster computing, computing grids, cloud computing, parallel and distributed programming with industry standard MPI (Message Passing Interface), and parallel algorithms.
This course focuses on the integrated hands-on coverage of fundamental concepts and technologies for enterprise and Internet computing. Topics include data storage, XML data specification, parsing and validation, data and language translation, networking and Web technology overview, software framework technology for controlling software system complexity, and a roadmap for the enterprise computing technologies.
This course includes the following topics: database management system installation and configuration, database’s role as a middleware in system hierarchy, Entity Relationship (E-R) model for logical design, schema normalization and performance tradeoffs, database management with SQL through database console, database programming through JDBC, event-processing with triggers, efficient data processing with stored-procedures, transactions management and ACID properties, database security, and crash recovery.

Concentration Options or Free Electives (9 Credits)

A student may choose to pursue a focused, in-depth concentration in a specific area consisting of a three course sequence for a total of nine credits. Academic advisers will help each student to select courses that have been approved by the department. Suggested concentrations include:

Artificial Intelligence

This course will provide an overview of topics such as an introduction to data mining and knowledge discovery; data mining with structured and unstructured data; foundations of pattern clustering; clustering paradigms; clustering for data mining; data mining using neural networks and genetic algorithms; fast discovery of association rules; applications of data mining to pattern classification; and feature selection. The goal of this course is to introduce students to current machine learning and related data mining methods. It is intended to provide enough background to allow students to apply machine learning and data mining techniques to learning problems in a variety of application areas.
This course focuses on theory and data structures and algorithms related to artificial intelligence and heuristic programming. Topics include description of cognitive processes, definition of heuristic vs. algorithmic methods, state space and problem reduction, search methods, theorem proving, natural language processing, and pattern recognition techniques.
This course introduces the student to computer vision algorithms, methods and concepts which will enable the student to implement computer vision systems with emphasis on visual pattern recognition. Upon successful completion of this course of study a student will have general knowledge of image analysis and processing, pattern recognition techniques, and some experience with research in computer vision. Topics to be studied: data structures for visual pattern representation, feature extraction, basis theory, decision trees, nearest neighbor, artificial neural networks, clustering, etc. Once students complete this course, they should be competent to conduct research in this area. Students will be required to critique a current paper from literature in this area, present it to the class, implement the presented algorithm and evaluate the strengths and shortcomings.

Internet Computing

This course is an introduction to .NET Web technologies through C# .NET for people with basic programming skills. Topics include object-oriented programming in C#, exception handling, delegate, multithreading, graphic user interface, Web Programming with ASP.NET, database programming with ADO.NET, Web services, and Microsoft Visual Studio .NET IDE.
This course introduces students to the techniques used to create web sites for basic and smart phones. Particular attention will be on gathering data about web traffic (e.g. visitors, visits, devices, operators, and locations) and analyzing the data to engage users and for business decision making. Content including social networking and privacy will be discussed in depth. The course also covers the development of mobile web applications using HTML5, CSS and AJAX for Android phones. The parallel with the iPhone will be made. User-centered design, testing, quality assurance and performance will be covered throughout the course. The course integrates comprehensive assignments and significant readings.
This course is an Internet and web technology overview. It includes the following: the tiered web architecture, web server set up and configuration, separating data structures and data presentation with cascading style sheets, JavaScript for client data validation and HTML document object model manipulation, Java software framework for servlet components, separating computation from data presentation with Java server pages, session data management and Java persistence service, computation abstraction with struts, server-side GUI abstraction/reuse and data validation with Java server faces, ajax for more interactive and smoother web interactions, and Web application security.

Mobile Computing

This course surveys the specificities of the development of native applications for different mobile platforms including phones and tablets. The software engineering of application development including user-centered design, testing and quality assurance will be emphasized. Students will learn how to design and develop applications for the Android platform. The following topics will be covered: user interface, events processing, services management, location based facilities, accelerometer and other sensors, networks/web access, and sound and multimedia. The parallel with iPhone development will be presented. The distribution of mobile applications and business models for monetization will be covered. A significant project is integrated in the course.
This course introduces students to the techniques used to create web sites for basic and smart phones. Particular attention will be placed on gathering data about web traffic (e.g. visitors, visits, devices, operators, and locations) and analyzing the data to engage the users and for business decision making. Content including social networking and privacy will be discussed in depth. The course also covers the development of mobile web applications using HTML5, CSS and AJAX for Android phones. The parallel with the iPhone will be made. User-centered design, testing, quality assurance and performance will be covered throughout the course. The course integrates comprehensive assignments and significant readings.
This course familiarizes students with the development of mobile innovations addressing social and global challenges in areas such as health, microfinance, education and civic activism. Students will be introduced to research in the social considerations in mobile application development, ICT4D (Information and Technology for Development), and M4D (Mobile for Development) through readings, class discussions and a series of talks. The Mobile Web, and SMS and Voice Solutions will be presented in that context. Students will leverage their technical knowledge with social insight, creativity and ingenuity to develop prototypes with social impact along with its deployment plan (taking into accounts the real world limitations) and a business model, with the guidance of local partners from NGOs and the industry, and successful social entrepreneurs.

Network Security

This course builds upon CS 633 to examine local area networks, Internetworking via the TCP/IP protocols, and the Internet. The OSI reference model and the TCP/IP protocols form the framework. Topics include: multi-access network strategies; basic traffic and capacity models; LAN standards and the evolution from shared access to switched and wireless Ethernet; LAN internetworking using bridges and routers; routing strategies and congestion in networks; the IP protocol; transport-layer issues and the TCP and UDP protocols; network security, Internet services and applications such as the Domain Name System, FTP, SMTP mail, and the HTTP protocol for the Web.
This course covers the most important issues and topics in the huge area of cryptography and computer security. Topics include: mathematics of cryptography, traditional symmetric-key ciphers, modern symmetric-key ciphers, DES, AES, asymmetric-key cryptography. RSA, rabin, elGamal and elliptic curve cryptosystems, message integrity and message authentication, cryptographic hash functions, digital signature, entity authentication and key management.
This course covers the most important issues and topics in the area of network security. A good balance between theory and practice is sought. It covers attacks and threats in computer networks, including network mapping, port scanning, sniffing. DoS, DDoS, reflection attacks, attacks in DNS and leveraging P2P deployments for attacks, and operational security, including firewalls and intrusion-detection systems. It also takes a layered approach to network security covering topics that include: security at the application layer: PGP and S/MIME, security at the transport layer: SSL and TLS, security at the network layer, and IPSec. Students will use software tools to participate in an important simulated lab component that includes packet sniffing, network mapping, firewalls, SSL and IPsec.

Computer Science Electives (3-12 Credits)

Students pursuing a nine-credit concentration may select one elective from any of the concentration courses outside of their individual concentration or from those listed below for a total of three credits.

Students who elect not to pursue an in-depth concentration may choose individual courses contained within the courses listed below for a total of 12 credits, provided the course prerequisite is met.

Independent study projects in special areas of computer science can be pursued by advanced students with a minimum QPA of 3.70 who, upon the submission of a detailed proposal, obtain permission of the instructor. No more than six credits of Independent Study may be taken.

Prerequisite: Permission of department chair is required.

This course is an introduction to the basic probability models, queuing theory, and simulation techniques used in the performance analysis and planning of computer networks and Internet systems. Topics include event probability, standard discrete and continuous probability distributions, the Poisson process, random number generation, discrete-event system modeling and simulation techniques, statistical estimation, and basic queuing models. The topics are illustrated with applications to current Internet-related systems.
This course focuses on the underlying the design of traditional and modern programming languages, language paradigms (imperative, object-oriented, functional, and logic), cross-language interoperability on the .NET and JVM platforms, semantics (operational and denotational), type systems (polymorphism, inference, and abstract types), garbage collection, multiprocessing, formal syntax of programming languages using BNF and EBNF grammars, scanning, parsing and the compilation process, use of Lex and Yacc for the functions of scanning and parsing. The course involves substantial programming assignments in different programming languages (C, ML, Prolog, Scala, F# as representatives) and a significant amount of reading.
This course focuses on implementation of high-level programming languages. Topics to be covered include concepts and comparison of programming languages, lexical analysis, parsing, code generation and optimization. Emphasis will be placed on the formation structures and algorithms required to implement compilers and their use and performance in other applications. Students will be expected to implement a compiler.
This course is a survey of the logical foundations of mathematics, the mechanization of the reasoning, and relationships to computer science. Subjects include propositional logic and first order logic; decision procedures for equality, notions of proofs and models, model checking and theorem proving based techniques, completeness theorem, Hoare logic and application of logic to formal software verification, i.e., the use of logic to specify properties of prove some small programs, the implementation of a small theorem prover in a functional programming language, and a significant amount of reading of recent research results.
In this course, students will create real time applications, especially 2D and 3D computer games. The idea is to translate a game design into a workable script language. The course will focus on 3D level design, motion capture and camera angles, character development, rendering and animation in 3D, polygon models, collision detection, and texturing.
This course will provide an overview of topics such as introduction to data mining and knowledge discovery, data mining with structured and unstructured data, foundations of pattern clustering, clustering paradigms, clustering for data mining, data mining using neural networks and genetic algorithms, fast discovery of association rules, applications of data mining to pattern classification, and feature selection. The goal of this course is to introduce students to current machine learning and related data mining methods. It is intended to provide enough background to allow students to apply machine learning and data mining techniques to learning problems in a variety of application areas.
The World-Wide Web Consortium’s (W3C) eXtensible Markup Language (XML) has rapidly emerged as a standard that is used in a wide variety of applications related to Web and e-commerce. XML is becoming a very important new technology used everywhere in the IT industry. We believe that every student must have exposure to this powerful technology. This course not only introduces XML but also deals with how to develop XML applications using JAVA. This course starts with the basics of XML and goes on to developing XML applications using a programming language such as JAVA.
This course is an introduction to .NET Web technologies through C# .NET for people with basic programming skills. Topics include object-oriented programming in C#, exception handling, delegate, multithreading, graphic user interface, Web programming with ASP.NET, database programming with ADO.NET, Web services, and Microsoft Visual Studio .NET IDE.
This course focuses on theory and data structures and algorithms related to artificial intelligence and heuristic programming. Topics include description of cognitive processes, definition of heuristic vs. algorithmic methods, state space and problem reduction, search methods, theorem proving, natural language processing and pattern recognition techniques.
This course focuses on concepts and methods of theoretical computer science. Topics to be covered include finite state machines, pushdown automata, Turing machines, the theory of formal languages, and the theory of computability.
This course focuses on algorithms, data structures and hardware related to computer graphics and image processing. Topics covered are: vector, curve and character generation; interactive display processors, graphical data structures, graphic languages; the mathematics of three dimensions, projections and the hidden-line problems, two-dimensional image processing algorithms, enhancement and coding.
Autonomous software agents are used in many areas, from shopping bots to security bots and personal assistants. This course teaches the basic programming skills necessary to program autonomous agents using a rule-based system. Basic knowledge engineering skills and the design of agent-based programs are covered, including the use of software that learns from its own experiences.
This course provides a foundation in digital communications and network structures as the basis for current and emerging telecommunications and Internet systems. Topics include data, voice and video signals, information transmission (including wireless and optical media), layered networking architecture and protocols (OSI and TCP/IP), multiplexing and statistically shared media, data-link protocols, and an introduction to network and Internet strategies. Simple models for quantitative analysis of capacity and performance of network applications are introduced. Illustrations are based on current networks and Internet systems including Internet access, wired and wireless Ethernet LANs, cellular systems, and Web facilities.

Prerequisite: CS 604

This course builds upon CS 633 to examine local area networks, Internetworking via the TCP/IP protocols, and the Internet. The OSI reference model and the TCP/IP protocols form the framework. Topics include: multi-access network strategies, basic traffic and capacity models, LAN standards and the evolution from shared access to switched and wireless Ethernet, LAN internetworking using bridges and routers, routing strategies and congestion in networks, the IP protocol, transport-layer issues and the TCP and UDP protocols, network security, Internet services and applications such as the Domain Name System, FTP, SMTP mail, and the HTTP protocol for the Web.
This course covers the current issues and trends in the rapidly evolving field of telecommunications. Emphasis is placed on technological developments and trends with background in regulatory, organizational and economic factors and their interaction.
This course studies optical communications and networks. The key principles and building blocks of optical Communications and Networks are studied in detail with the first part of the course focusing on optical communications and the second part of the course focusing on optical networks.

Topics on optical communications include: light propagation in optical fiber, loss and bandwidth, chromatic dispersion, nonlinear effects, solitons, couplers, isolators and circulators, multiplexers and filters, optical amplifiers, transmitters, switches, wavelength converters, modulation and demodulation, and transmission system engineering. Topics on optical networks include: client layers of the optical layer (SONET/SDH, ATM, storage-area networks), WDM network elements, WDM network design, control and management, network survivability, access networks (HFC, FTTC, PON), photonic packet switching and deployment considerations.

The course examines the fundamental concepts of wireless transmission and the operation of current wireless systems and networks. Coverage of wireless transmission includes: radio, propagation, basic antenna operation, and signal impairments (interference, attenuation, reflection, fading, and multipath waves), providing a foundation for studying various wireless systems. Spread spectrum, cellular, and multiple-access (FDMA, TDMA, CDMA, and SDMA) methods are also covered, along with privacy and security issues in wireless systems. Examples of wireless systems covered include: cellular telephone and data networks, wireless LANs, and satellite systems. Students will collaborate to research current and emerging systems in wireless communications.
This course covers topics including design of network topology, capacity and routing strategies. Traffic analysis and performance-capacity effects are studied using a variety of queuing theory and computer simulation models. Emphasis is on applications involving analysis and design of packet data, voice, and emerging integrated broadband networks.
This course surveys the specificities of the development of native applications for different mobile platforms including phones and tablets. The software engineering of application development including user-centered design, testing and quality assurance will be emphasized. Students will learn how to design and develop applications for the Android platform. The following topics will be covered: user interface, events processing, services management, location based facilities, accelerometer and other sensors, networks/web access, and sound and multimedia. The parallel with iPhone development will be presented. The distribution of mobile applications and business models for monetization will be covered. A significant project is integrated in the course.
This course will examine current networking practices being employed in the telecommunications industry. Emphasis will be placed on private corporate networks built from common carrier building blocks. A portion of the course will be devoted to specific networks; preliminary topics include T1 networks, satellite networks, software-defined networks and so-called Wide Area Networks (WANs).
This course introduces students to the techniques used to create web sites for basic and smart phones. Particular attention will be on gathering data about web traffic (e.g. visitors, visits, devices, operators, and locations) and analyzing the data to engage the users and for business decision making. Content including social networking and privacy will be discussed in depth. The course also covers the development of mobile web applications using HTML5, CSS and AJAX for Android phones. The parallel with iPhone will be made. User-centered design, testing, quality assurance and performance will be covered throughout the course. The course integrates comprehensive assignments and significant readings.
This course familiarizes students with the development of mobile innovations addressing social and global challenges in areas such as health, microfinance, education and civic activism. Students will be introduced to research in the social considerations in mobile application development, ICT4D (Information and Technology for Development), and M4D (Mobile for Development) through readings, class discussions and a series of talks. The Mobile Web, and SMS and Voice Solutions will be presented in that context. Students will leverage their technical knowledge with social insight, creativity and ingenuity to develop prototypes with social impact along with its deployment plan (taking into account the real world limitations) and a business model, with the guidance of local partners from NGOs and the industry, and successful social entrepreneurs.
This course focuses on the following: Internet and Web technology overview, the tiered web architecture, Web server set up and configuration, separating data structures and data presentation with cascading style sheets, JavaScript for client data validation and HTML document object model manipulation, Java software framework for servlet components, separating computation from data presentation with Java server pages, session data management and Java persistence service, computation abstraction with struts, server-side GUI abstraction/reuse and data validation with Java server faces, ajax for more interactive and smoother web interactions, and Web application security.
This course focuses on 3DSMax, and Maya to develop models, polygon creation, triangulation, character modeling, skeletons, bone systems, skinning, character animation, facial animation, and programming models to function.
This course explains the structure of the Unix operating system and shows how to write system and network programs. It is appropriate for students who want to learn how to write system software for Unix or for students who want to learn about the structure of a multi-tasking, multi-user operating system. The course covers the details of the file system, terminal and device input/output, multi-tasking, interprocess communication, video displays, and network programming.
This course is an overview of scripting and programming languages used in available 3D game engines. Topics include programming constructs of the 3D game engine and their relations with the models and levels, and programming the player and bots to move around, swim, fly, and jump dynamically and randomly.
Topics for this course include server scalability and robustness, introduction to mainframe computing, separating data presentation generation and business logic with application servers, software framework for Enterprise JavaBeans, scalable business logic implementation with enterprise session JavaBeans, event-driven system integration with message-driven Enterprise JavaBeans, matching object domain model and relational data model, enterprise server system security and deployment, and server virtualization as cloud services.
This course covers the following: Internet/Linux server security overview, cryptography concepts and their Java API, IP security, Java security framework, Java API for data confidentiality and identity authentication, trust chains through digital certificate chains, developing distributed applications with distributed Kerberos third-party authentication, secure server application communications through SSL, TLS, HTTPS and VPN, developing secure e-commerce transaction system supporting the Secure Electronic Transaction (SET) protocols, and secure server infrastructure with firewalls and Intrusion Detection Systems (IDS).
This course is a Web and Internet security overview. Topics include securing web servers, application servers, and database servers; client-side vs. server-side web application input validation, Java security policy and certificate management, running Java applications through Java security manager, defining Java security policies based in code based and code signatures, Secure web application session management, SQL injection prevention, URL hacking prevention, secure web application development life cycle and maturity model, Web application auditing. Black box vs. white box web application security testing, and secure web application deployment.
This course covers the most important issues and topics in the huge area of cryptography and computer security. Topics include: mathematics of cryptography, traditional symmetric-key ciphers, modern symmetric-key ciphers, DES, AES, asymmetric-key cryptography, RSA, Rabin, ElGamal and elliptic curve cryptosystems, message integrity and message authentication, cryptographic hash functions, digital signature, entity authentication, and key management.
This course covers the most important issues and topics in the area of network security, with a good balance between theory and practice. It covers attacks and threats in computer networks, including network mapping, port scanning, sniffing, DoS, DDoS, reflection attacks, attacks in DNS and leveraging P2P deployments for attacks, and operational security, including firewalls and intrusion-detection systems. It also takes a layered approach to network security covering topics that include: security at the application layer, PGP and S/MIME, security at the transport layer, SSL and TLS, security at the network layer, and IPSec. Students will use software tools to participate in an important simulated lab component that includes packet sniffing, network mapping, firewalls, SSL and IPsec.
This course introduces the student to computer vision algorithms, methods and concepts which will enable the student to implement computer vision systems with emphasis on visual pattern recognition. Upon successful completion of this course of study a student will have general knowledge of image analysis and processing, pattern recognition techniques, and some experience with research in computer vision. Topics to be studied: data structures for visual pattern representation, feature extraction, basis theory, decision trees, nearest neighbor, artificial neural networks, clustering, etc. Once students complete this course, they should be competent to conduct research in this area. Students will be required to critique a current paper from literature in this area, present it to the class, implement the presented algorithm and evaluate the strengths and shortcomings.
This course includes the introduction to mainframe computer architecture, mainframe OS, server virtualization, mainframe’s special role in server-based computing and cloud computing, z/OS overview, virtual storage, workload management, I/O and data management, z/OS vs. UNIX; TSO/E, ISPF, and UNIX, working with data sets, VSAM, catalogs and VTOC’s, JCL and SDSF, I/O redirection, JCL procedures, system libraries, batch processing and JES, COBOL for mainframe computing.
A paid or unpaid field study experience in a working environment intended to provide the student with a practical extension and enhancement of knowledge gained in class. A research study or project done under the direction of a faculty advisor is required. No more than 3 credits of Field Study may be taken.

Capstone Project (6 Credits)

Students are required to select one of the following options:

Students choosing this option will, in consultation with a faculty advisor, select a significant computer science application, study its supporting technologies, design and implement the application, and present the project in the form of a major project report and project demonstration. A brief written project proposal must be approved by the advisor, a committee chosen by the student and the advisor, and department chair. Students enrolled in Computer Science Project I will complete preparatory work culminating in a major project report. Those not electing to continue with Computer Science Project II will receive a grade for Computer Science Project I and may use it as a computer science elective.
Students enrolled in Computer Science Project II will finish their project begun in Computer Science Project I and write a major report. When the report has been completed, each student will be expected to give an oral presentation and project demonstration before the committee. The project advisor will assign a grade for the work in consultation with the committee. This grade will also be assigned to Computer Science Project I.

OR

Students choosing this option will select and research a topic in computer science in consultation with a faculty advisor. A brief written Thesis Proposal must be approved by the advisor and a committee chosen by the student, advisor, and department chair. Students enrolled for Thesis I will complete preparatory research culminating in a written Thesis Report. Those not electing to continue with Thesis II will receive a grade for Thesis I and may use it as a computer science elective.

Prerequisites: Permission of Department and additional paperwork prior to registration

Students enrolled in Thesis II will finish their research begun in Thesis I and write a thesis. When the thesis has been completed, each student will be expected to give an oral presentation before the committee. The thesis advisor will assign a grade for the work in consultation with the committee. This grade will also be assigned to Thesis I.

Request Information

To learn more about online Master of Science in Computer Science program, fill out the fields in this form to download a free brochure. If you have any questions at any time, please contact an admission advisor at (866) 843-7205.

* All Fields are Required. Your Privacy is Protected.
Are you enrolling from outside the US? Click here.