CSC1035 : Programming Portfolio 2
- Offered for Year: 2024/25
- Module Leader(s): Dr Konrad Dabrowski
- Lecturer: Dr Fedor Shmarov, Dr Mengwei Xu
- Teaching Assistant: Mr Peter Hayton, Mrs Menna Khedr, Mrs Nida Alyas
- 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 |
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, building on the experience gained in Programming Portfolio 1. 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, but these topics will relate to aspects of the material presented in one or more of the co-requisite modules Computer Systems Design, Information Storage and Retrieval, and Fundamentals of 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, Games, Software Engineering, Data Analytics), thus enabling students to gain a flavour of what is available in the later stages of their programme of study and allowing them to make an informed choice towards the end of Stage 2. 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
Teaching Methods
Teaching Activities
Category | Activity | Number | Length | Student Hours | Comment |
---|---|---|---|---|---|
Guided Independent Study | Assessment preparation and completion | 22 | 3:00 | 66:00 | Lecture and Practical follow up, includes time for formative exercises |
Structured Guided Learning | Lecture materials | 22 | 1:00 | 22:00 | Asynchronous online materials |
Guided Independent Study | Assessment preparation and completion | 3 | 20:00 | 60:00 | The Software Artefacts |
Scheduled Learning And Teaching Activities | Lecture | 22 | 1:00 | 22:00 | Synchronous present in person (pip) tutorial sessions if possible, or synchronous online sessions |
Scheduled Learning And Teaching Activities | Practical | 23 | 2:00 | 46:00 | Synchronous present in person (pip) practical sessions if possible, and/or synchronous online sessions |
Guided Independent Study | Independent study | 1 | 84:00 | 84:00 | Background reading and/or optional drop-in sessions |
Total | 300: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 lectures and practical sessions will provide support for developing the skills they need for these activities.
Assessment Methods
The format of resits will be determined by the Board of Examiners
Other Assessment
Description | Semester | When Set | Percentage | Comment |
---|---|---|---|---|
Case study | 2 | M | 100 | Three 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 exercises | 2 | M | Practical/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.
Three software artifacts equivalent to 3000 words total will be required. Each artefact will also contain a reflective report on the skills gained. These artifacts will be undertaken either as individuals, or as part of a team.
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
Timetable
- Timetable Website: www.ncl.ac.uk/timetable/
- CSC1035's Timetable