CSU11010 – Introduction to Programming

Module CodeCSU11010
Module NameIntroduction to Programming
ECTS Weighting [1]10 ECTS
Semester TaughtSemester 1 & 2
Module Coordinator/s  Dr. Kenneth Dawson-Howe & Dr. Hitesh Tewari

Module Learning Outcomes

On successful completion of this module, students will be able to:

  1. Use coding standards when writing programs;
  2. Break problems into sub-problems, which can then be solved using simple algorithms;
  3. Design algorithms using sequence, selection, iteration and recursion;
  4. Design simple classes using primitive data types, Strings and arrays;
  5. Build object-based programs using class-based decomposition;
  6. Write, compile, test, and debug object-based programs using an Interactive Development Environment (IDE);
  7. Recognise the software engineering concerns;
  8. Classes and other abstraction mechanisms.

Module Content

This module provides an introductory course in computer programming. This course takes a practical approach to teaching the fundamental concepts of computer programming with a strong emphasis on tutorial and laboratory work and is an important vehicle for developing students’ analytical and problem-solving skills. This module aims to give students an understanding of how computers can be employed to solve real-world (albeit small) problems. Specifically, this course introduces students to the object-oriented approach to program design and teaches them how to write programs in an object-oriented language (in this case Java). Students also have the opportunity to reinforce their problem solving and programming skills by developing solutions to programming problems and implementing those solutions as object-based programs.

Specific topics addressed in this module include:

  • Types and variables including integer, floating-point and string types;
  • Sequencing, assignment and expressions;
  • Boolean expressions;
  • Selection statements: if, if-else, nested if, and switch-case;
  • Iteration statements: while, for, do-while, and nested loops;
  • Using, creating and designing methods and recursive methods;
  • Design of simple algorithms using sequencing, selection, iteration and methods;
  • Arrays including higher dimensional arrays;
  • Using, creating and designing classes and objects including attributes and methods;
  • Abstraction, encapsulation and immutability in designing classes.

Teaching and Learning Methods

The format of teaching in this module is subject to change, based on the current public health advice.

In the first semester, material is presented through lectures mainly with around 4 pre-recorded lecture sessions provided per week (totaling less than 2 hours per week). At the end of each topic a small mini-test is given to ensure that students are understanding and remaining engaged with the module material. Each week an in-person (or live online) Q&A session is scheduled to deal with any questions which may arise, along with a tutorial session (to get the students writing programs to solve problems using different techniques). Sample solutions are provided after the tutorials. There may also be an in-person (or live online) weekly lab session to provide assistance with the weekly assignments. Feedback is provided on the weekly assignments.

In the second semester, material is presented through two online live lectures per week with all programs provided online. One hour Tutorial and Laboratory sessions will also be conducted online with the class divided into small groups. During tutorials students are asked to solve one or two problems either on paper or on a computer. The lecturer and a large number of demonstrators are constantly talking to individual students to help them learn how to address the problems. Students are asked to write (& submit) regular programming assignments. A one hour lab session is provided to assist students with their bi-weekly assignments. Feedback is provided on the assignments.

Assessment Details

Assessment ComponentBrief DescriptionLearning Outcomes Addressed% of TotalWeek SetWeek Due
Mini-testsSmall quizzes to be completed after each prerecorded lecture session in the first semester.L01, LO2, LO3, LO65%Week 4-12Week 4-12
AssignmentsRoughly weekly assignments where students are asked to implement a solution to a problem in Java. Students must submit a meaningful attempt at least half of the assignments in this semester.L01, LO2, LO3, LO610%Week 5-12Week 5-12
e-Test 12 hour programming test in a supervised laboratory where students must implement and submit a solution to a programming problem. If this e-Test cannot be held face-to-face a real-time online examination will be run. LO1, L02, LO3, LO635%Week 13 or 14Week 13 or 14
e-Test 21 hour programming test in a supervised laboratory where
students must implement and submit a solution to a
programming problem. If this e-Test cannot be held face-to-face a real-time online examination will be run.
LO2, LO3, LO4,
LO5, LO6, LO7
20%Week 18Week 18
e-Test 31 hour programming test in a supervised laboratory where
students must implement and submit a solution to a programming problem. If this e-Test cannot be held face-to-face a real-time online examination will be run.
LO2, LO3, LO4,
LO5, LO6, LO7
20%Week 24Week 24
AssignmentsFour assignments (roughly bi-weekly) where students
are asked to implement an object oriented solution to a problem in Java.
LO2, LO3, LO4,
LO5, LO6, LO7
10%Week 14-22Week 15-23

Note that it may be necessary to reduce the number of assessed programming assignments (if insufficient demonstrators are available). The weights of these assignments will be redistributed over the other programming assignments in the semester.

Reassessment Details

Examination by face-to-face e-Test or Real-time online Exam (if face-to-face assessment is not possible) (3 hours, 100%). The supplemental mark in this module is based only on the supplemental e-Test. Students must develop and implement solutions to two problems in a development environment on a machine in a supervised laboratory.

Contact Hours and Indicative Student Workload

Contact Hours (scheduled hours per student over full module), broken down by:88 hours
Lecture44 hours
Tutorial 22 hours
Labs22 hours
Independent study (outside scheduled contact hours), broken down by:142 hours
Preparation for classes and review of material (including preparation for examination, if applicable)52 hours
Completion of assessments (including examination, if applicable)90 hours
Total Hours230 hours

Recommended Reading List

  • Java How to Program (late objects), Tenth Edition, Paul Deitel and Harvey Deitel, Prentice Hall, 2015.
  • Introduction to Programming in Java: An Interdisciplinary Approach, Robert Sedgewick and Kevin Wayne, Addison Wesly, 2008.
  • Algorithmics The Spirit of Computing,Third Edition, David Harel with Yishai Feldman, Addison Wesly, 2004.
  • Schaum’s Outline of Theory and Problems of Programming with Java, Second Edition, John R. Hubbard, McGraw-Hill Companies, 2004.
  • Please check the Blackboard CS1010 Module website for details of other texts and online resources.

Module Pre-requisites

Prerequisite modules: N/A

Other/alternative non-module prerequisites: N/A

Module Co-requisites


Module Website