Learn ‘Hands-On’ Skills with the Latest Technologies in Software Development

Are You Ready to Advance Your Career?

Are You Ready to Advance Your Career?

In consultation with  their Advisors, all students choose Fundamental Courses from the left-hand column below and  Advanced Courses from the right-hand column.

Based on qualifying exams taken when they arrive on campus, only students on the Preparatory Entry Track will need to take the 4-week Fundamental Programming Practices (CS 390) class.  FOR 506 and CS 401 are required for all students. View Graduation Requirements >

Fundamental Courses

  • Your first course is specifically designed to establish the basis of how you can become a top performing computer science professional. The course is rooted in the practice of Transcendental Meditation which leads to fulfillment of your true potential. You will learn about the benefits of TM including the ability to solve complex problems by superior mental functioning enhancing creativity and “out of the box” thinking. The course will focus upon the principles which underpin peak performance in activity by developing an optimal mix of rest and activity. You will develop and experience an ideal daily routine which supports success in life. (2 units)

  • FPP 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, hash tables, and sets), the exception hierarchy, file i/o and streams, and JDBC. (4 credits) Prerequisite: For undergraduate students: CS 221; for graduate students: consent of the department faculty (4 units)

  • MPP 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)

  • This course covers the essentials of DB design principles and an introduction to SQL and NoSQL databases.

    Topics include: Relational DB design principles, Normal Forms, Primary and Foreign and Unique keys; Queries (Aggregation, Joins, Sorting); Transactions; Document-based DB design principles, Indexes, Scaling Databases; Availability and recovery (dump, restore, export, import); Database as a Service. No Pre-requisites.

    (4 units)

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

  • Software Engineering is a course that introduces the student to best practices in software development through a software development methodology. Students have already had some experience in previous courses with the Object Oriented paradigm and have used some of the basic UML diagrams for purposes of modeling relationships between software objects. In Software Engineering, the student will develop skills in putting these tools together to produce robust, easily maintainable software. A software development methodology describes when and how OO 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 the RUP (Rational Unified Process) development methodology.

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

  • This course goes deep into asynchronous web programming concepts and covers the most essential design patterns for JS, that includes the observer pattern, factory, decorator, and many more. It also covers working with Web API and Immutable data structures.

    Topics include: Collaborative Git; Intro to TypeScript and Bundlers; Asynchronous JavaScript; Event-Loop; History API, Geolocation API; Ajax (HTTP, Ajax, JSON, Fetch, Introduction to CORS, Debugging); Promises and Async/Await; Reactive Programming; RxJS Observables and Operators; Design Patterns: Module, Prototype, Singleton, Observer, Façade, Factory, Decorator, Proxy, Strategy, Memoization; Modern Web Browsers. No pre-requisites.

    (4 units)

  • The future of computing is parallel. The increase in sequential performance has plateaued as processor designs have hit the limits of miniaturization, clock frequency, power, and heat.  In 2005 the number of processor cores abruptly started increasing from a single core to multiple cores, creating the potential to execute programs much more quickly. However, to utilize this potential, a programmer must have some knowledge of parallel programming techniques.

    This course teaches students the fundamental concepts of parallel programming in the context of Java 9. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple cores at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as Multi-Threading, Streams, and Executors) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices.

    The software tools used during this course include Microsoft Visual Studio, Java multithreading library, and OpenMP threading standard. (4 units) Prerequisite: Knowledge of computer programming using Java, C, or C++.

    For further information, watch this five-minute video made by the Professor of this course:


  • 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 NodeJS and the Express framework for server-side processing.

    The course begins with a review of the fundamentals of HTML and CSS, with a special focus on web page layout using CSS. JavaScript is the programming language used thorough the course including functions, objects, modules, jQuery framework, Ajax, and Promises. Students spend most of their time programming a series of increasingly complex and sophisticated websites. A capstone project during the last week of the course creates a website with a SQL database backend that is accessed asynchronously by the client for optimal performance.

    This course is a prerequisite for CS545 Web Application Architecture and CS572 Modern Web Applications. Prerequisite: CS 220 or CS 401 or consent of the department faculty

    (4 units)

  • Developing Android programs is an exciting and potentially lucrative experience. Android development opens up the world of creativity to the programmer. It allows you to express yourself in ways you never dreamed of in a digital world where you can create a product and make it available to billions of users in just one click of a button. This course will teach how to develop Android applications using the Kotlin programming language.

    Topics include: Setting up your computer for Android programming; Manifest basics; Layouts, Activities, Views and UI components; Working with Intents, Fragments, and Shared Preferences; Web View and HTML; Working with Multimedia; Android Jetpack components, Room Database, and JSON; Understating Sensors; Localization; Publishing app into Google play store. (4 units) No Prerequisites are required.

  • This course focuses on using JavaScript at the backend (NodeJS). Students will learn how NodeJS works and gain a deep understanding of its core application programming interface (API). The course covers how the JS compiler engine (V8) works, how to structure code using modules, and how asynchronous code works in Node and the Node event loop. The course also teaches Node Package Manager (NPM), how to build a web server, how to work with Express framework, and how to use ODM such as Mongoose to manage MongoDB. Students will learn all the techniques that define a modern web application, including authenticating users with JSON Web Tokens, persisting data in the database, and building a Restful API. Other computer science concepts are also covered.

    Topics include: HTTP & Rest API design; Stateless vs stateful applications; Node API; Node Package Manager (npm); Model-Controller architecture, Express framework, and middlewares; Server-side routing; Token-based authentication. No Pre-requisites.

    (4 units)

  • Big Data is the new natural resource: data is doubling every 12-18 months. This new Big Data Analytics course covers the fundamental concepts and tools for mining large diverse data sets to generate new insights. You will master the use of R language to create Wordcloud, Pagerank, Data Visualization, Decision Trees, Regression, Clustering, Neural Networks, and more. You will work with some large multi-million record datasets, and also mine Twitter feeds. You will learn Hadoop/MapReduce and Streaming Data concepts, and will explore other Apache Big Data Projects such as Spark, Flink, Kafka, Storm, Samza, NoSQL through individual research papers. You will work in groups on open projects from Kaggle.com to compete for prize money by solving best-of-breed data-analytic challenges. You will also learn to use industry-leading IBM SPSS Modeler, and open-source data mining platforms. The course will also use a wide range of video training materials from MIT, Coursera, Google, and elsewhere. (4 units) Prerequisite: Consent of the department faculty

  • Software Development is the systematic process of conceiving, specifying, analyzing, designing, programming, testing, documenting and maintaining involved in the production of some System or Application Software.

    In this course, students will learn how to produce enterprise-grade software solutions, by taking requirements from conception through analysis, design, implementation and testing to delivery and deployment of working software. It will teach a range of principles, best practices and related tools and technologies and how these are used and applied in the production of high‑quality, robust software solutions. The techniques and tools covered will mostly be centered around, though not limited to, the Java software platform.

    We will study the techniques for how to identify and elicit the correct requirements for a software product, how to analysis these requirements and select a suitable software solution architecture and create an appropriate design. And how to implement the design in code, including testing and ultimately how to build and package the resulting artifact for delivery/deployment. We will consider various modern deployment mechanisms, including the Cloud. Pre-requisite: CS 401

    Topics will include:

    • Database Design and Development
    • Object-Oriented Analysis and Design
    • Domain modeling
    • Systems Architecture
    • Web Application Development using Spring Web MVC
    • System implementation and Testing; including Unit Testing, Mocking and Integration Testing
    • Software Security – including Identity and Access Management
    • Containerization and Container technologies

    (4 units)

  • The goal of this course is to provide students with knowledge and skills in leadership, including communication skills as preparation for future leadership roles.

    By the end of this course, students will understand the answers to key questions regarding effective leadership, including the following:

    Are there ‘natural-born’ leaders?

    Do you have to have charisma to lead effectively?

    What one asset is required to be a leader?

    What is the difference between managing and leading?

    What are the many ‘intelligences’ required to lead in this era?

    What is ‘management malpractice’ and how does it lead to self-sabotage?

    Knowing that feedback is essential to the leading process, how do we get over the fear of giving and receiving it?

    What is the source of 80% of the problems found in the workplace?

    Is there scientific research available to assist the organization in improving it’s individual and team leadership skills?

    Guest speakers will include eminent entrepreneurs, computer scientists, philanthropists, Academics and other prominent leaders in society.

    (2 units)

