Computer Professionals Program
Master of Science in Computer Science

Maharishi University of Management, USA

Course Descriptions

Students working on laboratory assignment.
Students working on laboratory assignment.
CS 390 Fundamental Programming Practices: Modern Programming Methods and Systems — Capture the Fundamental Principles of Knowledge for Greater Success in All Areas

Course video description

Course video description

This course provides a focused program for enhancing programming and analytical skills in five areas: problem-solving, data structures, object-oriented programming, the Java programming language, and the use of recursion in Java programs. These topics are of particular importance as a prerequisite for the courses in the graduate program in Computer Science. Topics include elements of Java programming, object-oriented design and implementation, data structures (including lists, stacks, queues, binary search trees, hashtables, and sets), the Exception hierarchy, file i/o and streams, and JDBC. (4 credits) Prerequisite: CS 220

CS 401 Modern Programming Practices: Current Concepts and Best Practices in Software Development — Knowledge is the Basis of Action

Course video description

Course video description

This course presents the fundamental principles of object-oriented programming. Students will learn how to write reusable and better-maintained software, and integrate this knowledge with laboratory assignments and projects. Topics include: fundamental principles and models of object-oriented programming, UML class diagrams and design principles that promote re-usability and maintainability of software. (4 units)

CS 422 Database Systems: Capturing the Organizing Power of Information

Course video description

Course video description

Database systems organize and retrieve information, allowing the user to access the desired information easily and efficiently. Topics include: relational data model; SQL; ER modeling; relational algebra; data normalization; transactions; objects in the database; data security and integrity; data warehousing, OLAP, and data mining; distributed databases; and study of a specific commercial database system. (4 units) Prerequisite: CS 401 or consent of the department faculty.

CS 423 Systems Analysis and Design

Course video description

Course video description

The systems approach is an organized way of dealing with a problem. The software systems development life cycle (SDLC) has three major phases. It begins with preliminary and feasibility studies to make the decision to develop a system to solve a particular problem in a cost-effective and timely way. This is followed by a detailed system study, in which every aspect of the current system is analyzed and a new system is designed to meet the needs of the organization. Finally, the system design is brought to life through software engineering techniques including coding, testing, implementation and maintenance of the system.

This course focuses on the middle phase. A system is studied in detail to gather requirements and its process elements analyzed for suitability and relevance to meet the needs of the system's users. This is followed by an iterative and creative design process, using tools such as flowcharts, data flow diagrams (DFD), data dictionary, decision tables and decision trees, to provide an effective and detailed design of the system.(4 units) Prerequisite: none

CS 425 Software Engineering: Knowledge Is the Basis of Action — Principles and Processes for Developing Large-Scale Software Systems

Course video description

Course video description

This course introduces the student to best practices in software development through a software development methodology. Students will learn how to bring together their skills in object-oriented analysis and design, in the use of UML diagrams for modeling software solutions, to produce robust, easily maintainable software. A software development methodology describes when and how object-oriented concepts and UML diagrams should be used to accomplish the aim of building quality software. The course centers around a small project in which the principles discussed in the lecture format can be illustrated and applied. By the end of the course, the student will have a running application, built in accord with the high standards of a contemporary development methodology. (4 units) Prerequisite: CS 401 or consent of the department faculty.

CS 428 Software Development with Fundamental Design Patterns

This course is an introduction to 23 GoF (Gang of Four) design patterns. Design Patterns are proven solutions to recurring problems in object-oriented software design/development. Our course will cover the rationale and benefits of using them in real projects, with an emphasis on both the intellectual understanding and the ability to discover, apply, and implement them correctly (in Java) in any software project. (4 units) Prerequisite: CS401 MPP

Textbook: Design Patterns: Elements of Reusable Object-Oriented Software (Erich Gamma)
Students may not get credit for taking both CS 525 and CS 428.

CS 430: Business Intelligence and Data Mining

Course video description

Course video description

Organizations increasingly rely on business intelligence and data mining systems to provide them with the relevant information and insights to support decision-making. This course covers the fundamental concepts and tools for managing and mining data to generate new insights. Topics include design and development of data warehouses; and data mining tools, including statistical and machine learning techniques to identify new patterns. Popular data mining systems will be used to develop practical skills. (4 units) Prerequisites: Consent of the department faculty.

CS 435 Algorithms: Discovering the Hidden Dynamics of Natural Law

Course video description

Course video description

