Academic Handbook Course Descriptors and Programme Specifications

LCSCI4208 Fundamentals of Computer Science II Course Descriptor

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
Print/Save PDF