Computing Science 1P (Standard Route) COMPSCI1001
- Academic Session: 2023-24
- School: School of Computing Science
- Credits: 20
- Level: Level 1 (SCQF level 7)
- Typically Offered: Runs Throughout Semesters 1 and 2
- Available to Visiting Students: Yes
The CS1P course is designed for students with good foundational computational thinking skills - that is, a solid understanding of basic programming concepts and the ability to solve simple unseen programming problems from scratch with no assistance. The course reviews this foundation and then builds on it by developing students' ability to reason about elements of the software development process, including for example, complexity of algorithms, rigorous testing techniques and problem solving methodologies.
Lectures 44 taught at 2 per week and a 2-hour laboratory/tutorial session weekly throughout the session. One of the lecture sessions each week may take the form of a large group tutorial.
Examination 60%, Class Tests 20%, Laboratory examinations 20%.
Main Assessment In: April/May
Are reassessment opportunities available for all summative assessments? No
Reassessments are normally available for all courses, except those which contribute to the Honours classification. For non Honours courses, students are offered reassessment in all or any of the components of assessment if the satisfactory (threshold) grade for the overall course is not achieved at the first attempt. This is normally grade D3 for undergraduate students and grade C3 for postgraduate students. Exceptionally it may not be possible to offer reassessment of some coursework items, in which case the mark achieved at the first attempt will be counted towards the final course grade. Any such exceptions for this course are described below.
The coursework cannot be redone because the feedback provided to the students after the original coursework would give any students redoing the coursework an unfair advantage.
The aim of the CS1P course is to review and build on students' existing programming skills in order to develop analytic skills critical for embedding sound software engineering practices.
Intended Learning Outcomes of Course
By the end of the course students will be able to:
1. Design, implement, and evaluate programs using fundamental programming constructs, including functions, iteration, recursion, types, strings, files, sequences, maps, sets, sorting, searching, exceptions, classes and arrays;
2. Recognise and apply procedural, functional, event-driven, and object-oriented programming to solve a given problem;
3. Identify, select, and apply appropriate techniques, libraries, and algorithms to solve a given problem;
4. Read and reason about code, and clearly articulate understanding of code in terms of structure, behaviour, correctness, efficiency, style and idiom.
5. Communicate their understanding of a problem and solution approach clearly, design top-level plans for a problem, and translate these plans into a working program;
6. Analyse the time complexity of a program using Big-O notation, and write a efficient code to solve a given problem;
7. Identify different types of errors that can occur in a program, deploy testing strategies to fix these errors, and build robust programs to solve a given problem.
Minimum Requirement for Award of Credits
Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment, and satisfy requirements on attendance and formative assessment as laid out in course documentation.