Curriculum

In this 12 month course, you will learn the basic and intermediate skills of frontend web development. We will follow two tracks at the same time. In track one, you will learn HTML & CSS, which are the languages that are used to visualize the elements on a webpage. In track two, you are going to learn JavaScript, which is the programming language used to give life to the elements on a webpage.

Track One

A modern website consists of two main aspects: What is shown on a website, and the way that we interact with the website. In this track, we are going to focus on how to present a website's content. You will learn two main languages that describe the content and styling of a website. These are HTML and CSS.

HTML

You will start by learning the HTML language. The language that actually shows the elements on a webpage. The elements that we are going to be creating will be very basic building blocks. They will look more like a skeleton or a pizza without toppings. Even with these basic skills you will be able to make a webpage that is useful and educational. By the end of this chapter, you will have learned all the important HTML elements that you will be using throughout this course and your career as a developer.

Chapter TitleContent
Introduction to HTMLIntroduction of the HTML language to describe the content of a webpage. Explaining what a webpage is in terms of HTML language.
Basic HTML Tags (I)Introducing some basic HTML tags to represent common content, such as a paragraph, a title, and list items.
Basic HTML Tags (II)Continuing on HTML tags by introducing links, styles texts and images.
HTML Tag AttributesWhat are tag attributes and how to use them.
Basic HTML Tags (III)Introducing some more HTML tags with which you can represent content.
FormsCovering HTML tags that are used to work with user input, such as forms, text boxes and dropdowns.
Display LevelIntroducing the important topic of the display level of an element.
HTML Media TagsIntroducing tags that are used to put media content on a website, such asvideo and audio.
Semantic HTMLIntroducing HTML elements that are meant to represent content with a specific purpose.
Advanced HTML TagsIntroducing advanced HTML tags. These tags are usually used to embed a website into another website, or tags that show custom graphical/interactive content

CSS

After having learned HTML, CSS is the next thing to learn. With this language, we are going to dress up our skeleton website content, add toppings to our pizza. More precisely, this is where we code the presentation of our website. You are going to learn about color, background, alignment, animations, responsiveness and much more.

Basics, Colors, Texts & Fonts

Chapter TitleContent
IntroductionIntroducing what CSS is and why it is used. Explaining the structure of the CSS language.
SelectorsHow to tell CSS what part of the content should be styled.
Text ColorsHow to change the colors of texts in CSS.
Background ColorsHow to change the background color of elements.
Color Representations & SpacesHow a color is represented in CSS and different ways to represent colors.
Color GradientsHow to make patterns with different colors.
Box ShadowsHow to create a shadow effect and give the illusion of elevation.
Font FamiliesHow to change the font family of a text.
Font StylesHow to make text bigger/smaller, italic, bold, underline and strikethrough in CSS.
Line HeightsLearning the line height of a text and how it affects readability.
Letter SpacingHow to manipulate the space between each letter in a text.
Font VariantsHow to make the letters in a text uppercase and lowercase using CSS.
VariablesLearning what variables are and how to use them.
SpecificityWhen there are two similar CSS rules, which circumstance to consider and how to choose which one to use.

Borders, Paddings, Margins & Size of an Element

Chapter TitleContent
Content BordersHow to create border lines for a content and manipulate different border properties.
PaddingHow to manipulate the space between a content's border and the content itself.
MarginHow to manipulate the space between a content's border and other content.
Width & HeightHow to manipulate the width and height of an element and which rules to follow.

Developer Tools & Length Units

Chapter TitleContent
Devtools IntroThe developer tools in a browser are a priceless way to inspect the effects of your code.
Basic Manipulation of HTMLHow to manipulate a website's HTML using developer tools, as it allows you to try out things quickly.
Inspecting CSSHow to inspect and prototype CSS in the developer tools.
Absolute Length UnitsExamining different length units at this point, and we will start with the most simple ones: absolute units.
Relative Length UnitsContinuing to examine the CSS units with relative units.

Building Layouts

Chapter TitleContent
Box ModelIntroducing the CSS box model which allows for an easier way to create layouts.
Display ModesLearning the different display modes of an element.
Flex BoxA way of making layouts that combines multiple elements in an easy way.
GridAnother way of making layouts for more complicated scenarios.
Position PropertyWe will look at ways to get an element out of the layout flow for specific purposes.

Responsive Styles

Chapter TitleContent
CSS Math FunctionsBasic strategies to size a content with respect to its surroundings.
Media QueriesWe will use media queries to style a content with respect to different screen sizes, for the layouts where math functions alone are not enough,
Responsive ImagesStrategies on how to make images more responsive in different screen sizes.
Responsive VideosStrategies on how to make videos more responsive in different screen sizes.

Transformations

Chapter TitleContent
TranslationHow to move an element in a direction.
RotationHow to rotate an element by an angle.
ScalingHow to make an element bigger/smaller by a factor.
Combining TransformationsHow to combine different transformations.
Matrix TransformationsThe core logic of transformations.

Animations

Chapter TitleContent
TransitionsThe basic form of animating a style property.
FiltersHow image filters work and how we can use them in animations.
KeyframesHow to implement more complicated animations with keyframes.
Animation RecipesCommon scenarios and problems when dealing with animations, and how to solve them.

Track Two

In this track, we will learn JavaScript, the programming language of websites, and attain general knowledge of programming. The JavaScript programming language is the elixir that gives life and reactivity to a website. It allows us to code the interactions, such as clicks, mouse hovers and many more. JavaScript is not only used on the web. Since it is a general purposeprogramming language, you can use it to program other things as well, like games and robots.

By the end of this track, you will have acquired the solid basics of programming and algorithms, you will have learned to use JavaScript to create different kinds of website interactions and knowledge of the famous JavaScript frontend framework React.

