California Takshila University
  Home     Contact Us


Master of Science in Computer Science   


The Master of Science program is designed for students who have received their undergraduate degrees in Science, technology, engineering or mathematics (STEM related fields), and who wish to develop greater depth and/or breadth in computer science. The MS degree prepares students for more challenging--and often more highly-compensated--work in their professional careers, and CTU Computer Science MS alumni have traditionally been well-positioned for interesting and rewarding careers.


The Master of Science in Computer Science is a 2 year program which offers instruction in the fundamental principles, design and applications of computer systems and computer technologies. Students who obtain the Master of Science degree in Computer Science are qualified to perform significant development work in the computer industry or important application areas. The program exposes students to the complete life-cycle of computer application development including abstraction, modeling and algorithm development, leveraging computer systems, programming languages and development frameworks, and software development techniques and processes.


Background Preparation (Pre-requisite Course Requirements)

Students admitted into the MSCS degree program are required to have the following background preparation.  A student with any deficiency is required to clear it by either (1) taking the course at California Takshila University and earning a grade of at least C of higher, or (2) taking and passing a proficiency exam on the subject.  The student must clear prerequisites before attempting to enroll in graduate level courses.


Background Preparation/Prerequisite Courses


MSCS501   Data Structures and Algorithms  
MSCS502  Computer Architecture
MSCS507  Operating System Design
MSCS511 Programming Languages


These courses should ensure that student has covered a broad range of undergraduate Computer Science. GRE scores are optional: For the GRE, the quantitative score is most important, although the other portions will be considered as well.


A student with any background deficiency is required to take the specifically designed computer science preparatory model course to clear it on-campus.  You may take these or equivalent courses off-campus and/or online from other universities.  Meet with your advisor to determine where and how you should take these courses.  Adviser will guide you to enroll either one of the online programs and/or assist you to take open classes from one of the local university as well. 


Course work required to remove the deficiencies in undergraduate background will not be credited toward the graduate degree. Each student will be assigned a graduate advisor. The student should see his or her graduate advisor before registering for the first time. The student and the advisor will work together to chart out a course of studies which meets the student's career objectives and which constitutes a coherent program satisfying the graduation requirements.  It is the responsibility of the student to meet the requirements and to keep the department office informed of compliance with them; in particular, the student should meet with his or her graduate advisor at least once a semester to review progress toward the degree.


MSCS Program Mission, Objectives and Outcomes


Program Mission Statement:

To provide a professional and practical computer science education to qualified students at the graduate level.

Statement of Objective: 

To build upon the student's undergraduate-level foundations in computer science and advance their knowledge in the field.

Statements of Outcomes:

MSCS.OC1: Breadth of knowledge in computer science

MSCS.OC2: Depth of Knowledge in an advanced topic in computer science

MSCS.OC3: Technical Communication skills


Educational Objectives

Overview:  The MSCS degree program is designed to provide advanced knowledge and hands-on experience in computer science to students who are interested in gaining expertise in software engineering as well as modern Internet technologies and applications. Through the learning process, the students not only acquire knowledge in modern computer technologies but also cultivate abilities in software design, development, deployment, and integration aspects of professional learning. They are encouraged to apply their knowledge and skills to course projects that match industry trends.


Measurable Objectives

  • Students will be able to demonstrate a broad knowledge of Computer Science which includes data structures, operating systems, and computer programming skills, computer organization, algorithm design, and automata theory.

  • Students will gain a substantial knowledge of one of the following Computer Science specialties: Database, Networking, Artificial Intelligence, Information Security, and Computer Engineering.

  • Students will demonstrate the ability to recognize, design and implement efficient software solutions to problems.

  • Students will demonstrate knowledge and understanding of professional ethics and responsible behavior.

  • Students will demonstrate the ability to communicate effectively and to work as a team.

  • Students will become successful professionals able to gain Employment and/or to be accepted into a Computer Science Ph.D. program.

Qualitative Objectives

  • To provide graduates with breadth of high-level technical knowledge in the Computer Science field, along with a depth of understanding in one or more topic areas within the field

  • To establish the interest and ability for independent lifelong and dynamic learning in graduates

  • To develop research and technical communication skills in graduates

  • To develop in graduates a level of competency above that of undergraduate students by additionally demonstrating capabilities of analysis, synthesis and evaluation of solutions of computing problems.