This course presents methods for analyzing the efficiency of algorithms (including worst-case and average-case analysis) and introduces a variety of known, highly efficient algorithms. Analysis, design, and implementation of algorithms are given equal emphasis. Topics include searching and sorting, efficiency of operations on data structures (including lists, hashtables, balanced binary search trees, priority queues), graph algorithms, combinatorial algorithms, recurrence relations, Dynamic Programming, NP-complete problems, and some special topics as time allows (Special topics include computational geometry, algorithms for cryptosystems, approximation, Big Data and parallel computing). (4 units) Prerequisites: CS 401 and MATH 272, or consent of the department faculty.

CS 440 Compiler Construction: Connecting Name and Form — The Source of All Programming Languages in Grammar and Semantics

Students learn the successive stages and detailed mechanics by which high-level programming languages are translated into machine language by a compiler. Topics include language and grammar specification, compiler structure, compiler generation tools, lexical analysis, parsing, syntax analysis, semantic analysis, intermediate language, code generation and optimization, storage management and linkages, user interface, and a large programming project implementing part of a compiler. (4 units) Prerequisite: CS 401 or consent of the department faculty.

CS 450 Computer Networks: Connecting the Parts and Whole—Frictionless Flow of Information Distance Education version

Computers are connected with high-speed communication lines in local area or wide area networks, for the purpose of sharing databases and distributing workloads to increase efficiency and improve service. Topics include sampling and information theory, error detecting and correction codes, network architecture, communication protocols and models, protocol analysis, hardware components, logical and physical topology, message routing and switching, flow control, local area networks, and data security. (4 credits) Prerequisite: CS 401 or consent of the department faculty.

CS 450 Computer Networks: Connecting the Parts and Whole—Frictionless Flow of Information On-campus version

Course video description

Course video description

The goal of this course is to learn the concepts, architecture principles, and terminology of computer networks by exploring how networks work and developing network applications. This course follows the top-down approach to understanding networks by using the Internet's architecture and protocols as the primary example of an implementation of network principles. We start at the application layer and continue through the transport layer, network layer, link layer, and the physical layer of computer networks. Students develop several network applications and complete several labs designed to trace and understand the predominant network protocols in use in the Internet. (4 units) Prerequisite: CS 401 or consent of the department faculty.

CS 456 Software Testing

This course goes ... (4 credits) Prerequisite: CS 401 or consent of the department faculty.

CS 465 Operating Systems

Course video description

Course video description

An operating system controls the central resources of the computer system and allocates them to individual users. Course topics include sequential and concurrent processes, mutual exclusion, resource sharing, process cooperation, deadlock, resource allocation, processor scheduling, memory management, segmentation and paging algorithms, timesharing systems, scheduling algorithms, and resource protection. (4 units)Prerequisite: CS 401 or consent of the department faculty.

CS 466 Computer Security

This course goes deeply into the three aspects of computer security: confidentiality, integrity and confidentiality. Several models for confidential and integrity security policies are studied. The role of cryptography in assuring confidentiality and integrity is examined. Other topics include authentication, auditing, penetration testing, common vulnerabilities and intrusion detection. The course concludes with the case study of a realistic secure system. Students will be asked to read papers from the security literature and apply them to material given in the lectures. (4 credits) Prerequisite: CS 401 or consent of the department faculty.

CS 467 Secure Coding Practices

This course goes deeply into the three aspects of computer security: confidentiality, integrity and availability. Several models for confidential and integrity security policies are studied. The role of cryptography in assuring confidentiality and integrity is examined. Other topics include authentication, auditing, penetration testing, common vulnerabilities and intrusion detection. The course concludes with the case study of a realistic secure system. Students will be asked to read papers from the security literature and apply them to material given in the lectures.

The course examines the 19 issues that account for 95% of the security vulnerabilities that occur in the field. The issues are:

  1. Buffer Overflows
  2. Format String problems
  3. Integer range errors
  4. SQL injection
  5. Command injection
  6. Failure to handle errors
  7. Cross-site scripting
  8. Failing to protect network traffic
  9. Use of "magic" URLs and hidden fields
  10. Improper use of SSL
  11. Use of weak password-based systems
  12. Failing to store and protect data securely
  13. Information leakage
  14. Improper file access
  15. Trusting network address information
  16. Race conditions (improper thread programming)
  17. Unauthenticated key exchange
  18. Failing to use cryptographically strong random numbers
  19. Poor usability

The final project of the course will analyze and remove vulnerabilities from a web application.

The course will emphasize that a computer programmer needs both broad comprehension and the ability to focus to produce secure software.

CS 470 Artificial Intelligence

