Overview of Standards and Assessments
Welcome to the Software Engineering Programme (SWE)! We are excited you are joining Multiverse to start your apprentice journey.
Before you start, we want to give you a little more information on how you will be assessed and what the learning will look like.
This programme is composed of the following:
-
5 week bootcamp prepares you to enter the workplace ready for your first challenges. We cover the basics of the software development life cycle and begin to understand the role of a software developer. As well as learning the basics of programming in HTML and Javascript, you will take on coding challenges and gain practical experience of the entire software stack.
-
Module 1: A 2 week bootcamp that builds and expands on the RESTful concept introduced in the 5-week bootcamp. Topics covered include: HTTP/HTTPS, RESTful API best practices, Building out a RESTful API, Securing an API using Basic Auth, Sessions, and Securing an API with OAuth
-
Module 2: A two week bootcamp that will get you develop your prepared to take the Microsoft Technology Associate Certification (MTA): Introduction to Programming Using JavaScript
-
Module 3: A two week bootcamp to fully understand and navigate the software development lifecycle. Through a mixture of independent reading and a team project, you will learn about both agile and waterfall development methodologies and experience 2 x 1-week sprints. By the end of the module you will be prepared to take the BCS Level 4 Diploma in Software Development Methodologies
-
Module 4: A two week bootcamp to get you to EPA-readiness for the 5-day synoptic project that forms part of the Apprenticeship EPA. Through completing two individual projects, you will be prepared for the demands of the EPA synoptic project.
How will you be assessed?
During your sessions with your coach you will work on a variety of assignments. Below is a list of some of the ways you may be assessed in the programme.
- Projects to be completed after the day of learning
- Short answer questions around understanding of software engineering concepts
- Scenario based questions around role as a developer
- Questions evaluating your role in the business with your learning
- Individual projects you will complete throughout a module
- Group projects you will complete throughout a module
Standards of Software Engineering
All the lessons you will go through during the Software Engineering Programme are directly aligned with the level 4 Software Developer programme as designed by the Institute for Apprenticeships & Technical Education. Use this page as a reference to reflect on what you are learning and areas to develop while on the job. The standards are:
Technical Competencies
- Logic: writes good quality code (logic) with sound syntax in at least one language
- User interface: can develop effective user interfaces for at least one channel
- Data: can effectively link code to the database/data sets
- Test: can test code and analyse results to correct errors found using either V-model manual testing and/or using unit testing
- Problem solving: can apply structured techniques to problem solving, can debug code and can understand the structure of programmes in order to identify and resolve issues
- Design: can create simple data models and software designs to effectively communicate understanding of the program, following best practices and standards
- Analysis: can understand and create basic analysis artefacts, such as user cases and/or user stories
- Deployment : can understand and utilise skills to build, manage and deploy code into enterprise environments
- Development lifecycle: can operate at all stages of the software development lifecycle, with increasing breadth and depth over time with initial focus on build and test.
- Can apply good practice approaches according to the relevant paradigm (for example object oriented, event driven or procedural)
- Can interpret and follow:
- software designs and functional/technical specifications
- company defined ‘coding standards’ or industry good practice for coding
- testing frameworks and methodologies
- company, team or client approaches to continuous integration, version and source control
- Can respond to the business environment and business issues related to software development
- Can operate effectively in their own business’s, their customers’ and the industry’s environments
- Can apply the maths required to be a software developer (e.g. algorithms, logic and data structures)
Technical Knowledge and Understanding
- Understands and operates at all stages of the software development lifecycle
- Understands the similarities and differences (taking into account positives and negatives of both approaches) between agile and waterfall software development methodologies
- Understands how teams work effectively to produce software and contributes appropriately
- Understands and applies software design approaches and patterns and can interpret and implement a given design, compliant with security and maintainability requirements
- Understands and responds to the business environment and business issues related to software development
- Understands and applies the maths required to be a software developer (eg algorithms, logic and data structures)
Underpinning Skills, Attitudes and Behaviours
- Logical and creative thinking skills
- Analytical and problem solving skills
- Ability to work independently and to take responsibility
- Can use own initiative
- A thorough and organised approach
- Ability to work with a range of internal and external people
- Ability to communicate effectively in a variety of situations
- Maintain productive, professional and secure working environment
Bootcamp Overview
This 5-week Flying Start bootcamp prepares new apprentices to enter the workplace ready for their first challenges. We cover the basics of the software development life cycle and begin to understand the role of a software developer. As well as learning the basics of programming in HTML and JavaScript, apprentices will take on coding challenges and gain practical experience of the entire software stack.
The knowledge covered in the 5 week bootcamp will be referenced in all 4 modules for building retention of the competencies.
- Week 1: This week introduces test driven development (TTD) and Object Oriented programming (OOP). Apprentices will create a series of objects in their program and then write the code so these objects interact with each other through inheritance and association. They will also be introduced to asynchronous JavaScript functions.
- Week 2: This week introduces object oriented analysis and design (OOAD) using the Unified Modelling Language (UML). Apprentices will also learn SQL (using SQLite as a simple database)and use ORM tools to create applications that can persist their state.
- Week 3: This week introduces the RESTful design pattern and how to create APIs to create, read, update and delete resources using Node.js Express middleware. Focus will be given to the importance of server-side validation to prevent injection attacks. Apprentices will use templating frameworks to create dynamic content in web pages and learn how to create responsive applications. They will develop a full-stack restaurant website to showcase their skills developed over the past 3 weeks.
- Week 4: This week starts with an introduction to Web Accessibility and requires the apprentices to assess their website for conformance to the Web Content Accessibility Guidelines (WCAG). The rest of the week is focussed on the HTML DOM model and DOM events such as drag and drop.
- Week 5: Apprentices demonstrate the skills they have learnt in the last month through a week-long, group project that includes a design phase, a testing strategy, a database, a server and a frontend.
Standards Covered in Bootcamp
Assessments during Bootcamp
Each week there will be a new topic that builds upon each other. As in software development there are many moving parts to a project, each day during the week apprentices will learn a new aspect that will link to the overall project of the week.
For each day and end of week, apprentices will submit their work via GitHub and receive comments from their coach. Apprentices should be prepared to share their work to others in the cohort as well.
Below is an overview of each assessment for the week:
- Week 1: Create a scooter hire system. Apprentices are introduced to the idea of Object Orientated Programming (OOP), Test Driven Development (TDD), static class functions, inherticance, and asynchronous functions.
- Week 2 and 3 : Build a restaurant app like Deliveroo or Uber Eats. As this app will incorporate many aspects and be deployed as a full stack app, apprentices will work multiple weeks on this project. In week 2, apprentices focus on creation of the database for the app and more of the backend supports. Apprentices are introduced to UML data models, unit tests, working with SQLite, Object Relational Mapping (ORM), and working with Sequelize.
- Week 3: Continue work on restaurant app. Apprentices build upon the code created in week 2. This week, apprentices will focus building a front-end development aspects for the app. Apprentices are introduced to how to build a webserver, create dynamic HTML content, work with templates and arrays of data, implement a responsive CSS grid, creating routes, adding images, and working with Postman
- Week 4: Create a Kanban app (tasks app) . Apprentices turn theitr attention to the browser. They begin looking at Web Accessibility, HTML Document Object Model (DOM), HTML DOM Events and how to write JavaScript in the browser. There is also a focus on using the event object and event listeners with HTML.
- Week 5: In groups, apprentices continue to build their Kanban app to be deployed and shared at the end of the week. They model the software development lifecycle, working on an app in teams and developing individual features to the project themselves. The focus is in modeling the skills and behaviors needed to communicate and work on a team to deploy a full stack application.
- Week 1
- Week 2
- Week 3
- Week 4
- Week 5
Module 1 Overview
Module 1 builds and expands on the RESTful concept introduced in the 5-week bootcamp. Topics covered include:
- HTTP/HTTPS
- RESTful API best practices
- Building out a RESTful API
- Securing an API using Basic Auth
- Sessions
- Securing an API with OAuth
Standards Covered in Module 1
Technical Competencies:
- Logic: writes good quality code (logic) with sound syntax in at least one language
- Test: can test code and analyse results to correct errors found using either V-model manual testing and/or using unit testing
- Problem solving: can apply structured techniques to problem solving, can debug code and can understand the structure of programmes in order to identify and resolve issues
- Design: can create simple data models and software designs to effectively communicate understanding of the program, following best practices and standards
- Can apply good practice approaches according to the relevant paradigm (for example object oriented, event driven or procedural)
- Can apply the maths required to be a software developer (e.g. algorithms, logic and data structures)
Technical Knowledge and Understanding
- Understands and operates at all stages of the software development lifecycle
- Understands and applies software design approaches and patterns and can interpret and implement a given design, compliant with security and maintainability requirements
- Understands and applies the maths required to be a software developer (eg algorithms, logic and data structures)
Skills and Behaviours
-
Logical and creative thinking skills
-
Analytical and problem solving skills
-
Ability to work independently and to take responsibility
-
A thorough and organised approach
-
Ability to work with a range of internal and external people
-
Ability to communicate effectively in a variety of situations
-
Can use own initiative
Assessments in Module 1
Each day there will be a small assignment that you will work on and share via GitHub. Coaches will review and provide feedback. As well, you should be prepared to share your work to the cohort.
At the end of this module you will be building a RESTful API that has both authentication and authorisation. We are going to build up to this final challenge in a gradual way. Our jouney will begin today with the building block of RESTful apis - the Hyper Text Transfer Protocol (HTTP).
We are going to use Postman to call some RESTful APIs and look in detail at the requests we send and responses we receive. Then we will look at performing these same requests using the browser's native fetch
api.
Module 2 Overview
A two week bootcamp that will get you develop your proficiency with HTML, CSS and asynchronous JavaScript. You'll cover: WebSockets; web workers; XMLHTTPRequests; canvas elements; media elements; responsive design through media queries; and error handling in Javascript. By the end of the module you will be prepared to take the Microsoft Technology Associate Certification (MTA): Introduction to Programming Using JavaScript
Module 3 Overview
Software Fit-for-users uses a mixture of on-the-job training and a two-week bootcamp to get you to exam-standard proficiency with the software development lifecycle as required for the BCS exam that is part of the apprenticeship qualification. Through a mixture of independent reading and a team project, you will learn about both agile and waterfall development methodologies and experience 2 x 1-week sprints. Topics that will be covered include:
- What is the SDLC
- Feasibility Studies
- Requirements Engineering
- Design
- Development
- Testing
- Implementation
- Maintenance
Standards Covered in Module 3
Technical Competencies:
- User interface: can develop effective user interfaces for at least one channel
- Data: can effectively link code to the database/data sets
- Test: can test code and analyse results to correct errors found using either V-model manual testing and/or using unit testing
- Problem solving: can apply structured techniques to problem solving, can debug code and can understand the structure of programmes in order to identify and resolve issues
- Design: can create simple data models and software designs to effectively communicate understanding of the program, following best practices and standards
- Analysis: can understand and create basic analysis artefacts, such as user cases and/or user stories
- Deployment : can understand and utilise skills to build, manage and deploy code into enterprise environments
- Development lifecycle: can operate at all stages of the software development lifecycle, with increasing breadth and depth over time with initial focus on build and test.
Technical Knowledge and Understanding
- Understands and operates at all stages of the software development lifecycle
- Understands the similarities and differences (taking into account positives and negatives of both approaches) between agile and waterfall software development methodologies
- Understands how teams work effectively to produce software and contributes appropriately
Skills and Behaviours
- Logical and creative thinking skills
- Analytical and problem solving skills
- Ability to work independently and to take responsibility
- Can use own initiative
Assessments in Module 3
While you complete the module and go through each session there are mini assignments that will test their knowledge at the end of the session. These assignments are to be submitted via applied.
They are:
- What is the business need?
- Project Sponsors and Users
- Functional and Non-Functional requirements
- UML Challenge
- UML data design
- Human Computer Interaction
- 7 Testing Principles
- UK Voting Rollout Scenario
- Licenses
- Dictionary of Agile
- Roles and Responsibilities
You will take the BCS Software Developer Methodologies Exam at the end of the module which will be an accumulation of all the learning.
Module 4 Overview
Module 4 uses a mixture of on-the-job training and a two-week bootcamp to get you to EPA-readiness for the 5-day synoptic project that forms part of the Apprenticeship EPA. Through completing two individual projects, apprentices will be prepared for the demands of the EPA synoptic project. Topics include:
- Selecting a stack
- Data design for schema and schema less databases
- Testing strategies and environments
- Design systems
Standards Covered in Module 4
Assessments in Module 4
In Module 4, you will prepare for the 5 day synoptic project. To do this, you will select the stack you will use for the synoptic project - and implement user accounts to demonstrate that everything works OK. You will need to implement a testing strategy, then the design system. Once the coding is complete, you will create a video demo showcasing their project and explaining how it meets the brief.
This module has a lot of coding to help you gain familiarity with frameworks, libraries or APIs that you can use in the synoptic project.
While you finish Module 4 they will have a few opportunities to work on projects to showcase their knowledge and skills. As you complete each session you will add more to your synoptic projects. The projects are the following an in each session:
- Stacks Project: Apprentices should decide on a stack that they will use in their synoptic project. Create a new application with their stack and implement user accounts.
- Data Design: Create a data design for their chosen synoptic project Read the brief carefully and think about what needs to be captured from the use, what needs to be stored and how they will persist the relationships between different data points.
- Testing: Can you bootstrap your project with each type of test: Unit, Integration and system? You don’t need to write extensive tests for your application, but you do want to demonstrate in your synoptic project that you know about testing strategies and you know how to set up and write each of the three types of test.
- Design Systems: Look over the design systems and pick one that works with your synoptic project. Make sure that your project includes components for responsive layouts, forms and lists.