Skip to navigation | Skip to main content | Skip to footer

Summer vacation jobs for June-August 2020

The Department of Computer Science is offering paid summer vacation work for its undergraduate students.

All projects will run remotely, and will be supervised online.

Who can apply

You can apply if you are a current UG student in the Department of Computer Science, in years 1-5. If you are graduating in summer 2020, you can still apply.

You can not apply if you are: currently in Foundation Year, an MSc or PhD student, a student from a Department other than Computer Science, or a non-student.

Note: It is possible that these posts may be restricted to students resident in the UK. We are seeking guidance on this from the University. Meanwhile if you are interested in a project, please apply.

Aplication deadline

18:00 on Wednesday 27 May 2020. Allocations will be announced the following week.

Pay and conditions

All work will take place entirely off-campus, supervised remotely.

Appointments will be paid at £9.56 per hour, subject to University HR Services confirmation. The projects are full-time, 35 hours per week.

The dates and duration of each project are given in the project details below.

How to apply

The projects and their managers are listed below. Please contact the appropriate manager directly ASAP to discuss any project that you are interested in before applying.

To apply for a project, email the following details to the relevant project manager by 18:00 Wednesday 27 May 2020:

  1. The name of the project you are applying for
  2. Your full name and Student ID
  3. Your Programme (e.g., CS, SE, CSwIE, etc) and year of entry
  4. A brief CV and a covering letter that outlines how you match the skills required for the project that you are applying for and what experience you have relating to the nature of project work to be undertaken.

We expect there to be several applications for each position, and managers will select successful candidates on the basis of their CVs, covering letters and in some cases an online interview. Project managers cannot inform any students that they have been selected until permission to work in the UK has been verified.

You can apply for as many projects as you like but but each application must contain a unique covering letter.

Queries: For queries about specific projects, please contact the appropriate project managers. For general queries, please contact Toby Howard.

Projects available

Project 1: Web-based interface to the Vampire theorem prover

Manager: Giles Reger

Duration: 6 weeks

Start date: ASAP, by arrangement with Manager

Description of work: Implement a web-based interface to the Vampire theorem prover similar to that available for z3 and a bit nicer than that available through SystemOnTPTP. The minimal solution will have a very basic front-end (allowing the inputting of problems, selection of options to run, and display of output) and a back-end that simply runs Vampire. Ideally we will arrive at something a bit more sophisticated.

Skills needed: Experience with web technologies will be very helpful. Technologies will be selected based on suitability/experience. A basic understanding of the domain (theorem proving) would be helpful.

Project 2: Web application database to showcase the results of the basement membraneBASE project

Manager: Andrew Jerrison (UoM IT Services)

Duration: 8 weeks

Start date: ASAP but 6 July at the latest, by arrangement with Manager

Description of work: The task will be to design, develop and test a web application and database to support the membrane basementBASE project, on behalf of Research IT. There is currently a static site for the project which allows researchers to download a spreadsheet of the data and associated images. The student will be asked to create a web application that displays this data in a searchable and user friendly format, and create administrative tools that allow the reseachers to update the data as and when needed. The web application will need to comply with the latest in web accessibility standards. The student will need to meet regularly with the commissioning researchers in order to demonstate work-to-date and gather comments, and document the solution thoroughly.

Skills needed: Web application and database development skills. Technologies most commonly used in Research IT are either C#/ASP.NET/SQL Server or Python/Django/MySQL, however other technology stacks will be fine so long as we have people who know them and can continue t support after they have left! Good communication and written skills.

Project 3: Quantitative insights into student teams: calculate and visualise software engineering metrics for student team repositories

Manager: Suzanne Embury

Duration: 13 weeks

Start date: ASAP, by arrangement with Manager

Description of work: The Institute of Coding at the University of Manchester is looking at the relationship between students’ use of software engineering tools e.g. GitLab and their attainment in team projects. As part of this work, we have developed code to calculate a number of software engineering metrics for student repositories. The main aim of this summer project is to expand this set of metrics in two key areas: - Truck factors - understanding how work is distributed among team members. We have developed code to calculate Truck/Bus factors for student projects using data from the School’s GitLab API. During this project, you will test and document this code and adapt it to work with additional data sources e.g. local repositories. - Code based metrics (e.g. code quality metrics /static analysis). You will search online sources to identify and select code based metrics applicable to student software engineering team projects. Once a list of target metrics is agreed with the research team, you will implement and fully document Python code to generate these from a range of data sources including the GitLab API and local repositories. To help the research team gain insight from the metrics you have produced, if time allows, you will design and implement an extensible dashboard for viewing the metrics at multiple levels (students, teams, cohorts).

Skills needed: An interest in version control systems; An interest in static analysis; Experience of gathering evidence from online sources/literature; Previous experience of coding in Python; Previous experience of coding in Java; Ability to work independently.

Project 4: CAD Tool Maintenance

Manager: Dirk Koch

Duration: 10 weeks

Start date: 22 June, by arrangement with Manager

Description of work: The APT group is maintaining the FPGA design tool GoAhead. The tool is written in C# and allows building FPGA systems with unique properties. The goal of this project is to include a few new features that are needed for latest FPGA generations. The project includes fixes to the GUI and to the FPGA device visualisation as well adding the possibility to import macros for Vivado version of GoAhead (Vivado is a tool chain from the FPGA vendor Xilinx). Furthermore, new features will be added to support our research on FPGA hardware security.

Skills needed: The candidate should be comfortable in C# and should have worked on larger software projects before.

Project 5: Hardware Trojans for FPGAs

Manager: Dirk Koch

Duration: 10 weeks

Start date: 22 June, by arrangement with Manager

Description of work: Understanding of the netlist format used by the FPGA tools from the vendor Xilinx and understanding of an actual netlist that contains an AES core. Identifying unused resources in that core and using those resources to add a hardware Trojan into the netlist and connecting the trigger of the Trojan to the AES core. For the attack itself, a tool has to be developed that can flood unused routing resources to create a high fanout net to be used for power-hammering. The project can build up on our tool GoAhead (written in C#) which provides a parser for netlists and functions for routing and netlist manipulations.

Skills needed: Good understanding of hardware and FPGAs as well as data structures and algorithms. Experience in programming and software engineering.

Project 6: Build an FPGA

Manager: Dirk Koch

Duration: 10 weeks

Start date: 22 June, by arrangement with Manager

Description of work: Understanding of a given FPGA fabric generator (written in Python), understanding of open-source FPGA CAD tools (Yosys, ABC, nextpnr) and their file formats. Developing of a new FPGA architecture and adapting CAD tools to support that architecture. Work may optionally include full custom ASIC design (e.g., to optimise the blocks that carry out the switching on an FPGA).

Skills needed: Good understanding of hardware and FPGAs as well as data structures and algorithms. Experience in programming and software engineering.