This course guides learners from zero JavaScript knowledge to confidently building interactive, real-world applications.
By the end of the program, students will:
- Understand JavaScript fundamentals deeply
- Write clean, reusable logic
- Manipulate the DOM confidently
- Work with modern JavaScript syntax
- Fetch and handle real API data
- Build portfolio-ready mini applications
This curriculum is designed to be the single source of truth for teaching JavaScript fundamentals at GeekInk.
- Duration: 3 Weeks
- Frequency: 3 Days per Week
- Sessions: 9 Total
- Format: Project-Based, Build-As-You-Learn
- Capstone: Mini Learning Portal
Students understand how JavaScript works, write logic confidently, and manipulate structured data.
- What is JavaScript?
- How JavaScript works with HTML
- Variables (
let,const) - Data Types:
- String
- Number
- Boolean
- Null
- Undefined
- Operators
- String methods
- Template literals
Students build:
- A simple HTML page
- A dynamic JS-powered student bio
Example Output:
"Adamu is currently learning JavaScript at GeekInk and is progressing at beginner level."
- Variables
- String interpolation
- DOM manipulation
- Basic logic
- Arrays
- Objects
- Accessing & modifying values
- Conditional statements (
if/else) - Comparison operators
Students build:
- An array of student objects
- Each student contains:
- name
- score
- completedModules
- Display all students
- Show only students above 70%
- Show "Needs Support" if score < 50
- Arrays of objects
- Conditional logic
- Manual filtering
- Intro to looping concepts
- Function declarations
- Arrow functions
- Parameters & return values
- Scope
- Loops (
for,for...of)
Students build:
- Function to calculate average score
- Function to determine student level:
- Beginner
- Intermediate
- Advanced
- Loop through student list and assign level
- Reusable logic
- Looping arrays
- Clean function structure
- Separation of concerns
Students build interactive applications using real user input and dynamic UI updates.
querySelectoraddEventListener- Updating HTML dynamically
- Understanding event objects
Students build:
- Input field
- Add task button
- Display tasks in a list
Pure JavaScript β no frameworks.
- Rendering lists dynamically
- Removing items
- Updating UI state
- Basic form validation
Add:
- Delete task
- Mark task as complete
- Prevent empty submissions
- State management thinking
- Event-driven programming
- Conditional UI updates
Combine:
- Student tracker
- Task manager
- Progress calculator
Students build a mini dashboard showing:
- Total tasks
- Completed tasks
- Student progress percentage
- Dynamic UI updates
This becomes the first portfolio-level project.
Students understand asynchronous JavaScript and modern syntax patterns.
map()filter()reduce()(intro)- Destructuring
- Spread operator
Students:
- Sort students
- Filter top performers
- Display ranked list
- Use destructuring inside
map()
- Functional programming mindset
- Cleaner, modern syntax
- Data transformation
- What is an API?
fetch()- Promises
async/await- Error handling
- Loading states
Students:
- Fetch data from a public API
- Display courses (mock data)
- Display instructors
- Handle loading state
- Handle errors properly
- Asynchronous programming
- Error handling discipline
- Real-world integration
Students must build:
- Display courses (fetched from API)
- Allow enrolling in a course
- Track progress
- Show completion percentage
- Use:
- Functions
- Array methods
- DOM manipulation
- Async/Await
- Modular structure (basic import/export)
- Graduation project
- Portfolio piece
- Interview talking point
Each student repository must follow: