Databases, Interfaces and Software Design Principles
Code | School | Level | Credits | Semesters |
COMP4039 | Computer Science | 4 | 20 | Autumn UK |
- Code
- COMP4039
- School
- Computer Science
- Level
- 4
- Credits
- 20
- Semesters
- Autumn UK
Summary
Databases are everywhere. Via a multitude of different user interfaces, we interact with many different databases every day, whether using the web, electronic calendars, diaries or timetables, searching for contact details, or looking for directions using a mobile phone. As such, databases need to be both easy to use and fast. This module focusses on both the theory and practice of databases and interfaces to them. We examine the fundamentals of the relational database model, as well as implementations of the model in database management systems (DBMS) and languages to interact with them such as Structured Query Language (SQL). We explore relevant software design principles such as understanding user needs, requirements and software specifications and how this relates to database design and implementation. And because databases do not exist in isolation, we also examine how to design and build ways to interact with them, specifically via web development for which database access is key, as well as developing an understanding of how databases and their access are organised on networks, and containerised approaches to software development.
Reassessment is 100% written in person 2 hour examination
Target Students
Available to Level 4 PGT students in the School of Computer Science with no previous degree related to computer science. Available to students with intercalated year in computer science. This module is not available to students not listed above without explicit approval from the module convenor(s). This module is part of the Software Engineering theme in the School of Computer Science.
Classes
- One 1-hour lecture each week for 12 weeks
- One 2-hour lecture each week for 12 weeks
- One 2-hour computing each week for 12 weeks
Activities may take place every teaching week of the Semester or only in specified weeks. It is usually specified above if an activity only takes place in some weeks of a semester.
Assessment
- 30% Coursework 1: A series of short assessments throughout module to assess both practical and more theoretical components of module. Reassessment is 100% written in person 2 hour examination
- 70% Coursework 2: Scenario-based assessment to design and construct a database with a web interface. Answer consists of relevant code (e.g. HTML, PHP, JavaScript) needed to construct the website, SQL statements needed to build the database, and relevant documentation / reports. Reassessment is 100% written in person 2 hour examination
Assessed by end of autumn semester
Educational Aims
To provide students with a general introduction to the theory and practice of database systems.To enable students to gain experience with a modern (relational) database system through the use of the SQL language.To give an understanding of the structure and workings of relational database systems.To enable students to gain experience with design and implementation of database driven web interfaces.To give an understanding of the principles of software engineering design through determining user needs and requirements capture.To provide experience of working with databases and their interfaces in a networked environment.To gain experience of containerised development practices.Learning Outcomes
Knowledge and Understanding
- An understanding of the relational models of database systems.
- Ability to understand and use SQL.
- Understanding of the principles of web development and software engineering design.
Intellectual Skills
- Basic knowledge of the theory underlying relational database systems.
- Ability to design and implement database systems.
- Ability to design user interfaces for a database.
Professional Skills
- The use of SQL for database specification and manipulation.
- The use of web technologies for database front-end development.
Transferable Skills
- Understanding the use and applications of database systems.
- Understanding the use of web technologies and user interfaces.
- Understanding the user needs when designing software / database prototypes.