Programming Basics

Chapter TitleContent
Basic Command LineLearning the basics of command line terminal.
NodeJS Command LineGetting started on programming in JavaScript in the command line.
Running JavaScript ProgramsDefining what a "program" means. Writing programs in a text editor and running them.
console.log() FunctionHow to print something onto the screen.
VariablesThe most basic construction? of a programming language that allows you to alter the state of a program.
Basic Data TypesLooking at different data types with their specific purposes.
Arithmetic OperationsIntroducing how to work with arithmetics in a computer program, such as summation, differentiation or multiplication.
Basic String TypeRepresenting words, letters and phrases.

Directing the Program Flow

Chapter TitleContent
The Boolean TypeA very important data type that usually represents truth or falseness.
Logical Operations IOperations that allow you to make boolean values out of non-boolean data types. Such as comparing two words or numbers on similarities.
If StatementsOne of the most basic constructs of JavaScript that allows you to change or direct the flow of the program.
Logical Operations IIContinuing logical operations with combining boolean values and producing new boolean values in different ways.
Nested If StatementsIntroducing how to control the flow of another flow in the program.
Switch CaseWe use switch cases, when we need to write a lot of "if statements", e.g when the program can go in many different directions depending on the value of a variable.

Loops

Chapter TitleContent
While LoopHow to write a program statement that repeats itself as long as a specific condition is met.
Loop Exercises I-II-III-IVThe most common loop scenarios and how to solve them.
Controlling the Loop FlowTaking a look at the techniques and statements that will allow you to control the flow of a loop.
For LoopMore compact and easy to use version of the while loop.
Nested LoopsCreating loops inside loops.

Compound Data Types

Chapter TitleContent
Array IntroductionIntroducing ‘lists’, the first of the compound data types in JavaScript.
Object IntroductionYet another compound data type in JavaScript that is a key value dictionary.
Good to Know Array PropertiesSome of the most useful aspects and properties of arrays.
Good to Know Array MethodsSome of the most useful methods that are included in arrays.
Good to know Object OperationsSome operations that we can apply on objects to retrieve important information about them.

Functions

Chapter TitleContent
Introductions to FunctionsWhat are functions and how do they make our lives easier?
Function ParametersHow to provide input for a function.
Result of a FunctionHow can we get the result of a run function?
CallstackLearning what happens when you call a function that calls another function.
Recursive FunctionsAn interesting kind of function that calls itself repeatedly.
ClosuresWe will look at functions that create more functions.
Array map, filter and reduceIntroducing some array methods that are useful to transform and process data.

DOM Manipulation

Chapter TitleContent
API (Application Programming Interface)What is an "API" and how does its meaning change in different contexts?
Document Object Model (DOM) APIWhat is a DOM and how to use it in JavaScript.
Selecting Elements in JavaScriptHow to get a reference to the elements inside HTML using JavaScript.
Manipulating ElementsHow to retrieve and change the properties of an HTML element using JavaScript.
Creating Elements in JavaScriptHow to create new HTML elements in JavaScript and add them to the website.

Events

Chapter TitleContent
Events IntroductionWhat are events and how to use them.
Click EventsHow to catch user clicks on elements and react to them.
Mouse EventsHow to recognize different mouse movements/gestures and react to them.
Keyboard EventsHow to recognize different keyboard gestures, such as key press, and react to them.
Input and Form EventsHow to recognize when a user has typed something in an input field and submitted a form.
Touch EventsWhat are touch events and how are they different from mouse events.
Animation EventsWhat are animation events and how they help us to have more refined control over animations.

Networking

Chapter TitleContent
Networking IntroductionAn introduction to the protocols and components that make the web work.
HTTP ProtocolIntroduction of the HTTP network protocol that websites are based on.
Hosts in HTTPIntroduction of the HTTP host term.
Path in HTTPIntroduction to paths.
URLsIntroduction of URL (Unified Resource Locator) term.
HTTP MethodsIntroduction of methods in HTTP protocol.
HTTP vs HTTPSHow communication between a web browser and server is encrypted and its importance.
HTTP Requests in JavaScriptHow to send HTTP requests with JavaScript, its benefits and the rules that govern it.

Asynchronous Programming

Chapter TitleContent
ThreadsIntroducing threads.
Multi Threaded ProgramsHow multi threaded programs work and their pros and cons.
Single Threaded ProgramsHow single threaded programs work and their pros and cons.
Thread Model in JavaScriptHow a JavaScript program is executed with regards to its thread model.
Defining Asynchronous ProgramsWhat is an asynchronous programming paradigm.
Event LoopHow the event loop in JavaScript works internally.
PromisesHow to represent asynchronous parts of the program with Promise structures?.
async and awaitKeywords to easily make asynchronous functions.

React Framework

Chapter TitleContent
React IntroSetting up a React project from scratch, introducing the basics and learning the JSX syntax.
ComponentsWhat is a React component and how it works.
CompositionHow to compose different React components together to build a website.
Conditional RenderingRendering some of the elements if some condition checks to true.
Lists and KeysWhat is the key property for rendering lists and why it is important.
Forms in ReactStrategies related to dealing with forms in React.
DOM Manipulation vs ReactWe will compare DOM manipulation techniques with the way that it is done in React.
Component StatesHow component states work and why we use them.
Event HandlingHow to handle events in React and how to create custom events that are specific for your components.
App ArchitectureSome common problems that occur in most React projects and how to solve them.

Object-Oriented Programming & Modules

Chapter TitleContent
ModulesDefining the term "module", discussing the different modules and their limitations.
Module BundlersIntroducing the concept of a module bundler, how a generic module bundler works and real world module bundlers.
ClassesThe basic structure of object-oriented programming, the class and its features.