CS3101 - Programming (2017/18)
|Module specification||Module approved to run in 2017/18|
|Module level||Foundation (03)|
|Credit rating for module||30|
|School||School of Computing and Digital Media|
|Total study hours||300|
|Running in 2017/18||
The module introduces students to theoretical concepts underpinning computer software design; and to programming using a high-level language concentrating on sequence, selection, iteration (loops) and list processing. It is assessed by individual tests (30% weighting) and a group programming assignment (30% weighting).
To enable the student to use a programming language in a familiar and confident way in a variety of practical situations, and to use an integrated programming development environment competently.
It also enables the student to design and write simple programs, individually and in groups, using the programming language constructs described in the syllabus below; and to develop techniques to ensure software quality and robustness, and to produce a reflective report.
Program development using a PC editor and an interpreter/compiler and other elements of an integrated development environment such as help screens.
Introduction to input and output by displaying messages, displaying prompts and accepting input.
Writing simple programs using the correct syntax and layout, use of comment lines. Understanding error messages, debugging programs.
Variables: types of values including strings, integers, floats and characters.
The use of functions.
Arithmetic operators +, -, *, /, modulus and integer division.
Repetition using loops.
In built data types including lists and list processing.
Taking a problem and breaking it down into manageable chunks using stepwise refinement.
Use of pseudocode and/or structure charts.
Translating a problem solution into a program structure.
Learning and teaching
A combination of:
- Lectures for defining theoretical concepts and to provide support for the workshop practical sessions
- Workshops for demonstrating and using software tools to acquire hands-on experience and build solutions. Open learning materials will encourage the students to work at their own speed and develop their self-learning skills.
- Progress tests, both formative and summative, will take place throughout this year long module to enable feedback for learning. Students are expected to spend time on directed reading and additional exercises to prepare for the progress tests and to attend all tests and face to face feedback sessions.
- Coursework assignment for reporting a technical solution; and for reporting personal, and presenting group, reflection on the process.
- Blended learning through the use of a Virtual Learning Environment (VLE) for providing open learning study materials, setting problem scenarios, providing prepared solutions, allowing the submission of student assessment and providing mechanisms for feedback for learning. Students will be encouraged to use the VLE to manage their own learning
- Demonstration of software solutions for evaluation and reflection of individual, and where appropriate, group practice.
LO1: Describe and use the main elements of computer systems and be able to use these systems and present information in an ethical and professional manner.
LO2: Appreciate the need and relevance of data types, including arrays, and numbering systems.
LO3: Use a high level programming language together with its integrated development environment and develop tests to find faults and improve software robustness and correctness.
LO4: Analyse a problem and produce an algorithm and then a structured program to solve the problem using a top down technique such as stepwise refinement of pseudo-code.
L05: Work within a group to analyze a problem, design a solution and provide working programs.
The module will be assessed through both progress tests and coursework assignments:
Diagnostic Tests, or exercises (formative): in class, in weeks 3 and 4 to test the students understanding of lecture and practical material respectively with feedback for learning given in class. Students failing these tests will be encouraged to seek additional support.
Progress tests (summative, each weighted at 20%): questions testing the students understanding of the lecture and workshop material plus a programming exercise held in the computer laboratories, in weeks 10 and 16, will assess the knowledge and practical abilities of the students. (This will assess LO2-LO4).
Assignment (summative, 30% weighting): A longer group programming exercise will be set to encourage the students to work in teams and develop the communication skills necessary to analyse a problem and provide a solution. The group deliverables will include: commented code, a short presentation and students will also submit a short individual report reflecting on their own contribution to the group effort. Every student will also submit a peer marking pro-forma in which they award a contribution grade to every member of the group including themselves. Where students need to be reassessed in group elements, the individual students will be required to re-work the original submissions to meet criteria agreed with the teaching staff. (This will assess LO1-LO5).
Exam (online multiple choice): weighting 30%. (This will assess LO1-LO4).
Zelle, J (2004) Python programming: an introduction to computer science, Franklin, Beedle & Associates, FIRST EDITION. Python Version 2. [CORE]
Brookshear, JG (2014) Computer Science An Overview, (12th edition), Pearson Education, ISBN 0-32-1544285.
Reed, D (2008) A Balanced Introduction to Computer Science, (2nd edition) Pearson/Prentice Hall, ISBN 0-13-127774.
Dale, N and Lewis, J (2012). Computer Science Illuminated, (5th Edition), Jones and Bartlett. ISBN 978-1449672843.
A set book will be chosen for the programming language in which the module will be taught.