Module Descriptors
SOFTWARE FUNDAMENTALS
COMP40047
Key Facts
Digital, Technology, Innovation and Business
Level 4
20 credits
Contact
Leader: Philip James
Hours of Study
Scheduled Learning and Teaching Activities: 28
Independent Study Hours: 172
Total Learning Hours: 200
Pattern of Delivery
  • Occurrence A, Stoke Campus, UG Semester 2
  • Occurrence B, The Development Manager, UG Semester 2
Sites
  • Stoke Campus
  • The Development Manager
Assessment
  • CLASS TEST USING PORTFOLIO COURSEWORK - 1 HOUR weighted at 100%
Module Details
INDICATIVE CONTENT
Theory & Knowledge Exchange

- Variables and data types
- Input and output methods
- Sequence
- Selection
- Iteration
- Data Structures

- Functions

- Validation, Exceptions (including custom exceptions) and Error Handling

- Algorithm Design Techniques

- Algorithm Evaluation Techniques

- Algorithms such as Searching, Sorting, Trees.

- Clean Code - introduction





-Green Computing

-Development Methodologies – waterfall, agile approaches.



Technology & Resources

-Video/written material will be provided in Java and C#. Students can develop solutions in other languages e.g., Python, Go, Rust, C or another language.

-Development environment: Intellij, Visual Studio or Visual Studio Code. Others considered.

-Internet to access official documentation for the language used as well as other texts recommended by the module tutor via the Staffordshire University O’Reilly library.



Practical Content

-Each programming session will include tutorial tasks to apply the concepts and skills discussed which will be submitted for formative feedback.



This module will support the development and assessment of the following Core Knowledge, Skills and Behaviours from the DTSP Apprenticeship Standard:

Knowledge

K5 A range of digital technology solution development techniques and tools.

K20: Sustainable development approaches as applied to digital and technology solutions such as green computing.

Skills

S4 Initiate, design, code, test and debug a software component for a digital and technology solution.



This module will support the development and assessment of the following Specialist Route Knowledge, Skills and Behaviours from the DTSP Apprenticeship Standard:



Software Engineer

Knowledge

K21 How to operate at all stages of the software development life cycle and how each stage is applied in a range of contexts. For example, requirements analysis, design, development, testing, implementation.

K25 The factors affecting product quality and approaches for how to control them throughout the development process. For example, security, code quality, coding standards.

K26 How to select and apply a range of software tools used in Software Engineering.

Skills

S17 Provide recommendations as to the most appropriate software engineering solution.

S19 Implement software engineering projects using appropriate software engineering methods, approaches and techniques.

ADDITIONAL ASSESSMENT DETAILS
During the module you will develop an electronic portfolio of solutions to the tutorial tasks.
The test will consist of questions based on topics covered in the delivered materials as well as electronic portfolio of practical work Learning Outcomes 1,2,3,4.



Assessing the following Core KSBs:



Knowledge

K5 A range of digital technology solution development techniques and tools.

Skills

S4 Initiate, design, code, test and debug a software component for a digital and technology solution.



Assessing the following Software Engineer KSBs:

Knowledge

K21 How to operate at all stages of the software development life cycle and how each stage is applied in a range of contexts. For example, requirements analysis, design, development, testing, implementation.

K25 The factors affecting product quality and approaches for how to control them throughout the development process. For example, security, code quality, coding standards.

K26 How to select and apply a range of software tools used in Software Engineering.

Skills

S17 Provide recommendations as to the most appropriate software engineering solution.

S19 Implement software engineering projects using appropriate software engineering methods, approaches and techniques.

LEARNING OUTCOMES

1. Design programming solutions using a procedural approach.

Analysis
Problem Solving

2. Create, edit, compile, run, debug, test solutions using an appropriate language and development environment.

Application

3. Understand the procedural approach to software development.

Enquiry
Knowledge & Understanding

4. Evaluate the complexity of alternative algorithms.¿¿

Knowledge & Understanding¿
Learning¿

LEARNING STRATEGIES
The module will be delivered in a Blended Learning Mode consisting of face to face, online and guided learning sessions.



Teaching sessions will blend theory and practical learning and most importantly where possible contextualised in your workplace as part of your apprenticeship. Learners will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers and industry case studies. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help students build knowledge and confidence in preparation for summative (formal) assessment.



The delivery will be delivered as follows:



Module Launch week: 12 hours.

There will be a module launch session consisting of up to 12 hours face to face contact time devoted to developing your understanding of the core purpose and assessment of the module. Learners will be presented with details of how the learning will be structure and how to access to the learning materials for the remainder of the module.



Structured Learning Sessions: 15 hours

Following the module launch week you will have a further 15 hours of contact time as a class with the module team. This will typically be as 10 x 1.5-hour online classes which will be a combination of activities including lectures, demonstrations, discussions, tutorials and seminars. Some sessions are likely to be in flipped classroom style, where you will be expected to watch online recordings, read materials or respond to practical activities in preparation for active engagement with problem solving in the online session.



1:1 Progress Checks: 1 hour

As a Blended Learner understanding your progress can be a challenge so you are allocated an hour of 1:1 time with your tutor (typically 3 x 20 minute). Some of these may be in small groups if appropriate. These sessions may be used to discuss key topics, troubleshoot salutations, review working drafts etc.



Guided Independent Learning: 178 hours.

The module leader will provide resources through the virtual learning environment which will include videos and presentations as well as links to useful websites and other resources. Additional academic learning will be achieved through reading around the subject area, module tutors will suggest useful texts, though many others will be suitable and can be found in our e-library. You should also draw on the expertise in your workplace via your workplace mentor and other colleagues. If you require help understanding any of the concepts, you should contact your module tutor for assistance.

As an apprentice you are constantly developing your Digital Skills as part of your substantial role, and this applies to the development of the knowledge for your modules too. In some cases, there will be a significant cross over between the module content and in others less so, depending on the nature of your workplace duties, this will have direct impact on to the number of Independent Learning required.



Within the Independent learning time you will be expected to complete your assignments, as a guide a typical module assignment should take around 60 hours to complete.
RESOURCES
Development kit such as: Java SDK, Python, rust

Development environments such as: Intellij, Visual Studio, Visual Studio Code or cloud-based tools.
REFERENCE TEXTS
All texts and electronic resources will be updated and refreshed on an annual basis and available for students via the online Study Links resource platform. All reference materials will be collated and curated and aligned to Equality, Diversity & Inclusion indicators.

Core Text/Resource:

Sierra, K. and Bates, B. (2021). ‘Head First Java’. O’Reilly Media, Inc.

Stellman, A.¿ and Greene, J. (2020). 'Head First C#, 4th edition', O'Reilly. ISBN-13: 978-0596514822

Wengrew, J. (2020). ‘A Common-Sense Guide to Data Structures and Algorithms, 2e: Level Up Your Core Programming Skills’

Advanced/Supplementary Text/Resource:

Martin, R. (2009). 'Clean Code. A handbook of Agile Software Craftsmenship'. Prentice Hall.

McConnell, S. (2004). 'Code Complete. 2nd Edition'. Microsoft Publishing.
WEB DESCRIPTOR
This module introduces you to software development and programming. You will learn how to analyse a problem, select suitable test criteria, design an appropriate solution, implement clear code and ensure that your solution works as expected. Whether a complete novice or someone with some prior experience you will benefit from studying this module.