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:

Learn more about why this is the degree program for you, program details and more at the University's official page.

Course Curriculum

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

Major Required (24 Hours):

This course covers key knowledge and skills for advanced software development using the object-oriented approach. The student learns, manipulates and reflects on nonlinear data structures such as trees and heaps. Recursive algorithms, sorting algorithms, algorithm efficiency, and advanced design patterns are addressed. To support the advanced concepts and principles of software development, the student will design, code, test, debug, and document programs with increased scale and complexity using industry’s best practices (such as GitHub) and the Java programming language.

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

  • Analyze real-world problems with advanced object-oriented analysis principles and design patterns.
  • Analyze, manipulate and apply non-linear data structures.
  • Analyze, compare, contrast, and execute sorting algorithms.
  • Design, code, analyze, and trace recursive algorithms and data structures.
  • Design, develop and manage software projects with increased scale and complexity with industry’s best practices such as GitHub.

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 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.


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.


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:

Graduate prerequisite courses (500 level) must be completed with a grade of "C" or better. Undergraduate prerequisite courses must be completed with a grade of "C" or better.

The Program Chair 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. To request a prerequisite waiver, fill out this form and submit with evidences such as course syllabi.

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.

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.