Academic Handbook Course Descriptors and Programme Specifications
LCSCI4208 Fundamentals of Computer Science II Course Descriptor
Last modified on September 13th, 2024 at 2:11 pm
Course code | LCSCI4208 | Discipline | Computer Science |
UK credit | 15 | US credit | 4 |
FHEQ level | 4 | Date approved | November 2022 |
Core attributes | Analysing and Using Data (AD); Engaging with the Natural and Designed World (ND) | ||
Pre-requisites | LCSCI4207 Fundamentals of Computer Science I | ||
Co-requisites | None |
Course Overview
This course examines object-oriented programming and associated algorithms using complex data structures – for example, nested structures and nonlinear structures, including hash tables, trees, and graphs. The course emphasises abstraction, encapsulation, inheritance, polymorphism, recursion, and object-oriented design patterns, and teaches students to apply these patterns to sample applications that illustrate the breadth of computer science.
Learning Outcomes
On successful completion of the course, students will be able to:
Knowledge and Understanding
K1a | Demonstrate knowledge and understanding of basic design principles, programming practices, tools, and techniques for software development. |
K3a | Choose among basic design patterns and practices to design and implement small to moderately sized programs. |
Subject Specific Skills
S1a | Evaluate the impact of program design decisions and implementations on the technical, social and management dimensions of software.. |
S2a | Demonstrate practical use of object-oriented design concepts, including encapsulation and inheritance, in software. |
Transferable and Employability Skills
T1a | Write clear, concise, and well-documented code. |
T3a | Display a developing technical proficiency in written English and an ability to communicate clearly and accurately in structured and coherent pieces of writing. |
Teaching and Learning
This course has a dedicated Virtual Learning Environment (VLE) page with a syllabus and range of additional resources (e.g. readings, question prompts, tasks, assignment briefs, discussion boards) to orientate and engage students in their studies.
The scheduled teaching and learning activities for this course are:
Lectures/labs. 40 scheduled hours – typically including induction, consolidation or revision, and assessment activity hours:
- Version 1:All sessions in the same sized group, or
- Version 2: most of the sessions in larger groups; some of the sessions in smaller groups
Faculty hold regular ‘office hours’, which are opportunities for students to drop in or sign up to explore ideas, raise questions, or seek targeted guidance or feedback, individually or in small groups.
Students are to attend and participate in all the scheduled teaching and learning activities for this course and to manage their directed learning and independent study.
Indicative total learning hours for this course: 150
Assessment
Both formative and summative assessment are used as part of this course, with purely formative opportunities typically embedded within interactive teaching sessions, office hours, and/or the VLE.
Summative Assessments
AE: | Assessment Activity | Weighting
(%) |
Duration | Length
(words) |
1 | Set Exercises | 30 | 1.5 – 2 hours | N/A |
2 | Project | 40 | 24 – 32 hours | N/A |
3 | Project | 30 | 24 – 32 hours. | N/A |
Further information about the assessments can be found in the Course Syllabus.
Feedback
Students will receive formative and summative feedback in a variety of ways, written (e.g. marked up on assignments, through email or the VLE) or oral (e.g. as part of interactive teaching sessions or in office hours).
Indicative Reading
Note: Comprehensive and current reading lists are produced annually in the Course Syllabus or other documentation provided to students; the indicative reading list provided below is for a general guide and part of the approval/modification process only.
- Matthias Felleisen, Robert B. Findler, Matthew Flatt, and Shriram Krishnamurthi. 2014. How to Design Programs, Second Edition. MIT Press. Available at htdp.org.
- Matthias Felleisen, Matthew Flatt, Robert Bruce Findler, Kathryn E. Gray, Shriram Krishnamurthi, and Viera K. Proulx. 2012. How to Design Classes.
Indicative Topics
Note: Comprehensive and current topics for courses are produced annually in the Course Syllabus or other documentation provided to students; the indicative topics provided below are used as a general guide and part of the approval/modification process only.
- Classes, class hierarchies, interfaces for abstraction
- Linear structures and their algorithms – lists, queues, and stacks
- Direct access structures and their algorithms – array lists and vectors
- Sorting and searching
- Value-dependent (parametric) data structures and related algorithms – binary search trees, heaps, hash tables, and dictionaries
- Composite structures and algorithms – graphs and graph traversals
- Allusion to design patterns
Version History
Title: LCSCI4208 Fundamentals of Computer Science 2
Approved by: Academic Board Location: |
|||||
Version number | Date approved | Date published | Owner | Proposed next review date | Modification (as per AQF4) & category number |
2.1 | July 2023 | September 2024 | Dr Alexandros Koliousis | November 2027 | Category 1:
Corrections/clarifications to documents which do not change approved content or learning outcomes |
2.0 | August 2023 | August 2023 | Dr Alexandros Koliousis | November 2027 | Category 2: Change to summative assessment |
1.0 | November 2022 | January 2023 | Dr Alexandros Koliousis | November 2027 |