Module: CPU5004-20 - CodeLab II
Level: 5
Credit Value: 20
Module Tutor: Jake Hobbs
Module Tutor Contact Details: j.hobbs@bathspa.ac.uk
1. Brief description and aims of module:
CodeLab II extends your knowledge of coding to include object-oriented programming (OOP). You build on the procedural programming techniques acquired in CodeLab I to deploy OOP concepts that enhance the functionality and efficiency of your builds.
Beyond developing new technical skills, you learn about the software development cycle. Here you form an understanding of how software projects are planned, implemented and maintained in industry, including the use of 3rd party software libraries. The ultimate aim of CodeLab II is to develop your programming proficiency to the point where you can independently experiment with unfamiliar coding techniques and languages successfully.
2. Outline syllabus:
Topics covered in CodeLab II include:
The software development cycle
A recap on procedural programming
Fundamentals of OOP
Classes and objects
Use of Data Structures and containers
Basic algorithms, such as searching and sorting
File handling
Memory management
Connecting through Application Programming Interfaces (APIs)
Graphic user interface (GUI) basics
Testing and troubleshooting
Code repositories and version control
3. Teaching and learning activities:
Class Hours
Learning is predominately lab-based, and evolves through a series of short programming tasks that reinforce understanding of the topics detailed above. Lab sessions also include the introduction of theoretical concepts (usually at the start of sessions) and student-led presentations of individual or collaborative development work. You are advised strongly to compile a ‘code repository’ using the web-based service GitHub. The repository is a useful tool for keeping track of specific coding techniques, streamlining your workflow, and to help expedite the software development process.
Independent Learning
Object-oriented programming takes time and effort to understand. You need to establish a routine of review and experimentation to get the most out of CodeLab II and consequently develop your skillset to a good standard. We recommend buddying up with a peer so that you can learn together, collaborate on mini projects and help maintain your motivation. Your tutors will provide coding challenges for you undertake during independent study, as well as point to LinkedIn Learning resources to support your learning.
Assessment Type: Course Work
Description: Programming Skills Portfolio
% Weighting: 40%
Assessment Type: Course Work
Description: Data-driven Application. Develop an application that deploys a GUI to present data. This submission is supported by a 1000 word development document.
% Weighting: 60%