Foundations of Programming for Computer Science
Occurrence | Teaching period |
---|---|
A | Autumn Term 2022-23 |
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.
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. |
Task | % of module mark |
---|---|
Online Exam -less than 24hrs (Centrally scheduled) | 100 |
None
Task | % of module mark |
---|---|
Online Exam -less than 24hrs (Centrally scheduled) | 100 |
Feedback is provided through work in practical sessions, formative assessments, and after the final assessment as per normal University guidelines.
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