Submitted by Hugh_Hughes on Sun, 08/18/2019 - 19:59
Module Title
Programming Essentials (Semester 1)
Module Credits
10
Module Semester
1
Module Status
Mandatory

This module introduces the learner to programming and develops fundamental skills such as writing, editing, compiling and executing computer code and constructing algorithms to solve problems and produce working computing artefacts in a variety of computer programming languages. 

Objectives

This module will ensure learners meet the following objectives:

  • Introduce the concepts of computer programming, programming languages, algorithms, data structurers and automated problem-solving.
  • Develop problem-solving skills using computing programming. 
  • Establish a basic grounding in an object-orientated programming language.
  • Develop techniques for implementing algorithms in an applicable object orientated language.
  • Introduce the importance of the design, documentation, testing and debugging phases of producing a computing artefact.

Programming Theory Basics:

  • Define what a programming language is
  • Have some knowledge of the history of programming languages
  • Understand the function that a programming language fulfils: translating high level instructions to machine code
  • Classify modern programming languages
  • Examine the kinds of problems that can be automated
  • Outline the concept of an algorithm, and the different implementations of algorithms
  • Construct algorithms, pseudocode and flowcharts before implementation
  • Comprehend the functions that programming language fulfils, translating high-level instructions to machine code. 

Techniques for implementing programs:

  • Outline the process of compiling and executing a program, learning to do this with the command line and also a simple Integrated Development Environment
  • Read error messages and understand what they mean
  • Write a simple 'hello, world' program
  • Understand the concept of assigning a value to a variable; the concept of a variable type
  • Using specialised classes to take receive user input
  • Know flow control statements
  • Implement input and output in a programme. 
  • Use the Scanner class and JOptionPane class to read user input
  • Understand arrays and array processing using iteration, array access and modification
  • Understand the concept of a function
  • Construct appropriate methods and use method calling
  • Understand method signatures: return types and parameters
  • Design and implement appropriate flow control construct for a problem
  • Evaluate common compiler error messages and resolve such errors
  • Construct arrays and implement array processing using iteration, array access and modification

Algorithms:

  • Explain the concept of 'algorithm'
  • Design an algorithm using flowcharts or pseudocode
  • Examine and evaluate different algorithm options for solving problems
  • Implement and compare two searching algorithms: linear search and binary search
  • Explain substitution cypher encryption and decryption algorithms

Design Issues:

  • Explain how models of development change depending on the project size
  • Outline the importance of design and documentation,
  • Discuss the motivation for well-documented, uncomplicated code: to facilitate code re-use and easy discussion and co-operation in groups
  • Demonstrate an appreciation for software maintenance and how good maintenance and re-factoring requires clean and well documented code that follows naming conventions
  • Show a basic knowledge of principles of software testing and debugging.
  • Be aware of the differences between programming languages and which programming languages are suited to particular class of tasks
Module Assessment
Type
Continuous Assessment
Percentage
30%
Type
Proctored practical examination
Percentage
30%
Type
Proctored written examination
Percentage
40%