Graduates of the program will acquire a broad range of Analytical skills including:

  • Knowledge of key computer science concepts, techniques and algorithms

  • An understanding of the workings and the API (Application Programming Interface) of modern computer systems including database systems

  • Skills in programming and software development

  • Expertise in a chosen area of Computer Science

  • Research skills and experiences that can be applied in any endeavor

Program Learning Outcomes

  • Create software requirements specifications, and design and develop complex software systems.

  • Evaluate computer security vulnerabilities and threats, and countermeasures that are effective and ethical.

  • Analyze, design and develop database solutions by translating database modeling theory into sound database design and implementation.

  • Analyze and design complex front-end applications for cloud and client-server architectures and integrate them with backend databases.

  • Compare & contrast alternative systems for process and memory management.

  • Demonstrate the understanding of the capabilities and limits of computation, hardware and software systems, and software development

  • Demonstrate the ability to effectively communicate technical information, as expected within the discipline.

  • Demonstrate ability to conduct in-depth research, both individually as well as in teams, in a specific computer science area.

  • Demonstrate critical thinking and ability to analyze and synthesize computer science concepts and skills with ethical standards.

Graduates of the program will also be able to:

  • Deliver services and support to both internal and external clients by applying technical knowledge, problem solving techniques and hands-on skills in traditional and emerging areas of their discipline

  • Become active participants in ongoing professional development, professional growth and increasing professional responsibility

  • Communicate ideas to technical and non-technical collaborators

  • work within the accepted standards of professional integrity and conduct

Changes in Degree Requirements

California Takshila University's policies and requirements are subject to change, and changes may not be reflected on the website or published documents immediately.  Unless agreed upon by the continuing students, the new degree requirements will not be imposed retroactively on continuing students.  However, students who are readmitted after a withdrawal and those who are returning after a leave of absence must be governed by the new requirements.


MSCS Program

Graduation Requirements

This catalog serves as the university's contract with the students for graduation requirements.  Thus, students fall under the graduation requirements written in the catalog used at the time of students enrolling into the program.  Unless otherwise mandated by a regulatory compliance body, all students will be responsible for fulfilling all graduation requirements that are in effect at the time of their admission to the program.


Each student should arrange an advisory meeting with his/her academic adviser prior to the end of his graduate studies (preferably a semester in advance).  The student must review his/her academic records and graduation requirements with the adviser prior to applying for graduation.


A minimum of 36 semester units of graduate study are required for the MSCS program. They include a few required core courses, a number of computer science courses based on the student’s selection of technical pursuit, a required capstone/Senior design project course, and electives.  Graduate students must earn a minimum average of 3.0 (GPA).


The students are expected to complete a program of study that will provide mastery of their field, with at least 9 core credits of 36 semester credit units altogether.


A GPA of 3.0 or higher must be maintained at all times while in the program. If your GPA falls below that, you will be placed on academic probation. If during the next regular semester the GPA stays below 3.0, then you will be dropped from the graduate program.


Core Requirements (9 semester units)

The student is required to take at least 9 units of computer science coursework from this section. Although not required, the student has the opportunity to select a concentration area and take courses in the chosen area to meet the core requirements.  Taking sufficient number of courses in a concentration area is beneficial to the student for entering the corresponding computer technology profession.


Electives (24 semester units)

The student may elect any graduate-level courses to meet the electives requirement.


Curricular Practicum: When applicable, the student may take curricular practicum courses and engage in practical training to work on company projects that are directly related to the student’s course of study. The student must observe the rules required for taking the practicum courses. No more than 6 units of practicum coursework may be counted towards graduation.


Senior design project/Capstone Course (minimum 3 semester units)

Upon completing all or most coursework for this program, the student is required to take the capstone course and, under the guidance of the course instructor, integrate the knowledge and skills learned from all of the courses taken during the program.


In short, the students are expected to complete a program of study that will provide mastery of their field, with 9 core semester credits and 36 semester credit unit altogether. Graduate students must earn a minimum grade point average of 3.0.


