Course Prerequisites
To have a good chance of completing and graduating from this course, you will need to attend at least 80% of the classes, submit your independent projects in time for weekly grading, and have a working laptop that meets the following baseline specifications: Core i5 7th Gen and upwards, 8GB RAM, and at least 256GB of SSD storage.
This course is recommended for University Graduates that have a background in a computer-related course. If you do not have a technical background you will be required to take an assessment to join
Curriculum
While the linear progression of our curriculum is focused on building technical skills, our aim is to teach students how to become software engineers—which is distinct from simply knowing how to code. Students engage in a number of activities that hone their communication and collaboration skills and immerse themselves in the technical community, helping build the foundation needed to grow as software engineers in the future.
All students are required to complete an introductory pre-work one week before the start of class. During pre-work, students will get accustomed to our online learning management system (Canvas), set up their computing environment, and familiarise themselves with the basics of the programming languages that will prepare them for day 1 of the program.
Duration:
5 Weeks
Mode:
Hybrid (2 Days In-Person, 3 Days Online)
Fees:
Ksh 50,000 (USD 500)
At the end of prep, learners are able to build static websites and demonstrate an understanding of the fundamentals of front-end and back-end development.
Our Full Stack Software Engineering Curriculum covers both Back-End and Front-End programming technologies so you can become a full-stack developer. It’s a more extensive course of study than the average school offers but our goal is to teach you more than simply knowing how to code.
Duration:
15 Weeks
Mode:
Hybrid (2 Days In-Person, 2 Days Online)
Fees:
KSh 150,000 (USD 1500)
To grow as a software engineer, you must be agile and able to learn and adapt, no matter the challenge that you’re given. In our program, you’ll hone communication and collaboration skills, and you’ll become part of the technical community as you build and share a Github portfolio.
HTML & CSS
Students master the basic building blocks of how the web is rendered and become fluent in the language that makes the web beautiful. They additionally learn how to conceive of and build UIs for web apps by writing well-structured HTML and CSS, as well as using SASS to create efficient and organized front-ends.
Git
Students begin exploring version control using git commands including cloning, branching, merging, rolling back commits, forking, and submitting pull requests.
JavaScript
JavaScript powers the user experience of the web. Students learn the basics of JavaScript syntax, its functional architecture, and different approaches to the object model. Students then learn the Document Object Model (DOM) Javascript API provided by the browser to dynamically interact with HTML. Students use native “vanilla” JavaScript (versus a library). Students then explore the popular Javascript framework React.
React
Using plain JavaScript with large web applications quickly becomes unruly. Initially created by Facebook, React is the premier JavaScript framework for building fast web user interfaces. This unit starts with the fundamentals of components. Students learn how to build the basics of React before they are taught how to use React itself. After building a minimal React, students conquer the complexities of React and then quickly move into learning about state management. After completing this unit, your applications will effortlessly consume APIs, render data quickly, and scale as application complexity increases.
Units Covered:
- Leading Self
- Communicating for Impact
- Entrepreneurial Thinking
- Project Management
- Working with Others
Learning Outcomes:
- Manage your mindset, behaviors, and workplace relationships to help you stand out in your organization and in your industry as a leader.
- Demonstrate engagement with others to strengthen team cohesiveness and effectiveness.
- Persuade others using oral and written communication techniques.
- Recognize and solve problems using the most appropriate strategy for the specific context
Apply the core tenets of project management from establishing project goals & objectives and building a project plan to managing resources, meeting deadlines and closing the project.
Ruby
Students learn fundamental concepts in programming including repls, methods, loops, variables, variable scope, conditionals, blocks and iterators, case statements, arrays, scope, hashes, regular expressions, iterators, enumerable, data structures, nesting, and more. Topics build in complexity and provide the foundation for the rest of the course.
We help students embrace error messages as clues and gain a fundamental appreciation for failure as the only way to learn and progress. Students gain experience in debugging with various gems and tools designed to track down issues in code.
Object Orientation
Students gain experience with Object-Oriented Programming and understand how it allows programmers to bundle code and create reusable objects and methods, which allows for increasing complexity in software.
Object Relational Mapping & SQL
ORM (Object Relational Mapping) allows programmers to query and manipulate data from a database using an object-oriented paradigm. Students learn to write and manipulate data using the Ruby language.
They gain an appreciation for the structure of a database, how to map out tables, and the difference between the various table relationships. Students learn how to wireframe database structures, as well as how to link their applications to a database. They also cover SQL, domain modeling, relational database theory, schema architecture, and the Object Relational Model, including the Active Record pattern.
Rails
With a foundation in the Ruby language, as well as the architecture of the World Wide Web, students utilize Rails to build complex, functional web applications from the ground up. They learn the file structure of Rails, how to set up their own databases, how to draw routes and create Rails forms, gain an understanding of the asset pipeline, and bring it together by integrating front-end design skills. The topics covered in this unit include architectural patterns such as REST (Representational State Transfer), MVC (Model-View-Controller), creating web APIs, serializing JSON data, and application environments. Students also have the ability to take on more advanced concepts such as authorization, validation, and callbacks. Once they grasp the basic functionality of Rails, they spend time building out their own Rails applications, moving through the entire process from ideation to execution
Capstone
After completing four curriculum phases focused on group projects, students work with instructors to come up with solo project concepts and spend dedicated time building truly sophisticated applications on their own. Students receive plenty of instructor feedback along the way while diving deep into various advanced technologies needed to bring their concepts to life.
All students are required to complete an introductory pre-work one week before the start of class. During pre-work, students will get accustomed to our online learning management system (Canvas), set up their computing environment, and familiarise themselves with the basics of the programming languages that will prepare them for day 1 of the program.
Duration:
5 Weeks
Mode:
Hybrid (2 Days In-Person, 3 Days Online)
Fees:
Ksh 50,000 (USD 500)
At the end of prep, learners are able to build static websites and demonstrate an understanding of the fundamentals of front-end and back-end development.
HTML & CSS
Students master the basic building blocks of how the web is rendered and become fluent in the language that makes the web beautiful. They additionally learn how to conceive of and build UIs for web apps by writing well-structured HTML and CSS, as well as using SASS to create efficient and organized front-ends.
Git
Students begin exploring version control using git commands including cloning, branching, merging, rolling back commits, forking, and submitting pull requests.
JavaScript
JavaScript powers the user experience of the web. Students learn the basics of JavaScript syntax, its functional architecture, and different approaches to the object model. Students then learn the Document Object Model (DOM) Javascript API provided by the browser to dynamically interact with HTML. Students use native “vanilla” JavaScript (versus a library). Students then explore the popular Javascript framework React.
Our Full Stack Software Engineering Curriculum covers both Back-End and Front-End programming technologies so you can become a full-stack developer. It’s a more extensive course of study than the average school offers but our goal is to teach you more than simply knowing how to code.
Duration:
15 Weeks
Mode:
Hybrid (2 Days In-Person, 2 Days Online)
Fees:
KSh 150,000 (USD 1500)
To grow as a software engineer, you must be agile and able to learn and adapt, no matter the challenge that you’re given. In our program, you’ll hone communication and collaboration skills, and you’ll become part of the technical community as you build and share a Github portfolio.
React
Using plain JavaScript with large web applications quickly becomes unruly. Initially created by Facebook, React is the premier JavaScript framework for building fast web user interfaces. This unit starts with the fundamentals of components. Students learn how to build the basics of React before they are taught how to use React itself. After building a minimal React, students conquer the complexities of React and then quickly move into learning about state management. After completing this unit, your applications will effortlessly consume APIs, render data quickly, and scale as application complexity increases.
Units Covered:
- Leading Self
- Communicating for Impact
- Entrepreneurial Thinking
- Project Management
- Working with Others
Learning Outcomes:
- Manage your mindset, behaviors, and workplace relationships to help you stand out in your organization and in your industry as a leader.
- Demonstrate engagement with others to strengthen team cohesiveness and effectiveness.
- Persuade others using oral and written communication techniques.
- Recognize and solve problems using the most appropriate strategy for the specific context
Apply the core tenets of project management from establishing project goals & objectives and building a project plan to managing resources, meeting deadlines and closing the project.
Ruby
Students learn fundamental concepts in programming including repls, methods, loops, variables, variable scope, conditionals, blocks and iterators, case statements, arrays, scope, hashes, regular expressions, iterators, enumerable, data structures, nesting, and more. Topics build in complexity and provide the foundation for the rest of the course.
We help students embrace error messages as clues and gain a fundamental appreciation for failure as the only way to learn and progress. Students gain experience in debugging with various gems and tools designed to track down issues in code.
Object Orientation
Students gain experience with Object-Oriented Programming and understand how it allows programmers to bundle code and create reusable objects and methods, which allows for increasing complexity in software.
Object Relational Mapping & SQL
ORM (Object Relational Mapping) allows programmers to query and manipulate data from a database using an object-oriented paradigm. Students learn to write and manipulate data using the Ruby language.
They gain an appreciation for the structure of a database, how to map out tables, and the difference between the various table relationships. Students learn how to wireframe database structures, as well as how to link their applications to a database. They also cover SQL, domain modeling, relational database theory, schema architecture, and the Object Relational Model, including the Active Record pattern.
Rails
With a foundation in the Ruby language, as well as the architecture of the World Wide Web, students utilize Rails to build complex, functional web applications from the ground up. They learn the file structure of Rails, how to set up their own databases, how to draw routes and create Rails forms, gain an understanding of the asset pipeline, and bring it together by integrating front-end design skills. The topics covered in this unit include architectural patterns such as REST (Representational State Transfer), MVC (Model-View-Controller), creating web APIs, serializing JSON data, and application environments. Students also have the ability to take on more advanced concepts such as authorization, validation, and callbacks. Once they grasp the basic functionality of Rails, they spend time building out their own Rails applications, moving through the entire process from ideation to execution
Capstone
After completing four curriculum phases focused on group projects, students work with instructors to come up with solo project concepts and spend dedicated time building truly sophisticated applications on their own. Students receive plenty of instructor feedback along the way while diving deep into various advanced technologies needed to bring their concepts to life.
At Moringa we not only teach students to become the best Software Engineers, but we also train them on soft skills like Communicating for Impact, Working with Others, Leading Self, Project Management, and Entrepreneurial Thinking. These are the skills that they can use in order to become the best employees, freelancers, and even entrepreneurs based on the needs of the job market. At the end of our Advanced Modules, you can choose any of the following career options:

Front-end Development
Front-end developers create application interfaces that allow users to easily navigate and interact with pages and screens.
Front-end developers create websites and applications that match user needs and expectations. Roles include designing the structure of websites and apps, optimizing for mobile devices, and creating features that promote ease of use. Front-end developers are good in HTML, CSS, JavaScript, and other front-end frameworks and technologies.

Back-end Development
Back-end developers develop and maintain the functional logic and operations of applications and information systems.
Back-end developers create the logic that instructs applications on how to interpret user input and what feedback to give to the user after executing the submitted request. They are good at creating algorithms that fetch and manipulate data stored in database systems using backend frameworks like Ruby, Python, and SQL.
Meet your classroom mentors
We have an open-door policy and encourage free interaction between students and mentors with the spirit of collaboration, innovation, and creativity at the core of our environment. This is underpinned by a clear code of conduct and standard of behavior that is respectful, honest, and transparent, and places learning and development as paramount.