|Module Name||Introduction to Programming I|
|ECTS Weighting||5 ECTS|
|Semester taught||Semester 1|
|Module Coordinator/s||Dr Kenneth Dawson Howe|
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. Write functions to address specific problems;
5. Use primitive data types, Strings and arrays;
6. Write, compile, test, and debug imperative programs using an Interactive Development Environment (IDE)
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 imperative approach to program design and teaches them how to write programs in Java. 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
Teaching and learning Methods
- Pre-recorded lectures & mini tests. Material is presented through lectures mainly with around 4 pre-recorded lecture sessions provided per week (totalling less than 2 hours per week). After each pre-recorded lecture students are asked to complete a small mini-test is given to test their understanding of the material.
- Q&A. Each week a single in-person lecture is scheduled in person where we will discuss the material covered over the previous week, along the tutorial problem addressed during previous week, the assignment set for the next week and some other issues (such as testing). These are intended to be highly interactive sessions.
- Tutorials. Each week a tutorial is help where students are asked to solve one or two programs with the assistance of the lecturer and demonstrators. The class may have to be broken into multiple sessions for this. Sample solutions are provided after the tutorials.
- Assignments. Weekly assignments are set to give allow students more experience writing code. A lab session is provided (one per week for each student) where demonstrators will assist with any issues. Programs must be developed independently and submitted to ‘submitty’ which will provide automatic feedback on whether the functionality is working as specified. The clarity is also important and demonstrators will also be advising on naming, code layout, etc. during the lab session.
- eTests. The main assessment for the module is done through two supervised ‘eTests’ which are sessions in which students are asked to write a Java program to solve a specific problem. These will be assessed based on the functionality and on the clarity (i.e. ease of understanding) of the code.
|Assessment Component||Brief Description||Learning Outcomes Addressed||% of Total||Week Set||Week Due|
|Mini-tests||Small quizzes to be completed after each pre-recorded lecture session in the first semester.||LO1, LO3, LO4, LO5||5%||Week 2-12||Week 2-12|
|Assignments||Roughly 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.||LO1, LO2, LO3, LO4, LO5, LO6||5%||Week 2-12||Week 3-12|
|e-Test 1||1 hour programming test in a supervised laboratory where students must implement and submit a solution to a programming problem. Students may opt not to sit this eTest and if they do not sit the test (for any reason) or the test is cancelled then the weighting of e-Test 2 will be increased to 90%. Note that if the duration of the semester is reduced (due to a late start for example) it may be necessary to cancel this eTest.||LO1, LO2, LO3, LO5, LO6||0% or 30%||Week 6 or Reading Week||Week 6 or Reading Week|
|e-Test 2||2 hour programming test in a supervised laboratory where|
students must implement and submit a solution to a programming problem.
|LO1, LO2, LO3, LO4, LO5, LO6||60% or 90%||Week 12 or Study Week or during the Exam Period||Week 12 or Study Week or during the Exam Period|
Examination by e-Test (2 hours, 100%). The supplemental mark in this module is based only on the supplemental e-Test. Students must develop and implement Java program to solve a specified problem in a development environment on a machine in a supervised laboratory.
Contact Hours and Indicative Student Workload
Recommended Reading List
Prerequisite modules: None.
Other/alternative non-module prerequisites: None.