List of Courses

Core Courses:

MSCS528 Software Engineering
MSCS581   Advanced Analysis of Algorithms
MSCS582 Advanced Operating System

Advanced Object Oriented Design and Development


Elective Courses:

MSCS513 Advanced Programming Languages Principles
MSCS514 Web Technologies
MSCS521 Computer Systems Design
MSCS523 UNIX Tools
MSCS527 Advanced Database Systems
MSCS529 Networks and Distributed Systems
MSCS530 Dot Net Programming
MSCS542 Artificial Intelligence
MSCS544  Foundations of Machine Learning
MSCS553  Introduction to Cryptography

Numerical Methods I

MSCS563 Numerical Methods II
MSCS567 Implementation of Data Warehousing
MSCS568 Software Design Patterns
MSCS570 Security, IT Disaster Recovery and Business Continuity
MSCS571 Foundations of Digital Systems Security

Big Data

MSCS623 Mobile Application Programming
MSCS630 Agile Software Development
MSCS 800 Special Topics in Computer Science
SEM600 Seminars
MIT610 Management and IT
SDP700A/B Senior Design Project
INT650 Practical Training (Practicum)
IST800 Independent Studies


17.1.6 Course Descriptions

MSCS501 –Data Structures and Algorithms – Pre-req course (3 credits)

This is a graduate level course focused on in-depth study of data structures and algorithms.

Algorithms are precisely stated, general problem solving methods suitable for computer implementation. Data Structures are methods of organizing data involved in computation.  Algorithms and data structures are central objects of study in computer science. Algorithms and data structures go hand in hand: neither can be studied fruitfully without knowledge of the other. The course studies techniques for designing and analyzing algorithms and data structures. The course concentrates on techniques for evaluating the performance of algorithms.


Topics covered are:

Abstract data types: lists, stacks, queues, trees, search trees. Hashing. Sorting and searching: simple sorts, quick sort, merge sort, shell sort, binary trees. Graphs: Minimum spanning trees, shortest path problems, Maximum flow problems. Running-time analysis of algorithms and order notation, recurrence relations. Advanced algorithm design: Divide and conquer, greedy methods, dynamic programming.


MSCS502 –Computer Architecture - Pre-req course (3 credits)

This is a graduate level course focused on modern computer architecture and its performance. Emphasizing processing performance improvement as the main goal, we will do an in-depth study of the techniques to do the same. This course examines the tradeoffs and design considerations in the design of superscalar or instruction level parallel (ILP) microprocessors. The course will review data representation and arithmetic concepts very briefly to build the foundation for further study.


MSCS507 – Operating System Design – Pre-req course (3 credits)

This course examines operating system design concepts, data structures and algorithms, and systems programming basics. The topics to be covered include Computer and operating system structures, Process and thread management, Process synchronization and communication, Memory management, Virtual memory, File system, I/O subsystem and device management, selected examples in networking, protection and security.


MSCS511 – Programming Languages – Pre-req course (3 credits)

This course serves as introduction to the design and implementation of programming languages. From the design point of view, the students will study language features as tools for expressing algorithms.  From the implementation point of view, students will study compilers, interpreters, and virtual machines as tools to map those features efficiently onto modern computer hardware. The course will touch on a wide variety of languages, both past and present, with an emphasis on modern imperative languages, such as C++ and Java, and, to a lesser extent, on functional languages such as Scheme and Haskell, and scripting languages such as Perl, Python, and Ruby. Rather than dwell on the features of any particular language, students will focus instead on fundamental concepts, and on the differences between languages, the reasons for those differences, and the implications those differences have for compiler implementation.


MSCS513 – Advanced Programming Languages – elective course (3 credits)

The course exposes students to the various types of programming languages. The concepts behind their design and implementation are discussed. Models and corresponding languages are given. Areas of use of the various languages are stressed. Topics discussed include concept of modern programming languages; an overview of the imperative model; data aggregates; procedural abstraction; data abstraction; example languages: C and Modula-2; overview of a functional model; a functional-oriented language such as FP or ML; Logic-oriented model; example language: Prolog. Object-oriented model; example languages: Java and Smalltalk; Distributed parallel model, example languages: Ada and Occam; Hybrid models. 

