February Entry Deadline: December 31st 5pm CST

HANDS-ON CAREER-FOCUSED COURSES

Learn JavaScript Coding Skills

Upon graduating from our program, you will have the ability to:

  • Understand how web technologies work and can learn new ones as they arise.
  • Build full-stack web applications at any scale. Full stack means both backend and front.
  • Javascript

    JavaScript is the programming language of HTML and the Web

  • Mean stack

    MEAN is a free and open-source JavaScript software stack for building dynamic websites and web applications. The MEAN stack is MongoDB, Express.js, AngularJS, and Node.js

  • Web Applications

    Web apps are accessed via the internet browser, and web application development is an in-demand skill.

  • Algorithms

    Algorithms are the processes by which we optimize efficiency, performance, speed, and scalability of our applications.

  • Database Systems

    Software that provides an interface to a database for information storage and retrieval.

2023-2024 Curriculum

Standard Track – 11 Months

70 Credits (20 Foundational + 44 Core + 6 STC Credits)

Foundational Courses

22 Credits (20 Foundational + 2 STC Credits)
(Subject to Change)

  • This course orients students to the University and to Consciousness-Based  education. Students learn the Transcendental Meditation technique and begin to explore the theoretical foundation for higher states of consciousness available through  the  practice of the Transcendental Meditation program. This course discusses  the full range of consciousness from individual experience to a fundamental field of intelligence that underlies all of life and how this range of life is unfolded through Consciousness-Based education. (2 credits)

  • This course focuses on teaching students the higher order (critical) thinking skills needed in computer science (analysis, evaluation, logic and reasoning). The course starts by explaining how computers work, and then focuses on having students read and write pseudo code as an easy way to introduce programming concepts such as variable, selection, repetition, and arrays without having to worry too much about syntax. During the course we will also read and discuss articles on current issues in the study of computer science. We will finish with a programming project in a simple programming language. (4 credits) Prerequisite: STC 108, taken during students’ first semester, or consent of the department faculty

  • This course introduces the fundamental concepts related to computer programming, preparing students with the skills to write basic computer programs, and the knowledge to understand basic programs written by others.

    Topics include: built-in data types, flow control using conditionals and loops, arrays, console I/O, recursion, using libraries, and using classes to create their own data types. (4 credits) Prerequisite: MATH 162

  • This course covers programming in Java, specifically focusing on object-oriented concepts and creating GUI applications.

    Topics include: classes and objects, primitives and references, inheritance and polymorphism, interfaces and abstract classes, exception handling, GUI programming in Swing, and serialization and file I/O. (4 credits) Prerequisites: Math 162 and CS 201

  • Students use computer programming laboratory problems to apply the principles of data structure organization in a practical environment and develop advanced programming skills. The organizing power of knowledge is found to be the source of order in computer data structures.

    Topics include: abstract data types, internal representation of data, stacks, queues, linked lists, hash maps, binary trees, heaps, red-black trees, 3-4 trees and B trees. (4 credits) Prerequisites: MATH 162 and CS 203

  • Discrete mathematics is becoming increasingly important because of its wide applicability in computer science, as well as in management and the other sciences. Two key processes in discrete mathematics studied in this course are algorithmic problem solving and recursion.

    Topics include: logic and sets, relations and functions, vertex-edge graphs, recursion, and combinatorics. (Same as MATH 272) (4 credits) Prerequisite: MATH 162

Core Computer Science Courses

48 Credits (44 Core CS + 4 STC Credits)
(Subject to Change)

  • 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 its individual and team leadership skills? Guest speakers will include eminent Entrepreneurs, Computer Scientists, Philanthropists, Academics and other prominent leaders in society.

    (2 credits)

  • In this course, students learn the hidden potential of JavaScript functional language, and ECMAScript6 (ES6) features. Students learn object-oriented programming (OOP) principles and the particular flavor of JavaScript’s dynamic object model. Students will learn to solve a few common JavaScript problems including the following concepts: Usage of NodeJS, Intro to standard JavaScript professional programming conventions including unit testing, JSDoc, JS linters.

    Topics include: Intro to Git, Basic HTML5, Data types, Arrays, Variables, Conditional statements, Expressions and operators, Traditional looping, Scoping, global scope, Imperative JavaScript vs Object-Oriented JavaScript vs Functional Style; Closures; ES6 – arrow functions, rest operator and destructuring; Pure Functions; Higher-order functions; The object model (inheritance, prototype-based OOP, creating hierarchies); Classes (function constructors); The meaning of ‘this’; Using call() and apply() and bind(); Working with objects (creating objects, methods); Call-stack; Callbacks; Array new API: Map, Reduce, Filter; Final project.

    (4 credits) Prerequisites: None for accelerated track MSD students. A minimum GPA of 3.3 or higher is required for standard track MSD students.

  • In this course students learn

    In this course students learn JavaScript in Browsers, How to Get Input and Output, Timers and Intervals, How to Script Forms, The Document Object Model (DOM) manipulation, DOM selectors, and events handling, obtrusive and unobtrusive events handling, Mouse and Keyboard events, CSS box model and intro to layout, Intro to Bootstrap, CSS3, Responsive layouts, CSS Flexbox and Grids. Raster/Bitmap vs Vector Images. How to code SVG scalable vector graphics. Final project.

    (4 credits) Prerequisites: CS 305

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

    (4 credits) Prerequisites: 301, 303

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

    (4 credits) Prerequisites: CS 301, CS 303, CS 445

  • “Physical Activity to Promote Longevity and Fitness for Life” –  This course presents the latest knowledge from Western science and the Maharishi Consciousness-Based Health Care  program concerning the optimum daily routine for establishing the foundation for  excellent lifelong  health and growing enlightenment. The major focus is on the details of the ideal routine of sleep, diet, exercise, meaningful activity, recreation, and the importance of the regular experience of pure consciousness for optimum health and evolution. This course combines both lectures and physical activity labs.

    (2 credits  —  may not be repeated for credit — may be substituted for another Forest Academy at the MSD department’s discretion)

  • In this course, students learn core computer science concepts for writing efficient and effective algorithms. Using algorithms in programming allows one to improve the efficiency, performance, speed, and scalability of applications. Students learn what algorithms are, why they are important, and how to code them in JavaScript. Other important programming concepts are learned along the way, such as functional programming, time complexity, recursion, and other important concepts. This course is useful for anyone interviewing for engineering jobs at both large and small companies. Interviewers often ask candidates to write algorithms out in code, and this course prepares students to do that, and help them to excel in technical interviews.

    Topics include: Graph algorithms, Computational complexity (worst, best, average), Runtime complexity, Binary Trees, Sort and search algorithms, and Classic algorithms (Palindromes, Anagrams, Matrix Spiral, Fibonacci).

    (4 credits) Prerequisite: CS 311

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

    (4 credits) Prerequisite: CS 445

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

    (4 credits) Prerequisite: CS 477

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

    (4 credits) Prerequisite: CS 570

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

    (4 credits) Prerequisite: CS 474

  • 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) Prerequisites: CS 477, CS 568, CS 571, CS 569

  • In this project, students will apply the tools and technologies they have learned to create and deploy a web or mobile app, which involves building a full stack back-end API and a user interface using any front-end framework along with a supported mobile application.

    (2 credits) Prerequisites: CS 477, CS 568, CS 571, CS 569, CS 516

  • This course has a practical focus on preparing MSD students to gain employment after they graduate. Students learn networking strategies, practice interviewing techniques, and use the telephone and Internet for extending their professional networks. They also develop scripts for introducing themselves and describing their achievements and capabilities with confidence in various formats, writing about themselves in the cover letter, resume, and portfolio, and speaking about themselves and what they can offer to potential employers.
    Students extend their preparation into an active job search with employers. Technical interview training is provided by MSD Faculty. Management Faculty provides application and interview coaching support that results in continuous self-improvement and self-awareness for being successful in starting a new job. Job success is further supported by students developing: personal budgets, IT project management skills, and professional communication skills. (2 credits)

One Year Program

