Skip to main content

Unit information: Software Tools in 2021/22

Unit name Software Tools
Unit code COMS10012
Credit points 20
Level of study C/4
Teaching block(s) Teaching Block 2 (weeks 13 - 24)
Unit director Dr. Bernhard
Open unit status Not open

COMS10016 Imperative and Functional Programming

COMS10015 Computer Architecture


COMS10017 Object-Oriented Programming and Algorithms I

School/department Department of Computer Science
Faculty Faculty of Engineering

Description including Unit Aims

This unit prepares students for their Software Product Engineering unit in Year 2, where they work in groups to create software that solves a problem for a real client. In this unit, students will learn a collection of tools and techniques individually, with the aim of integrating them into a whole product in Year 2.

In particular, we focus on the following areas:

  • Effective software development workflow and associated tools, for example the command line, version control, build and dependency management systems.
  • Development tools, for example editors and integrated development environments, compilers and linkers, debuggers and profilers.
  • Effective development techniques, for example unit and integration testing, static analysis, continuous integration and deployment.
  • Relational databases and the SQL language.
  • The web: principles, protocols and languages (HTTP, REST; HTML, CSS), architecture of web applications.
  • The cloud: what it is, how to use it, overview and features of one or more cloud providers.

This unit builds on and complements the programming units and their teaching of imperative, functional and object-oriented programming.

Intended Learning Outcomes

After completing this unit, students will be able to:

  1. Use professional software development tools and workflows.
  2. Automate the process of building and testing your software.
  3. Improve the quality of your own software through methods including debugging and testing.
  4. Develop web-based, data-driven applications.
  5. Apply principles and practices of database design.
  6. Employ relevant database technologies.
  7. Identify and compare the features of cloud computing systems.

Teaching Information

Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures, practical activities and self-directed exercises.

Assessment Information

Exam (Summer, 100%)

Attending at least 75% of the labs and engaging with the lab work is a “must pass” hurdle for this unit.


If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMS10012).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the Faculty workload statement relating to this unit for more information.

The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. If you have self-certificated your absence from an assessment, you will normally be required to complete it the next time it runs (this is usually in the next assessment period).
The Board of Examiners will take into account any extenuating circumstances and operates within the Regulations and Code of Practice for Taught Programmes.