Skip to main content

Unit information: Overview of Software Tools in 2020/21

Unit name Overview of Software Tools
Unit code COMSM0085
Credit points 20
Level of study M/7
Teaching block(s) Teaching Block 2 (weeks 13 - 24)
Unit director Dr. Alex Kavvos
Open unit status Not open
Pre-requisites

COMSM1201 Programming in C

COMSM1302 Overview of Computer Architecture

Co-requisites

COMSM1401 Software Engineering and Group Project

School/department Department of Computer Science
Faculty Faculty of Engineering

Description

This unit will acquaint students with a collection of tools and frameworks that are used when undertaking large software development projects. It will support their group project work in COMSM1401 Software Engineering and Group Project, where they work in groups to create software that solves a problem for a real client, as well as preparing them for software development roles in their future career.

In particular, the unit will 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 unit COMSM1201 Programming in C taken in the previous teaching block and aligns with the teaching of object-oriented programming in unit Object-Oriented Programming with Java.

Intended learning outcomes

After successful completion of this unit, students will be able to:

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

Teaching details

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

Assessment Details

100% coursework

Reading and References

Most reference material will be in the form of links to websites, not printed books. These links will be included in the unit materials. The books below are meant as reference material – students are not required to purchase them:

  • Karwin, Bill and Carter, Jacquelyn, SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Bookshelf, 2010) ISBN: 978-1934356555
  • Sanderson, Dan, Programming Google App Engine with Java: Build and Run Scalable Web Applications on Google’s Infrastructure (O’Reilly, 2015) ISBN: 978-1491900208
  • McConnell, Steve, Code Complete: A practical handbook of software construction (2nd edition) (Microsoft Press, 1993) ISBN: 978-1556154843
  • Duckett, Jon, HTML and CSS: Design and Build Websites (John Wiley & Sons, 2011) ISBN: 978-1118008188. This book doesn’t go as far as we do in the unit, but may be a useful reference for non-native English speakers.
  • Robbins, Jennifer Niederst, Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics, 5th edition (O'Reilly Media, 2018) ISBN: 978-1491960202
  • Chacon, Scott and Straub, Ben, Pro Git, 2nd edition (Apress, 2014) ISBN: 978-1484200766. Available free online at https://git-scm.com/book/en/v2

Feedback