CSC1035 : Programming Portfolio 2
- Offered for Year: 2019/20
- Module Leader(s): Dr Jennifer Warrender
- Lecturer: Mr Jordan Barnes
- Other Staff: Dr Sergiy Bogomolov
- Owning School: Computing
- Teaching Location: Newcastle City Campus
|Semester 2 Credit Value:||30|
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. Particular 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 lectures and online 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 practising 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:
- Variables: types, names, values, storage
- Arrays and strings
- Selection and looping
- Object oriented programming: Classes,Inheritance and Interfaces
- Data structures, collection classes, generic types and iteration
- Time, space, speed trade-offs in program design
- Understanding programming abstraction
- Exploring and realising 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
|Guided Independent Study||Assessment preparation and completion||36||1:00||36:00||Background reading using online material|
|Guided Independent Study||Assessment preparation and completion||24||2:00||48:00||N/A|
|Guided Independent Study||Assessment preparation and completion||24||1:00||24:00||Lecture follow up|
|Scheduled Learning And Teaching Activities||Lecture||24||2:00||48:00||N/A|
|Scheduled Learning And Teaching Activities||Practical||36||2:00||72:00||Computer classroom|
|Scheduled Learning And Teaching Activities||Small group teaching||12||2:00||24:00||Tutorial in computer classroom|
|Guided Independent Study||Project work||48||1:00||48:00||Working independently or in teams|
Teaching Rationale And Relationship
Lectures will be used to introduce each project, and aspects of software engineering, particularly programming. These will be supplemented with tutorials at which discussions will take place on tackling the projects set. 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. The practical sessions will provide support for developing the skills they need for these activities.
The format of resits will be determined by the Board of Examiners
|Case study||2||M||90||Five software artefacts and reports equivalent to 5000 words total.|
|Report||2||M||10||Reflective report. 1000 words.|
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.
For each topic/problem students will provide a report that contributes to their portfolio of evidence of the activities they have undertaken, either as individuals, or as part of a team. Five software artifacts and reports equivalent to 5000 words total will be required with a single reflective report on the skills gained summarising the portfolio of evidence produced by the problem-based activities equivalent to 1000 words.