Accessibility statement

Software 1: Foundations of Programming for Computer Science - COM00015C

« Back to module search

  • Department: Computer Science
  • Module co-ordinator: Dr. Lilian Blot
  • Credit value: 20 credits
  • Credit level: C
  • Academic year of delivery: 2022-23

Module summary

Foundations of Programming for Computer Science

Module will run

Occurrence Teaching period
A Autumn Term 2022-23

Module aims

Students will be introduced to different programming constructs, basic data structures, command line tools, integrated development environments and unit testing of programs. Students will learn how to describe well-defined tasks using pseudocode and translate them into programs using a procedural programming paradigm. The module will be taught using Python as a procedural language for practising these skills.

Module learning outcomes

 

S101

Write small procedural programs from scratch to perform well-defined tasks, following well-defined requirements, in a procedural programming language like Python. Relate the syntax of the language to its semantics, and analyse the result of executing fragments of syntax.

S102

Describe and apply the fundamental concepts of procedural programming.

S103

Develop programs incrementally, using simple tests (automated where appropriate) to check each increment

S104

Describe and apply the benefits of modular software design.

S105

Store data in memory in standard built-in collection types, and to store and retrieve data from simple text files such as CSV and JSON files.

S106

Implement simple algorithm written in pseudocode.

S107

Describe and implement common data structures such as stacks and queues.

S108

Integrate library code with their own programs using appropriate software tools.

S109

Use an appropriate software development environment, such as Eclipse, IntelliJ

S110

Given a program and a debugging tool, students will be able to identify and correct bugs which prevent the program from functioning as intended.

S111

Organize and document program code following the principles of software engineering. Write documentation to explain the design and implementation of their own code, or example code which is supplied to them.

S112

Implement bespoke data structures to store states of a process.

Assessment

Task Length % of module mark
Online Exam -less than 24hrs (Centrally scheduled)
Software 1 Lab Exam
5 hours 100

Special assessment rules

None

Reassessment

Task Length % of module mark
Online Exam -less than 24hrs (Centrally scheduled)
Software 1 Lab Exam
5 hours 100

Module feedback

Feedback is provided through work in practical sessions, formative assessments, and after the final assessment as per normal University guidelines.

Indicative reading

Allen B. Downey - Think Python: How to Think Like a Computer Scientist - 2nd ed. (2015), O'Reilly Media

Mike Dawson - Python programming for the absolute beginner - 3rd ed. (2010) - Course Technology

Kent D. Lee and Steve Hubbard - Data structures and algorithms with Python (2015), Springer



The information on this page is indicative of the module that is currently on offer. The University is constantly exploring ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary by the University. Where appropriate, the University will notify and consult with affected students in advance about any changes that are required in line with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.