The field of artificial intelligence attempts to create computer programs that reflect the values of human intelligence. Course topics include state-space representations, tree and graph searches, predicate calculus and deduction, heuristics, learning and problem solving, natural language processing, expert systems, and programming languages for artificial intelligence. (4 units)

CS 471 Parallel Programming

Course video description

Course video description

The standard processor for all new computers is now a multi-core processor, which has the potential to execute programs much more quickly. However, to utilize this potential, a programmer must have some knowledge of parallel programming techniques. During this course, students will spend most of their time writing and debugging parallel programs. The expected outcome will be to develop a new level of practical programming skill. This skill will not only be useful for programming of multi-core processors, but also operating systems programming and distributed database programming. The software tools used during this course include Microsoft Visual C/C++, Java multithreading library, and OpenMP threading standard. (4 credits) Prerequisite: Knowledge of computer programming using Java, C, or C++.

CS 472 Web Application Programming

Course video description

Course video description

This course provides a systematic introduction to programming interactive and dynamic web applications. The course is intended for individuals with little or no prior web application programming experience. This offering will use Java servlets and JSP for server side processing. The course will introduce HTML and CSS. JavaScript is a focus of the course, and is covered as a functional programming language including jQuery, Ajax, and JavaScript namespaces and modules. It is a prerequisite for the CS545 Web Application Architecture. It does not cover AngularJS or NodeJS, but the JavaScript covered here will prepare you to learn those technologies.
Recent course websites:

Prerequisite: CS 220 or CS 401 or consent of the department faculty. (4 units)

CS 473 Mobile Device Programming

Smart phones (including tablets) were predicted to out-ship the combined global market of laptop, desktop, and notebook computers in 2012. They did so in the last quarter of 2010, two years earlier than predicted! This course will prepare the students to program for a mobile device. The course will be project based, converting a 4500 line HTML5/J-avascript/CSS3 app to a native Android app written in Java. Each student will be assigned a Samsung 7 tablet to use during the course. The first quarter of the course will familiarize the students with the Javascript app and examine the best practices that were employed in writing it. The next half of the course will convert most of the Javascript app to Java. The remaining 1/4 of the course will explore aspects of native Android programming such as the use of the camera and the accelerometer that were not used by the Javascript app. Prerequisite: CS472 or consent of the department faculty. (4 units)

CS 475 Computer Graphics

Recent advances in Computer Graphics hardware and software have made novel applications feasible in fields such as: Computer Games, Scientific Visualization, 3D Medical Imaging, Virtual Reality, and other innovative user interfaces... In this course we will cover the basic algorithms and mathematical concepts underlying the creation of 2D and 3D graphics. Several short projects will be completed using OpenGL and Java3D. The course evaluation will also include one theoretical exam and one project in which teams of students will create an interactive 3D application. Students who take this course will have a plus when sending their resumes to companies working on this growing and exciting field. (4 units)

CS 476 Image Processing

The subject that will be covered are- Fundamentals of digital imaging, Image enhancement in the spatial domain (e.g., contrast brightness and gray level transformations, histogram and its equalization, spatial filtering: blurring, sharpening, median), Image enhancement in frequency domain (Fourier transform, convolution theorem, filtering in frequency domain), Image restoration (from blur and noise), Color spaces, color processing, morphological image processing, image segmentation (including edge detection, Hough transform, segmentation by thresholding, by split-and-merge and by watershed), Image compression-main structure of JPEG and MPEG, some on pattern recognition. Also- learning to work with MATLAB language.

CS 488 Big Data Analytics

Data and its impact on business has become inevitable in today’s world. The Big Data Analytics course is meant to provide deep understanding of what insights big data can serve with practical experience over tools used for examining large and varied data sets. The course will introduce you to techniques and methodologies used to extract hidden patterns for defining data trends, i.e. frequent pattern extraction, unknown correlations, association rule mining, regression, market basket data analysis, anomaly detection, clustering, etc., for helping business organizations make better decisions. The course will guide you through basic Hadoop, MapReduce, Spark, Pig, Hive, R coding, WEKA and usage of AWS services to apply modeling techniques learned for exploitation of Big Data problems; followed by recommender system based final project.

On Completion of the course, students would be able to apply modeling and analysis techniques over any semi-structured or unstructured business data, clean data, leverage and explore data, project findings, and use data mining techniques to solve real-world problems, and use latest Big Data analysis tools and technologies. (4 units) Prerequisite: Consent of the department faculty

CS 501 Advanced Computer Architecture