Prerequisite: MSCS 501, MSCS511


MSCS514 – Web Technologies – elective course (3 credits)

This is a graduate level course to introduce the concept of Web Services to create rich functionality in web applications. Web Services have rapidly become popular choice to embed rich functionality in various web applications. Today, Web Services have a presence ranging from simple mash-up to full fledge web applications.  XML data representation plays an important part in Web Services. This course will focus on XML format, how to parse and create valid XML document, DTDs, schemas, XPATH and XSLT. We will then proceed to study how to use SOAP protocol to make web service calls to a server. Using AJAX makes the user experience using a web application quite rich and smooth. We will study techniques to use AJAX inside a web application. 

Prerequisite: Intermediate Programming Languages, User level knowledge of at least one modern programming language.


MSCS521 – Computer Systems Design – elective course (3 credits)

The course begins with a discussion of digital logic design, including combinational and sequential logic. Following this, assembly language and machine language will be covered, including practice in writing assembly language programs for a model machine, SRC. Machine design will be described using a formal language for machine description, RTN, Register Transfer Notation. Coverage will then turn to two real machines, the CISC Motorola MC68000, and the RISC SPARC. The heart of the course will be the coverage of computer design at the gate level, including both the data path and the control unit including clocking and timing.

Prerequisite: MSCS507


MSCS523 – UNIX Tools – elective course (3 credits)

Students will be introduced to the basics of traditional UNIX command-line tools. These tools may seem clunky and primitive compared to the GUI-based tools students are more apt to be familiar with. But behind the clunky-seeming interface there is a lot of power and flexibility, in part because this traditional environment includes a number of “power tools” that can be great timesavers for the not-so-novice user. In this course the students will look at some of these tools and also at the underlying UNIX philosophy/culture.


MSCS526 – Database Systems – elective course (3 credits)

The main aim of this course is to introduce the fundamental concepts necessary for designing, using, and implementing database systems and applications. Our presentation stresses the fundamentals of database modeling and design, the languages and facilities provided by database management systems, and system implementation techniques.


MSCS527 – Advanced Database Systems – elective course (3 credits)

This course covers advanced database management system design principles and techniques. The course materials will be drawn from both classic and recent research literature. Possible topics include access methods, query processing and optimization, transaction processing, distributed databases, object-oriented and object-relational databases, data warehousing, data mining, web and semi-structured data, search engines, streaming and sensor-based data systems, multimedia database tools, data mining, and client-server, heterogeneous and P2P systems.

Prerequisite: MSCS526


MSCS528 – Software Engineering – core course (3 credits)

This course is aimed at helping students build up understanding of how to develop a software system from scratch by guiding them through the development process and giving them the fundamental principles of system development with object oriented technology using UML. The course will initiate students to the different software process models, project management, software requirements engineering process, systems analysis and design as a problem-solving activity, key elements of analysis and design, and the place of the analysis and design phases within the system development life cycle.


MSCS529 – Networks and Distributed Systems – elective course (3 credits)

This is a graduate level course in networking, focusing on the Internet and security and scaling issues for networked systems. This semester is a multi-tracked offering intended to serve graduate students and advanced undergraduates. In this course, we will refer to the Kurose and Ross textbook, which takes a "top-down" approach focusing on how network software serves the needs of networked systems, rather than the classical "layer cake" approach that builds up successive layers of software function and abstraction on networking hardware. We combine the textbook material with a study of current research topics, current and future issues in Internet architecture, and advanced networked systems.

Prerequisite: MSCS501


MSCS530 – Dot Net Programming – elective course (3 credits)

Upon finishing this course, students will be able to work in a software development team as they will have throughout understanding of software development process; will understand key features of .NET and have practical skills to develop Windows applications in .NET.


MSCS542 – Artificial Intelligence – elective course (3 credits)

This course will cover artificial intelligence as a coherent body of ideas and methods to acquaint the student with the classic programs in the field and their underlying theory. Students will explore this through problem-solving paradigms, logic and theorem proving, language and image understanding, search and control methods, and learning.

Prerequisite: MSCS501, MSCS511


MSCS544 – Foundations of Machine Learning – elective course (3 credits)