Advanced Courses

  • Project Management introduces the student to learn through practical development of a project, lectures, reading, experiencing the Project Management Framework,  its body of knowledge areas (10 knowledge areas and related processes) and deployment.  Students work through a real project implementation and experience the role of project management in all phases of the Software Development Life Cycle using an application development methodology.

    Students get real experience in project planning, requirements management, scope management, coding standards, cost estimations for module / code in terms of dollar value as well as in terms of the man hours, schedules management, quality management, risk management and communications management.  By the end of the course, students will have a running application that is developed using the PM processes used in industry. (Starting from requirements through production deployment).  The project is developed using the latest Java Technologies and their frameworks with the Web services and Design Patterns.

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

  • This course will cover cloud programming patterns and will allow students to practice working with various web cloud services, including AWS Serverless functions.

    Topics include: Identity & Access Management (IAM); Virtual Private Cloud (VPC), Network Access Control Lists – NACL, Subnets, Availability Zones, Simple Storage Service (S3), Elastic Cloud Compute (EC2), Simple Notification Service (SNS), Elastic Load Balancer (ELB), Auto Scaling, Route 53, API in the cloud; AWS Lambda, Serverless; Web Services; Application Deployment, Final Project. (4 credits). (No prerequisites)

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

  • 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 into Knowledge. The aim of the course is to add some important tools to your arsenal to help you solve various big data problems.

    The course starts with giving answers to questions like “What is Big Data and it’s importance? How do you store big data reliably and cheaply? Which tools to use to find helpful information from this big data? etc.” In this course, students will study different tools and programming models for analyzing big data. Topics include Hadoop ecosystem projects such as MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper as well as Apache Spark ecosystem projects such as Spark SQL and Spark Streaming. Students are also given a chance to build a complete big data pipeline starting from data collection in real-time, processing, analyzing and finally viewing the results in graphical format on dashboards. Students will be mainly working with a single node Hadoop cluster of Cloudera distribution. (4 units) (MPP is the only prerequisite)

  • With the rapid growth of data from various sources, most businesses and organizations have become highly data driven. Extracting key information from such data and converting that into knowledge and intelligence is the key function of Big Data Analytics. That is why more businesses are increasingly spending more money on Data Analytics. This is now further accelerated by rapidly growing Digital Transformation. This Big Data Analytics course covers the fundamental concepts of analytics, algorithms and tools for mining large diverse data sets to generate new business insights.

    All major analytics – including Descriptive, Predictive, Prescriptive and Diagnostic will be covered. It will cover algorithmic approaches to analyzing large datasets (unstructured, mixed, structured, graph & streaming): Machine Learning (Neural Networks, Deep Learning, Decision Trees, Random Forest and more), AI, Natural Language Processing (NLP), Statistical and streaming algorithms, over modern distributed analysis platforms (e.g. MapReduce, Hadoop, Spark,) for Regression (prediction), classification, clustering, recommendation systems and more. Advanced Big Data Analytics, especially Causal Analytics will also be covered. Python / R programming languages will be mostly used. Students will also do a group project to solve a real-life problem using Big Data Analytics.

    (4 units) Prerequisite: Consent of the department faculty

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

  • This course focuses on teaching the principles and practices used when developing larger-scale enterprise applications. We will examine the different architectural layers that are frequently used and different technologies associated with these layers, including Object Relational Mapping (ORM), Dependency Injection (DI), Aspect Oriented Programming (AOP), and integration with other applications through Web Services (RESTfull and SOAP), Messaging and remote method invocation. Must have a working knowledge of relational databases and SQL. If you do not have a strong course or good working knowledge of SQL you should sign up for CS422 DBMS before signing up for EA. (4 units)

  • This course focuses web applications in an enterprise setting. An enterprise application is a large software system designed to operate in a large organization such as a corporation or a government. Enterprise applications are complex, scalable, component-based, distributed and mission critical. This course, CS545, focuses on the front end or presentation layer of an enterprise web application. CS544 Enterprise Architecture is a companion course that focuses on the back end or business layer, including business logic, transactions, and persistence. CS472, Web Application Programming, is a prerequisite course that covers HTML, CSS, JavaScript, servlets and JSP.

    The course teaches principles and patterns that are general across platforms and frameworks. The course will examine and work with the two predominant Java web frameworks, Java Server Faces (JSF) and SpringMVC. JSF is a component based framework and is the official presentation framework specification for the Java Enterprise Edition technology stack. SpringMVC is part of the Core Spring framework and has become the most widely used Java web framework in recent years. (4 units) Prerequisite: CS 472 or consent of the department faculty.

  • React is the most popular library for building powerful web applications. In this course, students will learn how to use React and ES6 to build robust, scalable applications from the ground up using the latest Redux patterns to maintain their application state.

    Topics include: Component-based web application development, Components Design Patterns, Consuming rest APIs, Persistence with browser API, JSX and React API (props, proptypes, events, refs), Application data flow, and Deploying React apps. Prerequisites WAP or CS 477.

    (4 units)

  • In this course, students learn Reactive Programming Architecture of Single Page Web Applications (SPA) along with all the necessary skills to build a full modern web application using TypeScript and Angular. Students gain a deep understanding of how Angular works, including: Change detection; Reactive RxJs programming with observables and subjects; The Shadow DOM; Zones; Modules, components, custom directives, and pipes; Services and dependency injection; Angular compiler: JIT and AOF compilation; Forms (template driven and data-driven); Routing, guards, and route protection; HTTP client; and JWT JSON Web Token authentication. Prerequisites: WAP or CS 477.

    (4 units)

  • This course transitions from web development to mobile application development using React Native, a popular framework from Facebook that enables cross-platform native applications to run using JavaScript without Java or Swift. The course introduces modern JavaScript–JavaScript XML (JSX)–a JavaScript extension. Students gain experience with React Native and its paradigms, application architecture, and user interfaces. The course culminates in a final project in which students implement a mobile app entirely of their own design. Prerequisites: WAA or CS568.

    (4 units)

  • 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 (backed by Google) works, Change Detection, Reactive RxJs programming with Observables and Subjects, The Shadow DOM, Zones, Modules and Components, Custom Directives and Pipes, Services and Dependency Injection, Angular Compiler, JIT and AOF Compilation, Forms (Template Driven and Data Driven), Data Binding, Routing, Guards and Route Protection, HTTP client, JWT JSON Web Token Authentication.

    (4 units)

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

  • Machine Learning (ML) is 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.

  • Artificial Intelligence (AI) is the discipline that attempts to build and understand Intelligent Systems. Computers with human level intelligence would have a huge impact to the society. Intelligent Software Agents and Multi-Agent Systems are rapidly growing and helping in many areas like Digital Transformation, Automation, Conversational Systems, Web Search, Robotics, Manufacturing, Health, Pharmaceutical, Banking, Supply Chain, Autonomous Driving, Advertisement, Games, just to name a few. AI drives a multi trillion dollar industry. This course will teach the foundations of AI and give students a practical understanding of the field. Topics include the core concepts of AI – intelligent agents, multi-agent systems, intelligent search, first and higher order logic, knowledge representation, reasoning, perception, learning, semantics (NLP, Image, Object..), planning, decision making, acting, reactive, deliberative, rational, adaptive, communication and interaction. The course emphasizes approaches with practical relevance and discusses a number of recent popular applications of AI. Major open source tools & programming languages for AI (including Low code & No code) will be briefly covered. Students will also do a group project to solve a real-life problem using AI.

    (4 units) Prerequisite: Consent of the department faculty

  • In this course we will look at the techniques, principles and patterns of how to design flexible, scalable, testable and resilient software systems using microservices. We will study how we can split up large applications into smaller microservices that are easier to build and other advantages compared to monolithic enterprise applications. A distributed microservice architecture also gives many challenges. We will study these challenges and how to address them. Topics of this course are architectural styles, integration techniques and patterns, domain driven design, event driven architecture and reactive programming. (4 credits). (No prerequisites)

  • In honor of 50 years of MIU education, the Computer Science Department is happy to initiate our new Golden Jubilee ComPro Tech Talks series.

    Talks are available here.

