Module Catalogue 2024/25

CSC1036 : Programming Portfolio

CSC1036 : Programming Portfolio

  • Offered for Year: 2024/25
  • Module Leader(s): Dr Konrad Dabrowski
  • Lecturer: Dr Fedor Shmarov, Dr Mengwei Xu
  • Teaching Assistant: Mrs Chinomnso Ekwedike
  • Owning School: Computing
  • Teaching Location: Newcastle City Campus
Semesters

Your programme is made up of credits, the total differs on programme to programme.

Semester 2 Credit Value: 30
ECTS Credits: 15.0
European Credit Transfer System
Pre-requisite

Modules you must have done previously to study this module

Pre Requisite Comment

N/A

Co-Requisite

Modules you need to take at the same time

Co Requisite Comment

N/A

Aims

By the end of this module students will have gained further experience in, and a knowledge of the basic concepts of all stages of the software engineering lifecycle, both as individuals and as members of a team, namely requirements analysis, design, coding, testing and maintenance. Emphasis will be placed on the development of programming skills. An active learning, problem-based approach is adopted.

Students will be given a series of practical problems that relate to various stages of the software engineering lifecycle. Supplementary lecture materials will introduce the topics to be tackled, and how to tackle them, thus giving students practical enrichment of that material. Students will have gained further awareness of the legal, social, ethical and professional aspects of being a practicing software engineer.

Outline Of Syllabus

Students expand their knowledge and experience in all stages of the software engineering life-cycle.

Lectures and tutorials expand upon general principles of:

The building blocks and structure of computer programs

- Data structures, collection classes, generic types and iteration,
- Time, space, speed trade-offs in program design,
- Understanding programming abstraction
- Exploring and realizing higher level abstractions,
- Error checking/programming with exception handling,
- Recursion with examples from sorting and searching,
- Event Driven Programming
- Design patterns: immutability, factories, singleton, composition.

Students will gain further insight into the legal, social, ethical and professional aspects of being a software engineer

Learning Outcomes

Intended Knowledge Outcomes

After completing this module students will be able to articulate, at a basic level, the wider engineering context that applies to developing complex software systems. They will be able to:


Explain the relationship between data abstractions and computer memory.

Identify opportunities to use abstraction for code refactoring to promote efficiency and maintainability

Outline the advantages and disadvantages of different programming approaches (abstractions, data structures, program flow)

Describe the impact on resource usage (time, space, processor) of their design decisions

Summarise the legal, social, ethical and professional issues arising in real situations.

Report on the processes involved in developing software as part of a team

Intended Skill Outcomes

After completing this module students will be able to tackle all aspects of the software engineering lifecycle, and will be able to:

• Translate a design into well formatted, well documented, efficient piece of software using appropriate
abstractions
• Develop and deploy an appropriate error handling strategy for their software
• Choose and use appropriate storage mechanisms for data
• Evaluate online sources of supporting material
• Schedule their work effectively
• Reflect on their role as part of a software development team

Teaching Methods

Teaching Activities
Category Activity Number Length Student Hours Comment
Scheduled Learning And Teaching ActivitiesLecture221:0022:00Synchronous present in person (PiP) tutorial sessions if possible, or synchronous online sessions
Guided Independent StudyAssessment preparation and completion223:0066:00Lecture and Practical follow up, includes time for formative exercises
Structured Guided LearningLecture materials221:0022:00Asynchronous online materials
Guided Independent StudyAssessment preparation and completion225:0050:00The Software Artefacts
Scheduled Learning And Teaching ActivitiesPractical222:0044:00Synchronous PiP practical sessions if possible, and/or synchronous online sessions.
Guided Independent StudyIndependent study196:0096:00Background reading
Total300:00
Teaching Rationale And Relationship

Lectures materials will be used to introduce each project, and aspects of software engineering, particularly programming. During their independent study time, students will review online materials providing further support for development of programming skills. They will also use this time tackle the problems set, as individuals or in teams.

For each topic/problem students will provide a software artefact that contributes to their portfolio of evidence of the activities they have undertaken.

The lecture and practical sessions will provide support for developing the skills they need for these activities.

Reading Lists

Assessment Methods

The format of resits will be determined by the Board of Examiners

Other Assessment
Description Semester When Set Percentage Comment
Case study2M100Two Software artefacts
Formative Assessments

Formative Assessment is an assessment which develops your skills in being assessed, allows for you to receive feedback, and prepares you for being assessed. However, it does not count to your final mark.

Description Semester When Set Comment
Prob solv exercises2MPractical/tutorial exercises.
Assessment Rationale And Relationship

Students will produce a portfolio of evidence that they have mastered practical skills in software development applied to a variety of problems chosen to reflect real world applications but targeted at the skill level of the students when the work is set.

Two software artefacts equivalent to 2000 words total will be required. Each artefact will also contain a reflective report on the skills gained. These artefacts will be undertaken either as individuals or in teams.

Students will be given a range of formative exercises to introduce them to relevant tools, develop their understanding of programming concepts and provide them with the opportunity to gain experience through practical application.

Timetable

Past Exam Papers

General Notes

N/A

Welcome to Newcastle University Module Catalogue

This is where you will be able to find all key information about modules on your programme of study. It will help you make an informed decision on the options available to you within your programme.

You may have some queries about the modules available to you. Your school office will be able to signpost you to someone who will support you with any queries.

Disclaimer

The information contained within the Module Catalogue relates to the 2024 academic year.

In accordance with University Terms and Conditions, the University makes all reasonable efforts to deliver the modules as described.

Modules may be amended on an annual basis to take account of changing staff expertise, developments in the discipline, the requirements of external bodies and partners, and student feedback. Module information for the 2025/26 entry will be published here in early-April 2025. Queries about information in the Module Catalogue should in the first instance be addressed to your School Office.