Foundations of Software Engineering

Master the Essential Skills to Kickstart Your Career in Software Engineering

2025 Intakes in Progress

Full-time In-person

Start Date:
January 6th, 2025
Course Duration:
5 Weeks
Mode of Learning:
100% In Person Classes | Mon - Fri 8 am - 5 pm E.A.T
Tuition Fee:
Ksh. 40,000

Full-time Remote

Start Date:
January 6th, 2025
Course Duration:
5 Weeks
Mode of Learning:
100% Online Classes | Mon - Fri | 8 am - 5 pm E.A.T
Tuition Fee:
Ksh. 40,000

Establish a strong foundation in software engineering to build, innovate, and excel in the world of tech

Are you ready to jumpstart a career in tech but need the foundational skills to get started? The Foundations of Software Engineering course at Moringa equips you with the essential skills and knowledge required to transition into the world of software engineering confidently. Whether you’re a career changer or a professional looking to build on your tech skills, this full-time, in-person course provides a structured pathway to becoming a job-ready software engineer.

Course Details

The Foundations of Software Engineering course is a beginner-friendly program that teaches you the basics of programming, problem-solving, and software development. Through practical projects, teamwork, and guided lessons, you’ll build essential skills and create a portfolio that reflects your growing skills. This course goes beyond simple coding lessons by teaching you real industry practices, helping you get ready for software engineering jobs.

  • Beginner Tech Enthusiasts with limited coding experience looking for a well-rounded start in software engineering.
  • University/College Graduates and Early-Career Professionals seeking hands-on experience and a clear path to a career in software engineering.
  • Career Changers who want to transition into the tech industry with a strong, structured foundation.
  • Working Professionals in non-technical roles who want to advance their careers by gaining technical skills.

No prior software engineering or coding experience is required, but a basic understanding of technology and computer knowledge is beneficial. What’s essential is a curiosity for learning, a problem-solving mindset, and the dedication to commit to a full-time, intensive course.

In today’s tech-driven world, software engineering is at the heart of innovation across industries. Learning the foundations of software engineering equips you with versatile, in-demand skills that open doors to various roles and career paths. With a strong foundation, you can grow into specialized fields or continue advancing into more complex areas of software development. This course gives you the confidence, credibility, and skill set to start your career in one of the most dynamic fields available.

If you are in search of a unique learning experience this is the place for you. We guarantee you will learn market-aligned skills through our practical and comprehensive curriculum.

  1. Practical hands-on learning
  2. Work on a portfolio of Software Engineering projects
  3. Live Lectures from experienced instructors
  4. Access to a vast alumni network

Don’t miss out on the opportunity to enhance your skill set and transform your career! Take the first step toward becoming a sought-after Software engineer!

Get Started - Apply Now

Course Overview

Onboarding & Expectation Setting

  • Policies, schedules, handbook, agreements
  • Pair Programming, remote learning & online etiquette.
  • Installation and setup of tools. Troubleshooting – how to get help.
  • Communication, assessment objectives.
  • Learning how to learn: Reflective learning, Tackling Procrastination.
  • Why Brain-Linking is Important
  • Tools to improve short and long-term memory

Prompt Engineering [AI]

  • Introduction to OpenAI and the importance of Prompt Engineering
  • LLMs for Developers. Balancing users intent and model creativity.
  • Real-World Applications of Prompt Engineering and ensuring ethical usage.

Command Line (CLI)

  • The terminal
  • Graphical User Interface vs CLI
  • Working with Files and Directories in the CLI
  • User-centered design & its relationship with Technology

Git and Github

  • Version control
  • Github setup
  • Git WorkFlow [Cloning, Forking, Branching, Merging etc]
  • Github practice exercises labs (sandbox): No code [Part I]

Introduction to Programming

  • Introduction to web design and development
  • Programming Basics & Environment Setup
  • Types of Web development
  • Front-end vs Backend [Separation of concerns]

Markup

  • Introduction to HyperText Markup Language
  • Inline vs Block elements
  • Formatting and Indentation
  • Integrating multimedia resources.

Markdown

  • Basic writing and formatting syntax
  • Supported colour models
  • Section & Relative links
  • Writing a README & Licensing

Bootstrap and cascading styles

  • Front-end frameworks
  • Setting up bootstrap basic elements
  • CSS concepts, media queries and responsive design
  • Linting and formatting

Computer science fundamentals

  • Introduction to Computational Thinking
  • Problem decomposition
  • Pseudocode and logic flow
  • Introduction to Data structures [ES6]

Debugging

  • Introduction Web Standards
  • Browser Devtools
  • Working in the Devtools console
  • Interpreting errors in the devtools console

Introduction to Javascript

  • Data structures II (Data types)
  • JavaScript variables
  • Arithmetic operators
  • Methods and Functions
  • JavaScript Objects
  • Scope (variable)
  • Accessing the DOM
  • Object types and Inheritance
  • Function expressions

Control Flow & Regular Expressions

  • Arrays & Loops
  • JavaScript prototypes
  • Array methods
  • forEach Loops
  • Array mapping
  • While Loops
  • Regex

Test automation (TDD)

  • Building and testing
    • Unit testing
    • Performance testing
    • Acceptance testing
    • GUI testing
    • Integration testing
  • Project structure templating
  • Continuous integration (CI) Git Best Practices
  • Semantic versioning
  • Installing dependencies with npm (scripts): webpack
  • Bundling javascript and CSS
  • Processing HTML with plugins
  • Automating cleanup tasks
  • Source maps for debugging
  • Deploying live servers for development
  • Linting Code and adding dependencies
  • Configuration reference and suggested workflows

Red Green refactor Workflow

  • Jest & Babel setup
  • Testing Best Practices
    • Write tests for distinct behaviors.
    • Use Describe blocks
    • Code Refactorization
    • Reading Jest outputs
  • Adding Setup and Teardown [Using beforeEach() and afterEach()]
  • Test reports: Adding test coverage
  • Introduction to ES6 (classes, arrow notations, template literals)

Asynchronous Programming

  • The Internet
  • Client-server architecture
  • Introduction to Web APIs.
  • Business and User Interface Logic
  • Forms, Hiding and Showing Elements, and the Event Object.
  • Event Handling with Event Listeners.
  • Pausing on Exceptions.
  • Debugging using breakpoints

Capstone Project

  • Collaborative workflows (SCRUM) Pitch.
  • Going Live (Deployment)
  • Group presentations

Don’t miss out on the opportunity to enhance your skill set and transform your career! Take the first step toward becoming a sought-after Software engineer!

Are you ready to jumpstart a career in tech but need the foundational skills to get started?