42 Credits (38 Core SD + 4 STC Credits)
(Subject to Change)

  • This course orients students to the University and to Consciousness-Based  education. Students learn the Transcendental Meditation technique and begin to explore the theoretical foundation for higher states of consciousness available through  the  practice of the Transcendental Meditation program. This course discusses  the full range of consciousness from individual experience to a fundamental field of intelligence that underlies all of life and how this range of life is unfolded through Consciousness-Based education.

  • This course focuses on teaching students the higher order (critical) thinking skills needed in computer science (analysis, evaluation, logic, and reasoning). The course starts by explaining how computers work, and then focuses on having students read and write pseudo code as an easy way to introduce programming concepts such as variable, selection, repetition, and arrays without having to worry too much about syntax. We also read and discuss articles on current issues in the study of computer science. We finish with a programming project in a simple programming language.

    Prerequisites: Passing the pre-enrollment exam.

  • In this course students learn JavaScript in browsers, how to build UI and get input and output, timers and intervals, how to script forms, the Document Object Model (DOM) manipulation, DOM selectors, and events handling, obtrusive and unobtrusive events handling, mouse and keyboard events, CSS box model and intro to layout, introduction to Bootstrap, CSS3, responsive layouts, CSS Flexbox and Grids. raster/bitmap vs vector images, and how to code SVG scalable vector graphics. Final project.

    Prerequisites: SD 400

  • Students learn the hidden potential of JavaScript functional language, and ECMAScript6 (ES6) features. Students learn object-oriented programming (OOP) principles and the flavor of JavaScript’s dynamic object model. Students learn to solve common JavaScript problems. Topics include introduction to Git, basic HTML5, data types, arrays, variables, conditional statements, expressions and operators, traditional looping, scoping, global scope, regular expressions, imperative JavaScript vs. Object-Oriented JavaScript vs Functional Style; closures; ES6 – arrow functions, rest operator and destructuring; pure functions; higher-order functions; The object model (inheritance, prototype-based OOP, creating hierarchies); classes (function constructors); the meaning of “this”; using call() and apply() and bind(); try/catch, error; working with objects (creating objects, methods); recursive algorithms; call-stack; callbacks; array new API: map, reduce, filter; final project.

    Prerequisites: SD 405

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

    Prerequisites: SD 405, SD 415.

  • In this course, students learn core computer science concepts for writing efficient and effective algorithms. Using algorithms in programming allows one to improve the efficiency, performance, speed, and scalability of applications. Students learn what algorithms are, why they are important, and how to code them in JavaScript. Other important programming concepts are learned along the way, such as functional programming, time complexity, recursion, and other important concepts.

    This course is useful for anyone interviewing for engineering jobs at both large and small companies. Interviewers often ask candidates to write algorithms out in code, and this course prepares students to do that, and help them to excel in technical interviews. Topics include Graph algorithms, Computational complexity (worst, best, average), Runtime complexity, Binary Trees, Sort and search algorithms, and  classic algorithms (Palindromes, Anagrams, Matrix Spiral, Fibonacci).

    Prerequisites: none

  • 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 its individual and team leadership skills? Guest speakers will include eminent Entrepreneurs, Computer Scientists, Philanthropists, Academics and other prominent leaders in society.

  • This course focuses on using JavaScript at the backend (NodeJS). Students 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 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; ode API; Node Package Manager (npm); Model-Controller architecture, Express framework, and middlewares; server-side routing; and token-based authentication.

    Prerequisites: SD 500

  • React is the most popular library for building powerful web applications. In this course, students 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: SD540

  • This course teaches students about the fundamental and practical patterns and principles to use in modern web application development. Students study many web patterns such as composition, hooks, uncontrolled vs. controlled, HOC, etc. This course also provides insight into the SOLID principles, one of the famous principles in software development. Moreover, it provides the practical experience to apply these patterns in real projects using ReactJS, the most prominent web application library. Topics: Web Patterns, the SOLID principle, and Unit Tests.

    Prerequisites: SD 540, SD 545

  • 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: SD 540

  • This course has a practical focus on preparing MSD students to gain employment after they graduate. Students learn networking strategies, practice interviewing techniques, and use the telephone and Internet for extending their professional networks. They also develop scripts for introducing themselves and describing their achievements and capabilities with confidence in various formats, writing about themselves in the cover letter, resume, and portfolio, and speaking about themselves and what they can offer to potential employers.
    Students extend their preparation into an active job search with employers. Technical interview training is provided by MSD Faculty. Management Faculty provides application and interview coaching support that results in continuous self-improvement and self-awareness for being successful in starting a new job. Job success is further supported by students developing: personal budgets, IT project management skills, and professional communication skills.

“I prefer the modular system because we focus on one subject at a time. We can go deeper into each course, digest that knowledge, and then progress onto the next course.”

—Kasahun Tahone

Don’t See Your Desired Programming Courses Here?

If you already have strong programming experience and prefer to focus on  other programming languages, visit our sister program website:

Master’s in Computer Science (www.compro.miu.edu) >

Compro Master's in Computer Science Sister Program Courses

We Help You Get a Job with Career Coaching

Our program includes an intensive career strategies workshop to help you prepare to secure a job. Topics include company searches, resumes, interview skills and offer evaluations.

Our experienced career staff is there to guide you through all of this preparation. We also help evaluate your offers including salary and fringe benefits. You’ll get professional help with:

  • Preparing your resume and cover letter
  • How to search for positions
  • Practising telephone and in-person interviews
  • How to work with recruiting agencies
  • How to interview with companies
  • Answering challenging interview questions
  • Networking for job success

Our Coaches are experienced professionals with backgrounds in computer science and writing, editing, business, and IT recruiting.

Live practice sessions: Students practice both telephone and in-person interviewing. Each student is given opportunities to practice interviews and receive feedback.

Are You Ready to Change Your Life?