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
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
Background Preparation/Prerequisite Courses
Structures and Algorithms
Operating System Design
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.
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
MSCS.OC2: Depth of Knowledge in an advanced
topic in computer science
MSCS.OC3: Technical Communication skills
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.
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
Students will demonstrate the ability to
recognize, design and implement efficient software solutions to
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.
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
Expertise in a chosen area of Computer
Research skills and experiences that can be
applied in any endeavor
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.
understanding of the capabilities and limits of computation, hardware
and software systems, and software development
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
Demonstrate critical thinking and ability
to analyze and synthesize computer science concepts and skills with
Graduates of the program will also be able
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
Communicate ideas to technical and
work within the accepted standards of
professional integrity and conduct
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.
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
(24 semester units)
The student may elect any
graduate-level courses to meet the electives requirement.
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.
(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.
||Advanced Analysis of Algorithms
Advanced Object Oriented Design and
Programming Languages Principles
and Distributed Systems
Foundations of Machine Learning
Introduction to Cryptography
Numerical Methods II
Implementation of Data Warehousing
Security, IT Disaster Recovery and Business Continuity
Foundations of Digital Systems Security
Topics in Computer Science
Management and IT
Practical Training (Practicum)
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
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.
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.
will review data representation and arithmetic concepts very briefly to
build the foundation for further study.
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.
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,
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.
Intermediate Programming Languages, User level
knowledge of at least one modern programming language.
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.
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.
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
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.
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.
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.
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.
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.
Foundations of Machine Learning – elective course (3 credits)
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).
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.
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
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.
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.
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.
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.
MSCS582 - Advanced Operating Systems -
core course (3 credits)
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)
MSCS621 - Big Data - elective course (3
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.
Basic programming and statistical knowledge
MSCS623 - Mobile Application Programming (3
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
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
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.
Management and IT – elective course (3 credits)
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.
Senior Design Project – elective course (3 credits)
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.
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.
Independent Studies – elective course (3 credits)
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.