• Unit code       D/615/1618 
  • Unit type        Core
  • Unit level       4
  • Credit value  15

I. Introduction

Programming involves describing processes and procedures which are derived from algorithms. The ability to program is what sets apart a developer and an end user. Typically the role of the developer is to instruct a device (such as a computer) to carry out instructions; the instructions are known as source code and is written in a language that is converted into something the device can understand. The device executes the instructions it is given.

Algorithms help to describe the solution to a problem or task; by identifying the data and the process needed to represent the problem or task and the set of steps needed to produce the desired result.

Programming languages typically provide the representation of both the data and the process; they provide control constructs and data types (which can be numbers, words, and objects, and be constant or variable).

The control constructs are used to represent the steps of an algorithm in a convenient yet 

unambiguous fashion. Algorithms require constructs that can perform sequential processing, selection for decision-making, and iteration for repetitive control. Any programming language that provides these basic features can be used for algorithm representation.

This unit introduces students to the core concepts of programming with an introduction to algorithms and the characteristics of programming paradigms.

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

On successful completion of this unit students will be able to design and implement algorithms in a chosen language within a suitable Integrated Development Environment (IDE). This IDE will be used to develop and help track any issues with the code.

As a result they will develop skills such as communication literacy, critical thinking, analysis, reasoning and interpretation which are crucial for gaining employment and developing academic competence.

II. Learning outcomes (BTEC, globalization):

  1. LO1: Define basic algorithms to carry out an operation and outline the process of programming an application.
  2. LO2: Explain the characteristics of procedural, object-orientated and event-driven programming, conduct an analysis of a suitable Integrated Development Environment (IDE)
  3. LO3: Implement basic algorithms in code using an IDE.
  4. LO4: Determine the debugging process and explain the importance of a coding standard

III. Objectives (FGW, localization): (optional)

  • To understand the basics of procedural programming (variables, constants, operations, expressions, conditional statements, loops, array, functions, parameters, return values)
  • To understand the basics of object-oriented programming (class, attributes, methods, encapsulation, inheritance, override, overload)
  • To understand the basics of event-driven programming with Windows form in C#
  • To apply simple design for a solution with flow chart diagram and UML class diagram
  • To implement a window form program in C# with .NET IDE
  • To apply simple testing & debugging techniques

IV. Resource & Material


V. Textbook


  • AHO, A. V. et al. (1987) Data Structures and Algorithms. 
  • HUNT, A. et al. (2000) The Pragmatic Programmer: From Journeyman to Master. 1st Ed. Addison-Wesley.
  • MCCONNELL, S. (2004) Code Complete: A Practical Handbook of Software Construction. 2nd Ed. Microsoft Press.