February Entry Deadline: December 31st 5pm CST
Javascript
JavaScript is the programming language of HTML and the Web
February Entry Deadline: December 31st 5pm CST
Upon graduating from our program, you will have the ability to:
JavaScript is the programming language of HTML and the Web
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 apps are accessed via the internet browser, and web application development is an in-demand skill.
Algorithms are the processes by which we optimize efficiency, performance, speed, and scalability of our applications.
Software that provides an interface to a database for information storage and retrieval.
70 Credits (20 Foundational + 44 Core + 6 STC Credits)
22 Credits (20 Foundational + 2 STC Credits)
(Subject to Change)
STC 506A Science & Technology of Consciousness (2 credits)
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)
CS 105 CCTS Problem Solving with Computational Thinking (4 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
CS 201 Procedural Programming (4 credits)
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
CS 203 Object Oriented Programming (4 credits)
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
CS 221 Data Structures (4 credits)
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
CS 272 Discrete Math (4 credits)
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
48 Credits (44 Core CS + 4 STC Credits)
(Subject to Change)
STC 506B Leadership for Tech Managers (2 credits)
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)
CS 305 Fundamentals of Object-Oriented Programming in JavaScript (4 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.
CS 315 Web Application Programming in JavaScript (4 credits)
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
CS 445 Modern Asynchronous Programming (4 credits)
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
CS 415 Relational and Document-Based Databases (4 credits)
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
FOR 103 Health-Related Fitness (2 credits)
“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)
CS 421 Introduction to Algorithms (4 credits)
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
CS 477 Server-Side Programming (4 credits)
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
CS 568 Web Application Development 1 (4 credits)
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
CS 571 Mobile Application Development (4 credits)
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
CS 569 Web Application Development 2 (4 credits)
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
CS 516 Cloud Computing (4 credits)
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
CS 566 Final Project (2 credits)
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
MGT 5321 Career Strategies in Information Technology (2 credits)
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)
42 Credits (38 Core SD + 4 STC Credits)
(Subject to Change)
STC 506A Science & Technology of Consciousness (2 credits)
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.
SD 400 Problem Solving and Intro to TypeScript (4 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. 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.
SD 405 Web Application Programming in JavaScript (4 credits)
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
SD 415 Object Oriented and Functional Programming in TypeScript (4 credits)
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
SD 500 Modern Asynchronous Programming (4 credits)
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.
SD 421 Algorithms (4 credits)
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
STC 506B Leadership for Tech Managers (2 credits)
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.
SD 540 Server Side Programming (4 credits)
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
SD 545 Web Application Development 1 (4 credits)
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
SD 550 Web Application Development 2 (4 credits)
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
SD 555 Web Application Development 3 (4 credits)
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
MGT 5321 Career Strategies in Information Technology (2 credits)
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
If you already have strong programming experience and prefer to focus on other programming languages, visit our sister program website:
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:
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.
Master’s in Software Development
Maharishi International University
1000 North Fourth St.
Fairfield, Iowa 52557 USA
(800) 563-9673 (call or text)
(641) 819-3013 (call or text)