Page 1 of 1

Module Code - Title:


Year Last Offered:


Hours Per Week:













Grading Type:


Prerequisite Modules:

Rationale and Purpose of the Module:

To provide a language independent introduction to programming using one programming language, and to identify the utility of programming for simple problems in a range of domains. The programming language and its operating environment is selected by the Department and the selection is reviewed regularly, based on current industry norms.


1. Programming process: understanding the problem, planning the logic, designing the solution, coding the program, translating the program into machine language, testing the program: syntax and semantics. 2. Definition of variables/data: primitive data types; constant definitions; mixed data types. 3. Arithmetic expressions and precedence; assignment statements. 4. Relational expressions, logical expressions and precedence; selection statements; problem solution considerations; data validation; error handling. 5. Looping constructs; problem solution considerations. 6. Introduction to class encapsulation. 7. Modules, subroutines, procedures and functions; flow of control; design considerations; library functions; user defined functions; local and global variables; scope, visibility and lifetime of variables/data; actual and formal arguments/parameters. 8. Desk checking solutions; dry running code; writing self-checking code; systematic debugging approaches. 9. One dimensional arrays and their manipulation. 10. String manipulation. 11. Input and Output. 12. Designing solutions for basic problems in different application domains using the knowledge acquired in a-k.

Learning Outcomes:

Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

On successful completion of this module, students should be able to: 1. Design, formulate and assemble software components (i.e. methods and functions) to solve simple, specified programming problems from a domain. 2. Construct, use, evaluate and revise rudimentary testing strategies for programs purporting to solve a specified programming problem. 3. Employ the software tools required to create, distribute and backup software artefacts. 4. Employ and appraise basic data types and structures (e.g. arrays, records) for appropriateness for a given problem context.

Affective (Attitudes and Values)

On successful completion of this module, students should be able to: 1. Transpose problem knowledge into program-solution knowledge with respect to simple problems. 2. Embrace the value of computation with respect to such problems. 3. Acknowledge the benefits of teamwork and shared solution development.

Psychomotor (Physical Skills)


How the Module will be Taught and what will be the Learning Experiences of the Students:

The lectures will be used to present programming concepts and related examples (Knowledgeable). The labs will allow students to develop their understanding of these concepts through programming exercises for pre-specified problems, and for self-specified problems from the domain of their initial degree (Creative). There will be group projects that will involve joint problem solving and distribution of work (Collaborative). Students will also be required to evaluate their solutions, to ensure proper functionality (Responsibility)

Research Findings Incorporated in to the Syllabus (If Relevant):

Prime Texts:

Y.D. Liang (2011) Introduction to Java Programming (8th edition) , Pearson Higher Education

Other Relevant Texts:

J.M. Farrell (2014) A Guide to Programming Logic and Design , Course Technology

Programme(s) in which this Module is Offered:

Semester - Year to be First Offered:

Module Leader: