Emerging Technologies (Autumn)

Autumn 2023/2024

These are the assessment instructions for Emerging Technologies in Autumn 2023/24. They cover 100% of the marks for the module.

Students who have deferred or failed the assessment of this module during the semester usually complete this Autumn assessment.

The assessment consists of three parts: a repository, a set of tasks, and a small project.

The deadline for all elements is Friday, 23 August 2024.

Repository Component (20%)

The first component is to set up a GitHub repository. This repository should include all work you are submitting for this assessment. Make sure your work is in the main branch of the repository, which is usually the default.

After creating the repository, immediately submit your repository URL using the form on the module page. Your submission will be graded based on the last commit in GitHub on or before the deadline day.

Your repository should be well-organized. At a minimum, it should have a clear README.md, a relevant .gitignore file, and any requirements below. Avoid including unnecessary files or folders.

Try to use lower case for file and folders names, except for the README.md. Avoid using spaces or other unusual characters in file and folder names. However, it is okay to use underscores, hyphens, and full stops.

Your completed repository should be easy to present during technical job interviews. An interviewer should be able to understand your work and how to interact with it without your assistance. This will significantly impact your grade for this component, and all the other components.

Tasks (40%)

Create a Jupyter notebook called deutsch.ipynb within your repository. Use this single notebook for all tasks and the project below. For each task, include explanations in Markdown cells alongside any code cells. Ensure all code cells include comments, and try to break your work into smaller code cells where possible.

  1. Give an overview of all possible functions that take a single bit as input and give a single bit as output. Code the functions as Python functions and demonstrate their use.
  2. Write a Python function that selects one of the above functions at random and returns it.
  3. Explain the problem that Deutsch’s algorithm solves.
  4. Use the random selection function you coded above to demonstrate how the same problem can be solved on a classical computer.

Project (40%)

In the same deutsch.ipynb notebook as above, use the qiskit Python library to construct a quantum circuit that represents Deutsch’s algorithm. Provide an explanation of this circuit addresses the problem.

Marking Scheme

Each component will be assessment based on the following four categories, each carrying equal weight. Remember, your repository is what will be evaluated. It should demonstrate evidence of the criteria outlined for each category.

In line with ATU policy, the examiners’ overall impression of the submission may affect marks in each category. At any stage you may be asked to discuss the work to date in your repository.

Research

Development

Documentation

Consistency

Advice

In open-style assessments like this one, students may find it challenging to navigate the freedom provided. Guided by the module’s materials, you’ll need to determine where and how to begin, what content is relevant for your submission, how much is appropriate, and how to personalize your work. This level of autonomy is intentional and meant to foster independent thinking and decision-making skills.

Companies value graduates who can take initiative, work autonomously, and make design decisions with minimal guidance. We assume you have a reasonable knowledge of programming and an ability to source your own information. You need a plan, you cannot just start coding straight away.

Remember you must adhere to ATU policies and regulations. You can view these on the Student Hub. Pay special attention to the Policy on Plagiarism and the Student Code. If you have any questions about what is permitted, reach out the lecturer by email.

Purpose

The purpose of the assessment is to ensure students can demonstrate the following.

  1. Detect new and emerging technologies in computing through reputable sources.
  2. Contextualize an emerging technology by identifying its origins and proponents.
  3. Research an emerging technology in order to use it.
  4. Implement a solution to a computing problem using an emerging technology.