Sección 1: Introduction to JavaScript and Computer Programming
- understand the fundamental programming concepts, such as: interpreting and the interpreter, compilation and the compiler, client-side vs. server-side programming;
- have a basic knowledge of how to set up and use a basic programming environment (online or local)
- gain skills allowing them to run their first JavaScript program on the client side (both as an element embedded in the HTML page and directly in the browser console).
Sección 2: Variables, Data Types, and Type Casting
- have the knowledge and skills to work with variables, i.e. naming, declaring, initializing and modifying their values;
- understand concepts such as scope, code blocks, shadowing, hoisting;
- know the basic properties of primitive data types such as boolean, number, bigint, undefined, null, and be able to use them;
- be familiar with the basic properties of the primitive data type string, including string literals – single or double quotes, escape character, string interpolation, basic properties and methods;
- know the basic properties of complex data types such as Array and Object (treated as a record) and be able to use them in practice.
Sección 3: Operators and User Interaction
- know what operators are and how we classify them (by type of operands, by number of operands, etc.)
- be able to use assignment, arithmetic, logical, and comparison operators in practice;
- have an understanding of the operation of the conditional operator and the typeof, instanceof, and delete operators;
- understand what the precedence and associativity of basic operators are and be able to influence it by means of bracket grouping;
- be able to perform basic two-way communication with the program user using the alert, confirm, and prompt dialog boxes.
Sección 4: Control Flow – Conditional Execution and Loops
- be able to force conditional execution of a group of statements (make decisions and branch the flow) using if-else and switch commands;
- be able to force a group of statements to repeat in a loop using the for, while, and do-while commands, using both dependent and independent conditions on the number of iterations;
- understand and be able to use loop-specific break and continue instructions;
- be able to use the for-in statement to iterate over properties of an object;
- be able to use the for-of statement to walk through the elements of an array.
Sección 5: Functions
- be able to declare and call functions;
- know how to pass call arguments to a function and return the result of its operation from it;
- understand the concept of a local variable and the effect of shadowing variables with the same names within a function;
- know that a function in JS is a first-class member and be able to take advantage of this by declaring functions using function expression and passing functions as arguments to calls of other functions;
- understand the concept of recursion in the context of functions and be able to solve simple programming problems by using it;
- have a basic understanding of the callback function and be able to use it asynchronously in conjunction with the setTimeout and setInterval methods;
- have a clear understanding of arrow function notation and be able to write functions alternatively as a regular declaration, a function expression, and an arrow function.
Sección 6: Errors, exceptions, debugging, and troubleshooting
- understand the differences between syntactic, semantic, and logical errors;
- understand the concept of an exception and distinguish between the basic exceptions generated by JS when an error occurs: SyntaxError, ReferenceError, TypeError, RangeError;
- have the ability to handle exceptions using the try-catch-finally statement;
- be able to generate their own exceptions using the throw statement;
- have the skills to use the debugger for basic analysis of their own code, including: step-by-step execution, viewing and modifying variables, and measuring code execution time.