This course introduces the fundamental concepts and methods of machine learning, including the description and analysis of several modern algorithms, their theoretical basis, and the illustration of their applications. Many of the algorithms described have been successfully used in text and speech processing, bioinformatics, and other areas in real-world products and services. The main topics covered are Probability and general bounds, PAC model, VC-dimension, Perceptron, Winnow Support vector machines (SVMs), Kernel methods, Decision trees, Boosting Regression problems and algorithms, Ranking problems and algorithms, Halving algorithm, weighted majority algorithm, mistake bounds, Learning automata and transducers, Reinforcement learning, Markov decision processes (MDPs).

Prerequisite: MSCS501, MSCS511


MSCS553 – Introduction to Cryptography – elective course (3 credits)

This course will examine the history of ciphers from Roman cipher to modern day ciphers. It will cover the mathematical theory necessary for cryptography and will introduce classical ciphers and their decryption (shift, affine, and Vigenere ciphers), key exchange protocols (main example: Diffie-Hellman), public key ciphers. An important mathematical thrust will be to show students that there are alternative arithmetic systems in which familiar objects such as inverses, products, and logarithms have strange properties, and that these are appropriate tools for cryptography.

Prerequisite: MSCS501, MSCS511


MSCS562 – Numerical Methods I – elective course (3 credits)

Objective of this course is to introduce the standard methods and algorithms for numerical solution of algebraic equations, numerical linear algebra as well as differential equations. Topics covered are Roots of non-linear equations: Bisection, Newton-Raphson, secant methods, Solutions of linear systems: Gauss, Gauss-Jordan elimination, matrix inversion, Eigenvalues and eigenvectors, applications, Integration and discrete summations: Trapezoidal, Simpson, Romberg method, Gauss method, multiple integral, Solutions of ODE: initial value and boundary value problems, Euler’s and Runge-Kutta methods.

Prerequisite: MSCS501


MSCS563 – Numerical Methods II – elective course (3 credits)

This course is a continuation of MSCS562. Topics covered are systems of equations, approximation theory, and differential equations. Understanding the nature and limitations of each method is emphasized.

Prerequisite: MSCS562


MSCS567 – Implementation of Data Warehousing – elective course (3 credits)

This course provides the students with the topic of implementation of data warehousing in professional settings. Topics in data modeling, database design and database access are reviewed. Issues in data warehouse planning, design, implementation and administration will be discussed. This course examines the database architecture and technologies required for solving complex problems of data and information management, information retrieval, and knowledge discovery facing modern organizations. Case studies of organizations using these technologies to support business intelligence gathering and decision making are examined. This course also provides hands-on experience with state-of-the-art data warehousing and data mining methods and tools.

Prerequisite: MSCS526


MSCS568 – Software Design Patterns – elective course (3 credits)

This course will offer an intensive focus on the design and implementation of software using design patterns. The course material and assignments will place a particular emphasis on successive refinement based on identification of unresolved issues at each step of the development process, and on application of patterns to guide design and implementation refinement.

Prerequisite: MSCS511


MSCS570 - Security, IT Disaster Recovery and Business Continuity - elective course (3 credits)

This is an elective course in the Master of Science in Computer Science (MSCS) program at California Takshila University. MSCS570 is an in-depth focus on the development of an enterprise disaster recovery and business continuity plan that includes assessing impact and risks, prioritizing systems and functions for recovery, identifying data storage and recovery sites; specifying plans, procedures and relationships; creating a test process for the plan; and continued assessment of needs, threats and solutions.


MSCS571 - Foundations of Digital Systems Security - elective course (3 credits)

This course explores the fundamental topics in digital-systems security. Classical access control models and policies for a secure environment are analyzed. Current cryptographic algorithms are studied as means to ensure data confidentiality and integrity and for authentication. Techniques for secure software design, implementation and maintenance are discussed. Information assurance is examined as applied to the corporate environment. Malware attacks are examined and vulnerability analysis and risk assessment are discussed. Enterprise-level digital forensics is briefly discussed


MSCS581 - Advanced Analysis of Algorithms - core course (3 credits)

Randomized algorithms. Parallel algorithms. Distributed algorithms. NP-completeness of particular problems. Approximation algorithms.


