Module ICL-1007:
Introduction to Programming

Module Facts

Run by School of Computer Science and Electronic Engineering

20 Credits or 10 ECTS Credits

Semester 1 & 2

Overall aims and purpose

This module will introduce learners to the fundamental concepts used in the development of computer programs using an appropriate development language for example Java, Python or Visual Basic . The learners will gain an understanding of the process of program creation from examination of an initial problem through to designing and developing a final solution.

Course content

Indicative content includes:

● Structured or graphical solutions to given problems using techniques such as flow charts and pseudo code.

● Program development taking into account current good practice and development cycles including design, creation and testing.

● Build solutions using a range of programming to include: Structures and types (such as int, double, bool, String, char, float), sequence (including order, input and output), conditional statements (including if, else, else if and switch case), iteration (including for, while and do), methods (such as constructing, calling, parameters, return values and scope), classes (including creation and use) and error handling (including try and catch).

● Code interaction with the user giving sensible and contextual response.

● Simple testing such as sample test data and testing tables for a given problem.

Assessment Criteria


Equivalent to the range 70%+. Assemble critically evaluated, relevent areas of knowledge and theory to constuct professional-level solutions to tasks and questions presented. Is able to cross-link themes and aspects to draw considered conclusions. Presents outputs in a cohesive, accurate, and efficient manner.


Equivalent to 40%. Uses key areas of theory or knowledge to meet the Learning Outcomes of the module. Is able to formulate an appropriate solution to accurately solve tasks and questions. Can identify individual aspects, but lacks an awareness of links between them and the wider contexts. Outputs can be understood, but lack structure and/or coherence.


Equivalent to the range 60%-69%. Is able to analyse a task or problem to decide which aspects of theory and knowledge to apply. Solutions are of a workable quality, demonstrating understanding of underlying principles. Major themes can be linked appropriately but may not be able to extend this to individual aspects. Outputs are readily understood, with an appropriate structure but may lack sophistication.

Learning outcomes

  1. Use the basic structure and features of a programming language.

  2. Devise and use a methodical test plan to comprehensively test the solution.

  3. Design and build a complex application/s using a range of programming techniques.

  4. Demonstrate understanding of current trends and employment opportunities regarding programming languages.

Assessment Methods

Type Name Description Weight
COURSEWORK Develop a simple program

Research and discuss current trends and employment opportunities regarding programming languages. Develop a simple program (or programs) to a given brief to include structures, sequence and conditional statements.

COURSEWORK Iteration Program

Design, code and test a program (or programs) to a given brief to include iteration.

COURSEWORK Method-based Program

Design, code and test a complex program (or programs) to a given brief to include methods.


Teaching and Learning Strategy


140 of 200 notional learning hours - 140 hours of tutor directed student learning.

The tutor directed student learning will be supported by online learning materials hosted or signposted on the Grŵp VLE.


60 of the 200 notional learning hours - 60 hours classroom-based.

The classroom-based element will include student-centred learning methods such as interactive lectures, case studies, group discussions and practical workshops.


Transferable skills

  • Literacy - Proficiency in reading and writing through a variety of media
  • Numeracy - Proficiency in using numbers at appropriate levels of accuracy
  • Computer Literacy - Proficiency in using a varied range of computer software
  • Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
  • Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
  • Self-awareness & Reflectivity - Having an awareness of your own strengths, weaknesses, aims and objectives. Able to regularly review, evaluate and reflect upon the performance of yourself and others

Subject specific skills

  • Knowledge and understanding of facts, concepts, principles & theories
  • Problem solving strategies
  • Deploy theory in design, implementation and evaluation of systems
  • Specify, design or construct computer-based systems
  • Deploy tools effectively
  • Development of general transferable skills
  • Specify, deploy, verify and maintain information systems
  • System Design
  • Knowledge and/or understanding of appropriate scientific and engineering principles
  • Specify, deploy, verify and maintain computer-based systems


Reading list

Cadenhead R., 2014. Java in 24 Hours , Sams Teach Yourself, 7 th ed, Sams.

Deitel & Deitel, 2007., Java How to program . 7 th ed, Pearson,

Dawson, M, 2010 . Python Programming for the Absolute Beginner . 3 rd ed, Course Technology PTR

Lowe D., 2014. Java All-in-One For Dummies , 4 th ed, John Wiley & Son s Halvorson, M. 2013 Microsoft Visual Basic 2013 Step by Step , Microsoft Press.

Hutt, R. 2014 Python: Learn Python FAST! - The Ultimate Crash Course to Learning the Basics of the Python Programming Language In No Time. CreateSpace Independent Publishing Platform

McGrath, M. 2010 Visual Basic In Easy Steps . 3 rd ed, Computer Step.

McGrath M., 2011. Java In Easy Steps, 4 th ed, In Easy Steps Limited.

Picking R., 2007. Get on up with Java , Lexden

Schildt H., 2014. Java: A Beginner's Guide , 6 th ed, McGraw-Hill Osborne.


Courses including this module