Master of Science in Computer Science

Chunbo Chu, Ph.D., Program Chair

Franklin University's Master of Science in Computer Science (MSCS) is designed to provide students with the theoretical and practical application skills required: 1) to master a good understanding of the Computer Science discipline; 2) to be able to contribute immediately and make a positive impact in the workplace. This graduate degree is intended for the working person who wants to be part of the development of the technology of the future.

Graduates of the program will be able to perform software project roles in a team environment for:

The core course of study includes topics in:

Elective topics include:

For the complete degree program requirement, see the MASTER OF SCIENCE – COMPUTER SCIENCE section in the University Bulletin.


Admission Requirements

The admission process reflects Franklin University's efforts to clearly identify the performance standards that can help predict student success in graduate level study. The selection criterion for Franklin's graduate programs, as determined by faculty, emphasizes academic ability, contributory work experience, and personal qualities and characteristics.

Requirements for admission include having earned a bachelor's degree from a regionally accredited institution with a 2.75 GPA on a 4.0 scale. Otherwise a graduate entrance exam will be required (See below). The candidate's work history, references, and other personal qualities and characteristics will be considered as well. 

Ready to get started? Download the Graduate Programs Admission Checklist.

Prerequisites

Students with an undergraduate degree in Computer Science will be admitted without future prerequisites. However, the students will be expected to possess intermediate Java programming skills. Students without a Computer Science degree will need to have credit for the following Franklin University courses or the equivalent undergraduate course work at a regionally accredited institution or approved relevant work experience:

  • MATH 320: Discrete Mathematics
  • COMP 111: Introduction to Computer Science & Object-Oriented Programming
  • COMP 121: Object-Oriented Data Structures & Algorithms I
  • COMP 323: Fundamentals of Operating Systems

We will determine, on an individual basis, prerequisite requirements, upon the review of the applicant's bachelor's degree courses, work experience, or demonstrated competency in Computer Science. For more information on these courses, see the course descriptions.

Entrance Exam

GRE. This is only a requirement for applicants that earned a bachelor's degree from a regionally accredited institution, with a GPA below 2.75 (on a 4.0 scale).

English Language Testing

If you are not a U.S. citizen, not a citizen of a primarily English-speaking country, or did not earn your undergraduate degree in a primarily English-speaking country, you will need one of the following TOEFL or IELTS scores.

TOEFL (Test of English as a Foreign Language)

  • Paper based: 550 or higher
  • Computer based: 213 or higher
  • Internet based: 79 or higher

IELTS (International English Language Testing System)
6.5 or higher

For more information on international student admission requirements, please view the Office of International Services & Programs admissions requirements page.


Course Curriculum

Students are admitted to the MSCS Program in September, January and April. Total 36 hours from the following categories are required to graduate.

Major Required (24 Hours):

This course covers various algorithm design paradigms, mathematical analysis of algorithms, empirical analysis of algorithms and NP-completeness.

Upon successful completion of this course, students will be able to:

  • Apply the methods and use the tools necessary to analyze algorithms.
  • Use various techniques for the design and analysis of efficient algorithms.
  • Describe and manipulate advanced data structures (B-trees, Heaps).
  • Describe, use and analyze a variety of graph algorithms.
  • Describe and analyze various string matching algorithms.
  • Describe and analyze various computational geometry algorithms.
  • Describe the characteristics for determining NP-completeness.
  • Describe appropriate uses for approximation algorithms.

This course focuses on the fundamental design considerations in designing a database. Specific topics include performance analysis of design alternatives, system configuration, and the administration of a popular database system. The course offers an in-depth analysis of the algorithms and machine organizations of database systems.

Upon successful completion of this course, students will be able to:

  • Describe the database system architecture
  • Define the formal relational model
  • Use relational algebra and relational calculus to express relational queries
  • Apply patterns to database design
  • Apply refactoring techniques to modify and improve database designs.
  • Investigate techniques for measuring the effectiveness of database design
  • Differentiate between the various techniques for semantic data modeling
  • Examine the techniques and issues involved in securing databases
  • Experiment with techniques for the optimization of database queries
  • Predict new trends in database management
  • Explore the role of databases in Web technology
  • Apply data mining techniques
  • Fluently communicate database concepts orally and in writing

This course surveys current practices in software development and software design, especially in the area of object-oriented design. The course will examine and contrast current and leading edge methodologies and practices, including agile, extreme programming, test-driven design, patterns, aspect-oriented programming, model-driven architecture, Unified Modeling Language, and integrated development environments.

Upon successful completion of this course, students will be able to:

  • Distinguish current software development methodologies.
  • Judge the appropriate application of current software development methodologies.
  • Apply an appropriate object-oriented design methodology to solve software design problems.
  • Critique software designs using OO principles.
  • Explore current tool suites used to construct software applications.

This course covers the concepts, design and practice of distributed computing systems and distributed application programming. It starts with the basic concepts of distributed systems (such as transparency, heterogeneity, network process communication), CORBA and related OMG technologies, and also introduces modern distributed computing techniques and development tools. Students will gain hands-on experience by applying the theories into the development of a distributed application using the Java EE technology.

Upon successful completion of this course, students will be able to:

  • Describe the design issues, challenges and trade-offs associated with the development of distributed systems, including communication, naming, synchronization, distributed process management, distributed resource management, security.
  • Describe several working distributed systems.
  • Develop distributed systems.
  • Extend their knowledge of distributed systems.

This course focuses on the issues of delivering high quality software, especially in large complex systems. Topics covered include testing strategies (black box, white box, regression, etc.), unit testing, system integration, system verification and support tools. It also will reinforce the need for requirements that are testable and traceable from the early design stages.

Upon successful completion of this course, students will be able to:

  • Determine appropriate test techniques applicable to given software programs.
  • Construct software tests using appropriate techniques.
  • Determine the testing and quality metrics of a software program.

This course, the final one in the MSCS program, challenges the student to research a current topic in Computer Science which is of interest to the student and produce an original paper and presentation on the topic. In addition to the research paper, the student is introduced to the economics of software development and the tools needed to estimate and cost a software development project for management in a corporate environment. The last topic in the course is a discussion of ethics as it relates to Information Technology. Current topics in ethics will be discussed through the use of relevant case studies.

Upon successful completion of this course, students will be able to:

  • Research a current topic in computer science.
  • Synthesize research for a current topic in computer science.
  • Write a research paper for a current topic in computer science.
  • Orally present research results.
  • Apply ethics to situations encountered in information technology.
  • Apply financial and economic principles to determine the value of software systems.

Major Elective (Choose 12 hours from the following:)

  • COMP 650 - System Architecture and Engineering 4
  • COMP 660 - Communication Strategies for the Technical Professional 4
  • COMP 665 - Project Management of Information Systems 4
  • COMP 670 - Application of Artificial Intelligence 4
  • COMP 672 - Human Factors 4
  • COMP 676 - Computer Security 4
  • COMP 610 - Internship in Graduate Computer Science 1 – 4


Students in the Computer Science and Information Technology majors may be required to purchase hardware and/or software with capabilities greater than the standard University technology requirements. There will be software requirements beyond the standard Microsoft Office software, such as software development environments, operating systems, virtualization environments and tools, website development and business process documentation tools that will be used in various courses. Students should check the Technology Requirements section of the Bulletin and/or the Course Schedule for the requirements relevant for Computer and Information Sciences majors to ensure they have, and are familiar with, the requisite hardware and software.