This course presents the methods, principles, and metrics of computer systems architecture. The interactions of hardware components, system architecture, and software algorithms are the basis for evaluating the performance and characteristics of a range of advanced computing systems. Topics include pipelined and multiprocessing architecture, parallel processing, distributed processing, case studies, and comparisons of existing systems. (4 units)

CS 505 Advanced Programming Languages: The Integrated Source of All Programming Languages as a Basis for Understanding and Applying Principles of Programming

Course video description

Course video description

This course considers advanced topics in programming language design with emphasis on formal methods and abstraction mechanisms. Topics include data and control abstraction, formal specification of syntax and semantics, proofs of program correctness, non deterministic programming, advanced control structures, and study of specific languages. (4 units) Prerequisite: CS 401 or consent of the department faculty.

CS 522 Big Data

Modern information processing is defined by vast repositories of data that cannot be handled by traditional database systems. This course covers latest technology developed and used by industry leaders to solve this problem in the most efficient way. Specific topics covered include MapReduce algorithms, MapReduce algorithm design patterns, HDFS, Hadoop cluster architecture, YARN, computing relative frequencies, secondary sorting, web crawling, inverted indexes and index compression, Spark algorithms and Scala . (4 units) Prerequisite: CS 435 Algorithms.

CS 523 Big Data Technologies

In just a few short years, big data technologies have gone from the realm of hype to one of the core components of the new digital age. These technologies are very useful for transforming Information to Knowledge.

The aim of the course is to add some really important tools in your arsenal to help you solve various big data problems. We’ll start with giving answers to questions like “What is Big Data? Why is it important or useful? How do you store this big data?” We’ll then study different tools and programming models from the big data technology stack which will help us to analyze the data. Topics include some of the projects in the Hadoop ecosystem such as MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper and Apache Spark ecosystem projects. We’ll also cover an introduction to AWS and EMR. You'll be mainly working with a single node Hadoop distribution of Cloudera. (4 units) (No prerequisites)

CS 525 Advanced Software Development: The Structures and Patterns of Software that Embody Knowledge of Good Design

Course video description

Course video description

This course considers the current methods and practices for good design of software systems. Topics include: software design patterns, frameworks, architectures, and designing systems to apply these multi-level abstractions. (2-4 credits) Prerequisite: CS 401 or consent of the department faculty.

CS 544 Enterprise Architecture

Course video description

Course video description

This course covers enterprise application development and best practices. This course explains how to work with and handle huge data, while maintaining flexibility and robustness. The course uses the Java EE 6 Architecture. This course covers enterprise applications scalability and enterprise service reusability. The course also covers Web-Services, and JMS.

The course covers the standard Java Specifications; JPA, EJB, JMS, JTA, JAX-WS, JAXB, testing. The course also covers some SOA.

The course uses a text book, you are expected to have a hard copy of this book before day one of the course, and price is less than $50. Electronic copies of the book are not acceptable.

Students are expects to have exposure to database programming, and fundamental web programming, HTML, CSS. Students should also know concurrencies, and Design Patterns.

Prerequisites: If you have taken ASD and/or WAA then you have the prerequisites for this course. If you did not take these courses then you should contact the instructor (This email address is being protected from spambots. You need JavaScript enabled to view it.) to schedule a meeting to check if you know the course prerequisites. Otherwise you will not be able to choose this course during course registration. There may be a qualifying pretest before course selection for students that didn’t take WAP or WAA.

Major topics that students are expected to know before the course: SQL, HTML, HTTP, race-conditions in concurrencies, JSP, static VS dynamic web pages. Design Patterns that are essential to understanding some course topics: Proxy, Observer, Chain of Responsibility, and Template. (4 units)

CS 545 Web Application Architecture and Frameworks

Course video description

Course video description

Web applications have a client GUI in an Internet browser and communicate with a web container through the HTTP protocol. Web applications have become a major form of software delivery with the rise of Internet and Intranet computing over the last 20 years. To a great extent they are replacing the traditional method of delivering software applications as installable binaries.

To be stable, maintainable, and extensible, complex systems must have a good architecture. Over the last 20 years a common system architecture has evolved that is at the basis of most modern web applications. There are a variety of system principles and design patterns that are involved in modern web applications. The most important architectural pattern in modern web applications is the Model-View-Controller (MVC) architecture for web applications.

This course focuses on the protocols, principles, design patterns, and architecture of web applications, and web development frameworks that embody such principles and architecture. The course also focuses on principles and patterns that are general across platforms and frameworks. However, to investigate these principles in depth the course will examine and work with at least one representative web framework in depth. The Java Server Faces (JSF) framework is a specification based framework supported by a consortium of industry groups, and incorporates principles and technologies from many widely used web application frameworks. (4 units) Prerequisite: CS 472 or consent of the department faculty.

