Module II: Advanced JavaScript

📚curriculum

    • In this module, students will embark on an exciting journey into the world of classes in JavaScript. They will learn how to create reusable templates, known as classes, which serve as blueprints for creating objects. Students will understand the concept of classes and when to utilize them in their code. They will explore the syntax and features of classes, both in the older ES5 syntax and the modern ES6 syntax, and grasp the differences between them. By working with classes, students will be able to encapsulate related data and functionality, creating cleaner and more organized code.

    • Furthermore, students will dive into the fascinating realm of inheritance and subclassing. They will learn how to create child classes that inherit properties and methods from parent classes, enabling them to build specialized classes that inherit and extend the functionality of their parent classes. Through hands-on exercises and examples, students will gain a solid understanding of how inheritance works in JavaScript and how it can be used to create more efficient and maintainable code. By the end of this module, students will have the knowledge and skills to leverage the power of classes and inheritance, empowering them to create scalable and modular JavaScript applications.

  • In this module, students will dive into the powerful concept of higher-order functions in JavaScript. They will learn how to create functions that can accept other functions as parameters and/or return functions as their output. This concept opens up a whole new world of flexibility and modularity in programming. Students will explore the benefits of higher-order functions, such as code reusability, abstraction, and composability.

    Throughout the module, students will practice creating their own higher-order functions and using built-in iterator methods like map(), forEach(), filter(), and reduce(). They will understand how these functions can streamline their code and make it more expressive and concise. Students will also gain a deep understanding of callback functions, which play a vital role in higher-order functions. By the end of this module, students will have a solid grasp of higher-order functions and be equipped with a powerful toolset to tackle complex programming tasks and enhance their coding skills.

  • In this module, students will delve into the world of Big O notation, a powerful tool for analyzing the efficiency and performance of algorithms. They will understand that Big O provides a way to measure how the runtime of an algorithm scales with the size of the input. Students will learn how to calculate and interpret the time and space complexity of different algorithms.

    Throughout the module, students will explore various complexities, such as constant time (O(1)), linear time (O(n)), logarithmic time (O(log n)), and quadratic time (O(n^2)). They will gain an understanding of how different algorithms exhibit different rates of growth and how to determine the most efficient approach for solving a problem. Students will also learn to use visual representations, such as graphs, to better comprehend the rates of growth associated with different complexities.

    By the end of this module, students will have the skills to analyze the efficiency of algorithms, make informed decisions about algorithm design, and optimize their code to improve performance. Understanding Big O notation is crucial for developing efficient and scalable software solutions.

  • In this module, students will explore the concept of promises in JavaScript, which allow for the asynchronous handling of operations and the management of eventual completion or failure. They will understand that promises represent the three states of pending, fulfilled, or rejected and how they can be used to handle asynchronous tasks more efficiently. Students will learn the syntax of promises and how to create and use them in their code.

    Throughout the module, students will dive into various Promise object methods such as then(), catch(), and finally(), which enable them to handle the fulfillment or rejection of promises and execute appropriate actions accordingly. They will also learn how to chain promises together using .then() and how to handle errors with .catch(). Students will gain a visual understanding of promise chaining and how promises can be used in conjunction with arrow functions. Additionally, they will explore the interplay between synchronous and asynchronous code when working with promises.

    By the end of this module, students will have a solid understanding of promises and how they can be leveraged to handle asynchronous operations effectively. They will be equipped with the knowledge and skills to write cleaner, more efficient, and more maintainable code using promises. Understanding promises is crucial for modern JavaScript development, particularly in scenarios where operations rely on external APIs, network requests, or time-consuming tasks.

  • Item descIn this module, students will delve into the world of regular expressions (regex) in JavaScript. Regular expressions are powerful patterns used to match character combinations in strings, allowing for advanced string manipulation and searching. Students will learn the syntax of regular expressions and how to create patterns to match specific character sequences.

    Throughout the module, students will explore the various methods and tools available for working with regular expressions, including online regex testers like RegExr and RegEx_101. They will learn how to use regex for searching and matching strings, including techniques for matching one occurrence or all occurrences of a pattern. Students will also gain an understanding of special characters in regex and how to escape them when needed.

    Additionally, students will discover the practical applications of regular expressions, such as password validation, where regex can be used to enforce specific criteria for password complexity. They will also learn about the RegExp object in JavaScript, which allows for the dynamic creation of regular expressions using variables. By the end of this module, students will have a solid foundation in regular expressions and the ability to leverage them effectively in their JavaScript code for pattern matching and string manipulation tasks.ription

  • In this module, students will explore the concept of recursion in JavaScript. Recursion is the process of a function calling itself multiple times until a problem is solved. The module starts by explaining the base case and the recursive case, which are two key components of a recursive function. Students will learn how to define a base case as the stopping point for recursion and how the recursive case performs actions and calls the function again.

    To understand recursion better, students will also learn about the call stack in JavaScript. The call stack is a data structure that keeps track of function calls, and understanding its behavior is crucial to understanding how recursion works. The module provides visual examples of the call stack in action during recursive function calls and explains the concept of unwinding the call stack.

    The module covers two classic examples of recursion: reversing a string and checking whether a string is a palindrome. Students will learn how to approach these problems conceptually and translate their solutions into recursive functions. They will explore how to establish base cases and recursive cases for these examples and see how the call stack is affected during the recursion process. By the end of this module, students will have a solid understanding of recursion and be able to apply it to solve various programming problems.

  • In this module, students will learn about the HTML Canvas element and its powerful capabilities for rendering graphics and visual images. They will understand how the Canvas element allows for programmatically updating pixel data to create 2D and 3D scenes without the need for frequent updates to the HTML DOM, making it ideal for applications that require frequent rendering, such as games or dynamic visualizations.

    The module starts by introducing the syntax of the Canvas element and how to access it using JavaScript. Students will learn how to create a canvas and obtain the 2D rendering context, which provides methods for drawing shapes, lines, and paths on the canvas. They will explore examples of drawing rectangles, lines, triangles, and even more complex shapes like smiley faces. The module also covers the concept of the Canvas API, which abstracts complex functionality and provides a simpler syntax for creating and updating visual elements.

    Additionally, students will learn about the call stack in JavaScript and its relation to rendering on the Canvas. They will understand the concept of unwinding the call stack and how it relates to the rendering process. The module concludes with a tutorial where students can apply their knowledge to create a simple brick breaker game using the Canvas element.

  • In this game project, students will have the opportunity to showcase their skills in algorithms and object-oriented programming by creating a unique and challenging game using HTML, CSS, and JavaScript. The project aims to provide hands-on experience in visualizing data, implementing efficient programming techniques, and applying the concepts learned in the Advanced JavaScript module.

    Throughout the project, students will face the task of designing a game that progressively increases in difficulty, providing a challenging experience for the players. They will need to provide clear directions for the users to understand the objective and rules of the game. While research and exploration of various aspects of game development may be required, it is crucial for students to thoroughly understand every line of their own code, as they may be questioned about their implementation choices. This project offers a creative and engaging way for students to demonstrate their mastery of programming concepts and problem-solving skills.

Tuition & Financing

✏️ Single module

License each module individually.

$149 per module

📚 FULL 4 module bundle

Save $100 when you license all 4 modules.

Total cost of course: $596

$496

All Modules include

Unlimited Community IM support

Peer project review and feedback

Micro certification exam at the end of each module

Access to Add-on services including; career coaching, 1:1 Technical Mentor Sessions, Mock Interviews, Industry Certification Practicum Exam.


Want more information about tuition & financing in your area?
Our team is here to help.

Contact us at 631-468-7477 or email us at succeed@nebulaacademy.com!

Previous
Previous

Module I - Introduction to Software Engineering

Next
Next

Module III- Learning React