programming

Programming

Module Trainer: Chris Farrell

This module introduces students to the core concepts of programming with an introduction to algorithms and the characteristics of programming paradigms. Appropriate programming languages will be chosen to illustrate the concepts. It is not the intent of this module to teach apprentices to become proficient programmers. If this is a requirement of their employment, then it will be the employer’s responsibility.

Among the topics included in this module are: introduction to algorithms, procedural, object-orientated & event-driven programming, the integrated development environment and the debugging process.

Development lifecycles and processes are covered along with code repositories and version management

You will cover:

  • algorithms and program design
  • fundamental programming concepts
  • fundamental data structures
  • typical program development environment and methods
  • object-oriented programming
  • functional programming
  • full-stack development - 3 tier model: presentation, application and data tiers
  • event driven and reactive programming
  • language translation and execution
  • syntax analysis
  • compiler semantic analysis;
  • code generation
  • coding in assembly language
  • machine code
  • scripting languages
  • database query language
  • the different aspects of the software development lifecycle and how they combine to deliver successful outcome, for example: need, design, trade-offs, implementation, deployment, support, evolution, validation, verification and assurance
  • different approaches to developing software, including sequential, iterative/agile, etc.
  • advantages and disadvantages of different software development processes along with choice of process in different contexts.
  • selection and use of different tools and environments that support software development at different stages in the lifecycle
  • the principles of systems engineering, including all aspects of technology, people, culture and process and the environment within which a system of interest exists and operates
  • the benefits of a system approach to dealing with challenges arising from complexity, emergence, adaption and co-evolution

All resources can be found on blackboard.

The full assignment brief will be placed here when it is issued

Component A: Unseen examination (2 hours)

Sit: End of block release week 2

Apprentices will be assessed on their knowledge and application of development lifecycles, methodologies and processes.

Component B: Practical coursework (fully documented)

Issued: End of block release week 3

Due: Start of block release week 1 of next module

Apprentices will design algorithms and implement a working piece of software. In each case there must be a technical description, code and evidence of testing and correct function. A short report will explain the development methodologies used in each case.

All assignments will be submitted and feedback given on the UWE Blackboard system

All questions about this module should be directed to the module leader.

Please contact via email, which is monitored continuously

  • programming.txt
  • Last modified: 2024/02/05 14:37
  • by emma