Our Software Apprenticeships are ideal for organisations that need people with the ability to analyse requirements, design solutions, develop software and test it. They cover job roles such as Junior Developer, Assistant Programmer, Application Developer, Web Developer and Games Developer. They are suitable for organisations that develop software across a range of industry sectors.
There is a shortage of people in the UK to fill many of the current and near future software job vacancies. Our Software Apprenticeships are an ideal way for your organisation to grow your own talent alongside your existing team. Our training provides your apprentices with quality, structured training to enable them to progress and become an asset to your organisation.
We provide Software Apprenticeships at Level 3 and Level 4 which are suitable either for new hires or to develop existing staff. Our training is suitable for a broad range of industry sectors.
Software Technician – Level 3 Apprenticeship
Problem Solving and Analysis
Introduction to Computational Thinking. Practical problem-solving exercises. Functional decomposition. Development of algorithms. Visual representations of program design e.g. flowcharts, pseudocode. Analysis models: use cases and process maps to identify functionality and workflow.
Introduction to Programming
Using C# with Visual Studio. Introduction to essential programming concepts. Developing simple console applications. Good practice: code layout, naming of variables, commenting. Debugging in Visual Studio
Principles of Software Development
Business context of software development. Development principles: Software Development Life Cycle. Introduction to popular models e.g. Waterfall and Agile. Security considerations. Configuration management and version control. Working as part of a team.
User Interface Design
Principles of user interface design. Introduction to Windows Form Applications. Practical examples of good U.I. design. Critical review of sample applications and practical exercises in identifying and correcting bad design. Review of selected website designs and mobile apps.
Understanding the role of a tester as part of a software development team. Functionality tests for software components, testing strategies. Practical exercises using requirements and design specifications.
Data storage and access using disk files. File organization, access methods, practical file operations (opening, closing, CRUD operations). Introduction to databases, principles of relational databases, normalization. Simple applications using SQL. Data security and essential requirements of current data protection regulations.
- Knowledge Module 1: Level 3 Software Development Context and Methodologies (BCS)
- Knowledge Module 2: Level 3 Programming (BCS)
Software Developer – Level 4 Apprenticeship
Indicative training (will vary dependent on an individual‘s agreed programme)
Introduction to Programming in C#
Visual Studio used for program editing, compiling, debugging and testing. Programming examples reinforced with practical programming exercises, editing, compiling and running. Structure of a C# program. Outline of basic terms. Simple input/output and introduction to data types. Conditional statements and branching. Iteration: while, for, do, nested loops. Further data types: nullables, arrays, strings, structures and enums.
Object oriented concepts and terms, object oriented programming techniques, objects and classes, attributes and methods, parameter passing, abstraction, encapsulation and information-hiding. Inheritance, polymorphism, association, aggregation and collection, coupling and cohesion.
Software Design & Development + Further Programming
SDLC, Development methodologies, design principles (decomposition, abstraction, subset identification, information hiding, virtual machine structuring, modularity, separating policy and mechanism). Hierarchy, recording and managing software updates. Testing methodologies and debugging. Project management. Advanced software techniques e.g. data structures: queues, stacks, linked lists, trees, graphs.
Introduction to Databases using PHP and MySQL
Introduction to PHP and MySQL. Overview of a typical installation e.g. Apache Server, PHP, and MySQL. How these can be obtained and configured. Connecting MySQL and PHP. Programming basics of PHP. Producing forms, assembling tables, connecting databases. Overview of security implications, basic precautions, handling errors. Sample applications e.g. club website with registration and renewal facilities, on-line shopping facility.
Database Design + Accessing a Database using C#
Relational databases – overview. Relational database design: requirements analysis, data gathering, table organisation, primary keys, identify relationships among tables (one-to-many, many-to-many, one-to-one), refine and normalise the design. Syntax, functions and structures of SQL scripts. SQLClient namespace, SQLConnection, SQLCommand, SQLDataReader, SQLParameter. Practical examples.
Indicative Qualifications (will vary dependent on an individual‘s agreed programme)
- Knowledge Module: Software Development Methodologies Level 4 (City & Guilds / BCS)
- Knowledge Module: Software Language Level 4 (City & Guilds / BCS)
- Knowledge Module: Software Development Context & Methodologies Level 3 (City & Guilds / BCS)
- Knowledge Module: Programming Level 3 (City & Guilds / BCS)