Module Details

The information contained in this module specification was correct at the time of publication but may be subject to change, either during the session because of unforeseen circumstances, or following review of the module at the end of the session. Queries about the module should be directed to the member of staff with responsibility for the module.
Title Software Development in Practice
Code CSCK541
Coordinator Mr K Dures
Computer Science
Year CATS Level Semester CATS Value
Session 2021-22 Level 7 FHEQ Whole Session 15


1. To provide students with a comprehensive understanding of the theory and practice of modern software development.
2. To provide students with hands-on experience of a current programming language.
3. To provide students with a critical insight into the processes of interpreting and translating software procurer requirements into software realisation.
4. To provide a systematic overview into the process of evaluating and testing software systems.
5. To develop an appreciation of the legal, social, ethical and professional considerations pertinent to software development, and the risk factors involved.

Learning Outcomes

(M1) A deep and systematic understanding of the process of modern software development from end user requirements to software delivery.

(M2) A systematic knowledge of the theory underpinning modern programming techniques and the practical application of these techniques.

(M3) A comprehensive insight into the process and practice of evaluating software implementations.

(M4) A deep and systematic understanding of the risk factors pertaining to software development, and the associated legal, ethical, social and professional issues to be taken into consideration.

(S1) Self-direction and originality in tackling and solving problems.

(S2) Communication skills in electronic as well as written form.

(S3) An ability to act autonomously and professionally when planning and implementing solutions to computer science problems.

(S4) Experience of working in development teams, respecting others, co-operating, negotiating/persuading, awareness of interdependence with others.



Week 1: Software Engineering Principles
Programming paradigms, user requirements, usage of software libraries, open source versus closed source software, software licensing.

Week 2: Data and Operators
The nature of data, logical and arithmetic operators on data, conversion, Input/Ouput (IO) control.

Week 3: Control Structures and Recursion
Efficient use of control structures, selection and iterative commands, recursive concepts and applications. Evaluation and testing.

Week 4: Data structures
Working with simple data structures, the concept of containers, types of simple data structure (lists, dictionaries, sets, tuples etc.).

Week 5: Graphical user interfaces
The importance of interface design, frames, text boxes, GUI components.

Week 6: Files, streams and I/O techniques
Secure file handling and verification/validation, exception handling.

Week 7: Advanced Data Structures:
Abstract data types, Object Oriented Programm ing (OOP), classes and objects

Week 8: Management of the Software Development Enterprise
Legal, social, ethical and professional considerations; risk factors.

Teaching and Learning Strategies

The mode of delivery is by online learning, facilitated by a Virtual Learning Environment (VLE). This mode of study enables students to pursue modules via home study while continuing in employment. Module delivery involves the establishment of a virtual classroom in which a relatively small group of students (usually 10-25) work under the direction of a faculty member. Module delivery proceeds via a series of eight one-week online sessions, each of which comprises an online lecture, supported by other eLearning activities, posted electronically to a public folder in the virtual classroom. The mode of learning includes a range of required and optional eLearning activities, including but not limited to: lecture casts, live seminars, self-assessment opportunities, and required and suggested further reading and try-for-yourself activities. Communication within the virtual classroom is asynchronous, preserving the requirement that students are able to pursue the module in their own time, within the weekly time-frame of each online session. An important element of the module provision is active learning through collaborative, cohort-based, learning using discussion fora where the students engage in assessed discussions facilitated by the faculty member responsible for the module. This in turn encourages both confidence and global citizenship (given the international nature of the online student body).

Teaching Schedule

  Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other TOTAL
Study Hours 24


Timetable (if known)              
Private Study 86


EXAM Duration Timing
% of
Penalty for late
CONTINUOUS Duration Timing
% of
Penalty for late
Programming 2: Collaborative programming exercise addressing a practical problem, resulting in a demonstrable system and supporting analysis in the form of a brief report (500 words).  12 hours    30       
Programming: Individual programming exercise addressing a practical problem, resulting in a demonstrable system and supporting analysis in the form of a brief report (500 words).  12 hours    30       
Discussion Question 1: Participate actively in an online discussion to critically discuss experiences and opinions within the cohort regarding the challenges of software development.  1000-1500 words    20       
Discussion Question 2: Actively participate in online discussion on a module-specific topic, contributing original thought and understanding of key areas.  1000-1500 words    20       

Recommended Texts

Reading lists are managed at Click here to access the reading lists for this module.