CS 547 Distributed Architecture

This course will focus on enterprise architecture principles, patterns and design considerations. We will investigate how to implement an object model in a distributed application environment using distributed technologies such Enterprise JavaBeans (EJB) and see how such technologies allow us to build robust and scalable enterprise applications that include object persistence, remote accessibility, security, transactions etc. (4 units)

CS 572 Modern Web Applications

In this course you will learn the Reactive Programming Architecture of SPA (Single Page Web Applications) along with all the necessary skills to build a full Modern Web Application. Technologies include: NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase and NoSQL databases (MongoDB). The course will cover:

  • How the C++ V8 engine and asynchronous code work in Node and the Node event loop..
  • How to structure your code for reuse and build Restful API using modules and ExpressJS..
  • How NoSQL databases work: Mongo Shell, Aggregation framework, Replica Sets, Clustering, Shards, Mongoose ORM.
  • Deep understanding of how Angular 2 (backed by Google) works, Change Detection, Reactive RxJs programming with Observables and Subjects, The Shadow DOM, Zones, Modules and Components, Customized Directives and Pipes, Services and Dependency Injection, Forms (Template Driven and Data Driven), Data Binding, Routing and Guards, HTTP client, Authentication and Route Protection, CLI and Unit Test.
(4 units)

CS 575 Practicum in Software Development

In this practicum course, students perform computer-related tasks in a technical professional position. The tasks performed may be in the design and development of new systems or the application of existing systems for specific purposes. Practicum job descriptions are formulated by the employer and the student, and require approval in advance by one of the graduate faculty of the department, in consultation with the practicum supervisor where the student is placed. (This course is primarily for students in the internship or cooperative programs.) (0.5-1 unit per block - may be repeated.)

CS 582 Machine Learning

Machine Learning, the field of study that gives computers the ability to learn from data, is at the heart of almost every scientific discipline, and the study of generalization (that is, prediction) from data is the central topic of machine learning. This course gives a graduate-level introduction to machine learning and in-depth coverage of new and advanced methods in machine learning, as well as their underlying theory. It emphasizes approaches with practical relevance and discusses a number of recent applications of machine learning, such as Data Mining (in Big Data / Data Science, Data Analytics), Natural Language Processing, Computer Vision, Robotics, Bioinformatics and Text and Web data processing. Machine Learning is used in various industries including Financial Services, Oil & Gas, Health Care, Marketing & Advertising, Government, Internet and Internet of Things.

This course covers a variety of learning paradigms, algorithms, theoretical results and applications. It uses basic concepts from artificial intelligence, information theory, statistics, and control theory insofar as they are relevant to machine learning. Topics include: supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines, decision tree, Bayesian learning & optimization); unsupervised learning (clustering, dimensionality reduction, kernel methods); learning theory (bias/variance tradeoffs; VC theory; large margins); reinforcement learning and adaptive control. Other topics include HMM (Hidden Markov Model), Evolutionary Computing, Deep Learning (With Neural Nets) and designing algorithms whose performance can be rigorously analyzed for fundamental machine learning problems.

An important part of the course is a group project. Major open source tools used for parallel, distributed and scalable machine learning will be briefly covered to help students doing the projects. (4 units) Prerequisite: None.

SCI-33 Science and Technology of Consciousness

The 33-lesson Science and Technology of Consciousness (STC) course presents the interdisciplinary basis of the entire graduate Computer Science program. The course is based on a series of videotaped lectures by Maharishi Mahesh Yogi on the nature, range, qualities, and principles of creative intelligence (as expressed in human consciousness and the laws of nature studied by the sciences). Maharishi also presents the expressions of creative intelligence in individual life and its application in every area of society to realize the highest potential. Because Computer Science like all other disciplines is based in the intellectual understanding and experience of the structures of Natural Law, the general principles brought out in this course provide a unifying theme for all of the more specific principles studied in all other courses in the curriculum.

In addition, during this course students learn the Transcendental Meditation Technique, which enlivens these same underlying qualities of intelligence in them, providing increased creativity, alertness, and intelligence as a basis for increased success in every area of study, their profession, and their life.

Forest Academy

Forest Academy is a 2-week course which is an opportunity for the students to deepen their understanding of their own personal growth. Topics include skill in action, higher states of consciousness, cultural values, mind and body, creativity, collective consciousness, and world peace.

Note: The academic content of the M.S. in Computer Science program is subject to change.

back to top

Site Map