Full-Time Software Engineering Course (Online)

Curated for those who want to:
➜ Avoid the daily commute by studying from home
➜ Learn with a diverse community of African students
➜ Build and style interactive websites

Become a Moringa Certified Software Engineer and enjoy up to 12 months of alumni support from our Career Services Department.

Graduate in Just 20 Weeks as a Software Engineer and Gain Access to 300+ Partners

Course Includes: JavaScript, React, SQL, Ruby on Rails, JSON, and Redux Frameworks

The 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.

Curriculum Developed By:

Next Intake Dates

July 25th, 2022
Open Apply
October 31st, 2022
Open Apply

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 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.

  • Class Hours

    Class Hours

    • This is a full-time class taking place on weekdays 8am – 5pm.
    • Students must attend 70% of classes.
    • Learners must check-in with their Technical Mentors in the morning and check out in the evening.
  • Laptop

    Laptop

    You need a personal laptop with the following minimum specifications: –

    • Core i5 7th gen, 8GB RAM, 256GB SSD storage.
  • Internet

    Internet

    You need a stable internet connection for live classes, group sessions and to use online resources.

    We support students with internet bundles for online learning. We recommend a good enough, base-level connection.

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.

Software Engineering (Fundamentals)
Software Engineering( Immersive)
Course Overview

HTML

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.

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.

Rack

This unit is designed to give students an understanding of HTTP and how the Internet works, as implemented through the Ruby web interface of Rack. Students build their own HTTP servers and learn how the request/response model of the web works. Their servers listen to HTTP requests and respond with well-formed responses. Students learn to understand the web with the few abstractions provided by the toolset.

Ruby

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.

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

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:

Live & Online

Fees:

Ksh 43, 000 (USD 430)

Course Overview

HTML

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:

Live & Online

Fees:

Ksh 131,000 (USD 1,310)

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.

Course Overview

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.

Rack

This unit is designed to give students an understanding of HTTP and how the Internet works, as implemented through the Ruby web interface of Rack. Students build their own HTTP servers and learn how the request/response model of the web works. Their servers listen to HTTP requests and respond with well-formed responses. Students learn to understand the web with the few abstractions provided by the toolset.

Ruby

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.

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

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.

Career Opportunities in Software Engineering

At Moringa we not only teach students to become the best developers, 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 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 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.

Common Questions

With in-person learning, we factor in the utilities and operational costs that help us maintain a great learning environment for our students while being physically present in our premises. We also pay keen attention to the spacing among students during in-person instruction to promote social distancing.

Yes, students that have enrolled to our remote classes are provided with data bundles

Yes, according to our space and facilities policy, students can book to use the space as long as we have open spaces.

The program pacing and course content for both remote and in-person classes are the same. For the in-person classes, students are allowed to be in our premises 2 days per week where they get to meet and interact with their trainers – for the remaining 3 days of the week you will still have live and instructor-led classes but they will be delivered online. For remote classes, all class interactions happen live and in real-time online. Remote classes cost Ksh 43,000 and Ksh 131,000 for Prep and Core respectively. In-person classes cost Ksh 50,000 and Ksh 150,000 for Prep and Core respectively.