CS5003 - Data Structures and Specialist Programming (2023/24)
|Module specification||Module approved to run in 2023/24|
|Module title||Data Structures and Specialist Programming|
|Module level||Intermediate (05)|
|Credit rating for module||30|
|School||School of Computing and Digital Media|
|Total study hours||300|
|Running in 2023/24(Please note that module timeslots are subject to change)||
This module further develops students’ knowledge and skills in developing software applications for solving problems. It focuses on the data structures and algorithms in programming and the software technologies for building standalone, networked and Internet applications. The module is designed to enhance employability through the use of modern industrial tools and technologies, and familiarisation with the software development life cycle.
The key skills and knowledge to be gained are:
•Provide students with an understanding of theoretical concepts related to the use of data structures, algorithms, programming patterns and software infrastructure in standalone, networked and Internet environments.
•Develop students’ analytical skills in the context of processing, generating, transforming, transporting, storing, retrieving, and presenting data.
•Enhance students’ practical skills using appropriate methods and techniques for designing, programming, and integrating software applications using user interfaces, data structures and persistent storage.
•Provide students with an understanding of programming during the different stages of the software development lifecycle.
•Enable students to apply analytical and practical skill in solving typical problems in standalone, networked and Internet environments.
•Enhance students’ experience and employability through the use of appropriate current technologies, enterprise tools and development environments during software development.
Prior learning requirements
Successful completion of Level 4 or equivalent
Data structures, such as arrays, linked lists, stacks, queues and trees. (LO1, LO6)
• Recursion, iteration, files, streams, sorting and searching algorithms. (LO1)
• Collections. (LO1, LO2)
• XML. (LO4)
• Error handling. (LO3)
• Threads. (LO2)
• Design patterns e.g. MVC. (LO2, LO3, LO4)
• Software development environments. (LO4, LO5, LO7)
• Graphical User Interfaces. (LO3)
• Persisting Data using e.g. SQL, JDBC. (LO4, LO5)
• Client/server network programming using e.g. sockets. (LO2)
• Web Client-side and Server-side Programming using e.g. servlets/JSPs. (LO3, LO4)
Balance of independent study and scheduled teaching activity
The module teaching and learning is based on a blended learning approach which includes the following:
•Lectures for defining concepts, describing methods, and discussing alternatives.
•Workshops for demonstrating software, configuring working environments, building solutions, discussing alternatives, and acquiring hands-on experience.
•Coursework for reporting technical research and solutions, comparing alternatives and reflection.
•Use of Virtual Learning Environment (VLE) for setting problems, providing feedback, and submitting materials.
•Demonstration of software solutions for evaluation and reflection.
•Students will be expected and encouraged to produce reflective commentaries and an action plan for personal development on the learning activities and tasks that they carry out to complete their work, e.g. in the form of an assessed section of their coursework report.
On successful completion of this module, students will be able to:
- LO1: Specify suitable data structures, implement corresponding algorithms for data processing and estimate their complexity in terms of execution time and memory occupation.
- LO2: Use appropriate program design patterns and implement interactive programs working in a standalone, client-side, server-side, and client/server mode of operation.
- LO3: Design and implement GUIs for interactivity.
- LO4: Manipulate data sources for efficient storage, retrieval, and exchange of persistent data in formats such as text, XML and databases using libraries.
- LO5: Build dynamic Web sites for server-side processing using libraries.
- LO6: Interpret and transform design specifications into software applications within development environments and test and deploy such applications using libraries.
- LO7: Critically evaluate software development within the various stages of the software product lifecycle.
The coursework will involve analysing, designing, implementing, testing, and documenting software applications, and is aimed at developing students’ skills, knowledge, confidence and problem-solving strategies (LO1-LO7). The workshop materials, activities and feedback opportunities will be dedicated to supporting student learning and provide the foundation for the coursework. Students will have the opportunity to demonstrate their solutions to the workshop exercises and receive regular feedback.
Students’ overall understanding of the subject will be assessed through the end of year final exam (LO1 and LO7).
Consistent with University policy, formative and summative feedback will be provided at various points throughout the teaching year.