Curriculum
Last updated
Last updated
Hello! And welcome to the HackYourFuture Belgium Curriculum.
Software creates a complicated series of communications between developers, computers, users and society in general. This diagram gives a simplified overview of the different channels of communication you'll explore while at HYF Belgium:
Software Development is a many layered skill. One way to break it down is to think of these layers:
Source Code: The basic literacy of programming
Learning the key words (vocabulary) and syntax (grammar) for your programming language
Being able to read your code out loud, tracing it's execution as a computer would
Understanding what the developer wanted to say with their code
Welcome to JS will focus on these skills_
Machine Instructions: The basic mechanics of programming
Understanding the life-cycle of your program
Understand how the computer will interpret your source code to create a running program
Understand what about your code matters to the computer, and what matters to people
Fixing syntax errors that occur when you try to run your code
Predicting which lines of code will be executed in which order
Predicting how each line of code will change what is stored in program memory
Reading error messages & callstacks to fix fix semantic errors that occur when you run your code
Debugging will focus on these skills_
Problem Solving & Algorithms: Breaking down large problems to be solved in small steps
Understanding a coding challenge and being able to break it down in different ways
Determining which solution strategies are correct for which types of problems
Understanding how test cases are used to describe your solution strategy
Identifying the best language feature to use with your strategy
Reading test cases to understand how code is supposed to behave
Using Test Cases to structure your solution design process (Test Driven Development)
Identifying and isolating mistakes in your code by reading failing test cases
Demonstrating your code does what you think it does by passing test cases
Behavior, Strategy, Implementation Module will focus on these skills
Software Design: Organizing smaller pieces of code into full software solutions
Every module starting with Separation of Concerns will focus on these skills
Planning and Collaborating: Breaking down large problems into tasks that can be shared
This is introduced in the Agile Develompent module and practiced in every other module
Context: Who uses a program, what is it's impact, and where did it come from?
Real people will use your software, is it accessible to them?
Your software exists in a society, what it's impact on others?
Someone planned and build your software, what were their motivations?
Our curriculum is constantly evolving, check out your class repository to see which modules and lesson plans your class will be studying.
-->