Skip to main content


CSC1034 : Programming Portfolio 1

  • Offered for Year: 2024/25
  • Module Leader(s): Dr Phillip Lord
  • Lecturer: Dr Jennifer Warrender, Dr Jichun Li
  • Other Staff: Mr Omid Akbarzadeh, Mrs Mahdieh Zaker, Ms Hasti Kamali
  • Owning School: Computing
  • Teaching Location: Newcastle City Campus

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

Semester 1 Credit Value: 30
ECTS Credits: 15.0
European Credit Transfer System


By the end of this module students will have gained, at an introductory level, experience in, and a knowledge of the basic concepts of all stages of the software engineering lifecycle, namely requirements analysis, design, coding, testing and maintenance. Particular emphasis will be placed on the development of programming skills. An active learning, problem-based approach will be adopted. Students will be given a series of practical problems that relate to various stages of the software engineering lifecycle. Supplementary lectures and online materials will introduce the topics to be tackled, and how to tackle them. Topics will be selected broadly from across computing, thus giving students practical enrichment of that material, and/or to specialisms that can be studied at Stages 2 and 3 (HCI, Security, Bio, Trends in Pervasive Computing, Games, Software Engineering, Data Analytics). Students will have gained awareness of the legal, social, ethical and professional aspects of being a practising software engineer.

Outline Of Syllabus

• An introduction to all stages of the software engineering lifecycle.

• An introduction to general principles of programming languages and their realisation in a representative

• An introduction to the legal, social, ethical and professional aspects of being a software engineer.

Teaching Methods

Teaching Activities
Category Activity Number Length Student Hours Comment
Guided Independent StudyAssessment preparation and completion223:0066:00Practical follow up, includes time for formative exercises
Structured Guided LearningLecture materials221:0022:00Lecture Follow up
Guided Independent StudyAssessment preparation and completion320:0060:00The Software Artefacts
Scheduled Learning And Teaching ActivitiesLecture221:0022:00Lectures
Scheduled Learning And Teaching ActivitiesPractical222:0044:00Practicals
Guided Independent StudyIndependent study186:0086:00Background reading and/or optional drop-in sessions
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 to attempt the problems set.

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

The lectures and practical sessions will provide support for developing the skills.

Assessment Methods

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

Other Assessment
Description Semester When Set Percentage Comment
Case study1M100Three Software Artifacts equivalent to 3000 words
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 exercises1MPractical/Tutorial exercises (not submitted)
Assessment Rationale And Relationship

Students will produce a portfolio of evidence demonstrating 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.

Three software artifacts equivalent to 3000 words total will be required. Each artifact will also contain a reflective report on the skills gained.

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.

Reading Lists