MSCS582 - Advanced Operating Systems - core course (3 credits)

Models, design, implementation, performance evaluation in operating systems. Algorithms, internal architectures for single processor OS and distributed systems. Concurrency control, recovery, security. OS kernel-level programming. Special topics embedded systems, real-time system, device driver, NPU (Network Processor Unit).


MSCS583 - Advanced Object Oriented Software Design and Development - core course (3 credits)

Basic principles of object oriented analysis and design utilizing UML, advanced object oriented programming principles, design patterns, frameworks and toolkits; Agile software design processes. Development of a mid-size programming project working in teams.


MSCS621 - Big Data - elective course (3 credits)

Understand Big Data and its role in the corporate world. Recognize the phases of development of a Big Data strategy within a corporation. Understand why a Big Data Platform is required to bring together what would otherwise be separate silos of data. Understand analytics to infer the data patterns to derive meaningful decisions.

Prerequisite:  Basic programming and statistical knowledge


MSCS623 - Mobile Application Programming (3 credits)

This course orients students with mobile application programming for android handheld systems. Emphases are on developing applications as a community that run on the Android platform.Students learn to write both web apps and native apps for Android using the Android SDK, to write native apps for iPhones, iPod Touches, and iPads using Adnroid SDK. Additional topics covered include application deployment and availability on the corresponding app stores and markets, application security, efficient power management, and mobile device security. Students will get hands on experience as a developer with  Amazon Appstore.

Prerequisite:  Foundation in computer science


MSCS630 - Agile Software Development - elective course (3 credits)

This course elaborates the various agile software development methodologies and concentrates on Scrum in particular. The students would understand the various roles, artifacts, events, reporting techniques used in managing a scrum project. The student will also have hands on experience with scum software tools like Rally and Version One.

Prerequisite: Knowledge of waterfall methodology, Software Engineering basic concepts


MSCS800 – Special Topics in Computer Science – elective course (3 credits)

Faculty member may present various topics of interest which are subject of research at present time. Students are presented with new trends in their area of study, and are asked to actively participate in this course and contribute by research and presentation of their knowledge.


SEM600 – Seminars – elective course (3 credits)

This course is offered to students from various departments. It provides them unique opportunity to come together and share their knowledge and apply it in collaboration to various interdisciplinary issues, projects and research.


MIT610 – Management and IT – elective course (3 credits)

The primary objective of this course is to provide students with a deep understanding of what is involved in the Management of IT. The students will accomplish that by reviewing a set of conceptual frameworks of IT management, and by developing a critical view of two levels of IT management, both strategic and tactical. Students will address the value/importance of IT from strategic and tactical perspectives, and the IT management challenges of managing people, processes and technology. Debates and discussion sessions presented by students will serve as the primary channel for bridging the connections between the strategic and tactical aspects of IT.


SDP700A/B – Senior Design Project – elective course (3 credits)

This course constitutes of culmination of past education in courses offered. The students are encouraged to bring together their full skills and abilities towards the completion of a design project. Students are required to apply their knowledge acquired in the classrooms, but also learn and develop skills required to have successful career in their profession. Students are individually supervised by Academic advisor and/or faculty. A student who is in his/her last semester may elect to take this course.


INT650 – Practical Training – elective course (3 credits)

This training course is temporary employment authorization directly related to student’s academic program. It allows students to gain practical experience that is an integral part of an established curriculum through alternate work/study, internships, cooperative education, or practicum offered by sponsoring employers through cooperative agreements with the school. Students are individually supervised by Academic advisor and/or faculty. F-1 students must follow procedures given by the University and must be granted official work permission.


IST800 – Independent Studies – elective course (3 credits)

Independent study course is a course taken with faculty supervision for enhancement beyond the courses offered in a particular area of student’s interest. Students are encouraged to take active role in their independent studies and apply their knowledge in full range of topics enhancing their understanding of subjects beyond the in-class courses. A student who has completed at least 9 credits towards the master’s degree and/or has substantial background and proficiency in the field may elect to take this course. Prior permission of the Academic Director to take this course is required.




Copyright ©  California Takshila University - All rights reserved.