CS5003 - Data Structures and Specialist Programming (2020/21)
|Module specification||Module approved to run in 2020/21|
|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 2020/21||
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
Error handling LO3
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 a 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.
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.
Where possible, the most current version of reading materials is used during the delivery of this module. Comprehensive reading lists are provided to students in their handbooks. Reading Lists will be updated annually.
• Deitel, H. and Deitel, P., 2018, Java How to Program, 11th edition (or later). Pearson.
• Horstmann, C., 2016, Big Java Late Objects, 2nd edition. John Wiley & Sons.
• Goodrich, M. and Tamassia, M., 2015, Data Structures and Algorithms in Java. 6th edition (or later). John Wiley & Sons.
• Lewis, J., DePasquale, P., Chase, J., 2016, Java Foundations: Introduction to Program Design and Data Structures. 4th edition, Pearson.
• The Computer Journal of the British Computer Society, ISSN 1460-2067 (Electronic); Publisher: Oxford : Oxford Journals, Oxford, UK : Oxford University Press.
• Oracle Java home page at: http://www.oracle.com/technetwork/java/index.html
• Netbeans’ Java EE & Java Web Learning Trail https://netbeans.org/kb/trails/java-ee.html
• Safari Books Online
Electronic Databases (available from the University Library)
• ACM Digital Library
• IEEE Xplore/IET Digital Library
• Wiley Online Library