Study Options

There are 3 study options for International Students.
Each provides an MS in Computer Science.
All have entry dates of February, May, August or November.

ProgramsMonths of On-Campus StudyPaid PracticumDistance Education (DE) During Practicum
CPT8-9Up to 2 years CPT4 DE Courses
OPT8-9Up to 11.5 months CPT + 3-year OPT (optional)4 DE Courses
Full-time on Campus12-133-year OPT optionNA

“The first time I heard about the MSCS program, I doubted it. I could not believe that something like this exists. But one day, a friend of mine joined the program. That was when I confirmed that it is real. Then I resumed my application process. Well! It is true, I am here, I have completed the program and I am so happy.”

Are You Ready to Start a New Career?

© Copyright - Maharishi International University, Master's in Computer Science - Computer Professionals Program℠ Privacy Policy

New Recruiting tour of W. and N. Africa December 7-22

> See details and reserve your free ticket

(Tickets are now available for all 5 events)


We have found that many countries have very delayed interview dates. Please see Visa Appointment Wait Times (state.gov) to find out the length of time to get an interview date for your country/city.

If the interview waiting time is more than 2 months, we encourage you to apply and complete your application immediately, even if you are planning to apply for a future entry. This way you can complete the application process, get your I-20, and then get an interview date. You must have an I-20 to get the interview date.  If the date is earlier than you plan to come to the U.S., you can always postpone your arrival date once you get the visa. We would just issue you a new I-20 for the entry date for which you plan to come.

For questions regarding this information, please contact our admissions office at admissionsdirector@miu.edu.

Ask Yourself These 5 Questions:

  1. Do you have a Bachelor's degree in a technical field? Yes or No?

  2. Did you have good grades in your Bachelor’s degree? Yes or No?

  3. Do you have at least 12 months of full-time, paid work experience as a software developer after your Bachelor’s degree? Yes or No?

  4. Are you currently working as a software developer? Yes or No?

  5. Are you available to come to the U.S. for classes (this program is not available online)? Yes or No?

If you answered ‘yes’ to all the above questions, you may apply (Although this does not guarantee that you will be accepted.)