Master of Software Engineering 180 credits
center-116459000Programme
Master of Software Engineering 180 credits
Course
Quantum Computing
MSE802
(Level 8, 15 credits, Version 1)
Assessment 2
Quantum project
Weighting within course:
60%
Objective
The primary goal of this assignment is to provide students with the opportunity to implement diverse quantum computing circuits, test various programs and algorithms on practical quantum computers, and assess the effectiveness of these quantum computing systems.
Candidates Assessment Instructions
This assessment is an open-book activity, you can use your own course and review notes as well as offline or online resources, such as textbooks or online journals.
You can always ask your tutor if you need further explanation about forming a group or if the instructions are unclear.
The purpose of this assessment is to assess your knowledge. In the event Yoobee suspects collusion, this will be addressed. For more information on plagiarism, please refer to the Student Handbook.
Marks and feedback will be returned within 15 days of the submission date.
Success Criteria
You need to achieve 50% or more of the marks to pass this assessment.
You are allowed a maximum of three attempts. The maximum percentage to be awarded on a second and third assessment attempts is 50%.
Submission Instructions
The assignment must demonstrate a well-organized structure with distinct sections corresponding to each designated task.
For each task, you are expected to submit Python code either written in a Jupyter notebook or Google Colab. Employ clear headings and subheadings within the code to enhance its readability.
Certain tasks may necessitate supplementary documentation, requiring the incorporation of relevant diagrams, figures, and equations to facilitate the explanation of key concepts.
Ensure that all sources used in your work are properly cited and referenced. The citations and references should adhere to a consistent citation style, such as APA or IEEE.
The final submission should be in the form of a compressed zip file, with distinct folders for each task.
Learning Outcomes (LOs)
LO1: Critically evaluate quantum information protocols in software engineering using the principles of mathematical structure of quantum mechanics to validate performance claims.
LO2: Design and create quantum circuits for quantum algorithms to run on quantum-computers.
LO3: Critically analyse the historical development of quantum and classical computation and its application to differentiate computational capabilities in software engineering.
LO4: Communicate the application and critical analysis of quantum concepts to diverse software industry audiences.
Assessment Tasks
Task 1: Entanglement Demonstrations (LO2)(Circuit)
Create an entangled bell state using Cirq and run the system on the Quokka device. The Bell state is given as:
|> =12|00> +|11>Generate qubits and apply necessary gates to generate the above state. Generate the necessary results accordingly.
Task 2: Qiskit circuits (LO1,2) (Circuit)
Using Qiskit, generate the following circuit:
155448035560C
00C
121158024447543434023368078486066040H
00H
2415540220980121158023622079248053340X
00X
449580232410
Measure the output by running it on a quokka device and print the output.
Write a QASM script for a circuit of your own. Use different qubits and various gates to generate the final circuit. Measure the output by running it on a quokka device and print the output.
Task 3: Investigate a quantum code (LO1,2,4) (Explain what does the code work)
This is a partially developed interactive tic-tac-toe game designed to illustrate the generation of a quantum circuit through gameplay. To engage with this educational tool effectively, you are required to undertake the following tasks:
Complete the provided code by filling in any missing instructions or comments.
Once the code is finalized, participate in multiple instances of the game, and perform an in-depth analysis of the generated code.
In your capacity as a quantum software engineer, elucidate the purpose, functionality of the code, the gameplay dynamics, and the process through which quantum circuits are generated. Compile your findings in a comprehensive Word document.
Additionally, explore the various quantum gates employed in circuit generation and provide succinct descriptions of each gate's characteristics and functions in a separate section of your document.
Note: the code file is tic_tac_toe_quantum.ijpynbTask 4: Machine learning Quantum Analysis (LO1,2,4) (May need to add a couple of lines of code and explain)
You have been provided with a code designed to address a machine learning problem cantered on image classification. The code generates binary images and employs an optimization function to assess sample images, ultimately yielding a metric. This entire process is executed using a specifically tailored circuit.
Your tasks include:
Analysing the code, with a particular focus on the circuit component and the problem's formulation. Determine the data input into the circuit and identify the portion that serves as the input. Additionally, elucidate the code's functionality, particularly its quantum aspects, excluding the optimization algorithm.
Executing the code and monitoring the final output at each iteration. Create additional code to plot the iteration number against the output measure. Also, generate a graph depicting the iteration number against the time required for producing the output.
Modifying the code to run on your local machine, eliminating the need for the quantum computer or circuit. Measure and document the disparities in performance, both in terms of efficiency and effectiveness.
Compile a comprehensive report summarizing the tasks above.
For the final task, you are required to submit a modified code (.ijpynb file) and a word document.
Note: the code file is ML_quantum.ijpynbMarking Rubrics
Criteria &
Weighting D RangeD- D D+ C RangeC- C C+ B RangeB- B B+ A RANGEA- A A+
Entanglement Demonstrations 25% Unable to create the entangled Bell state or run it on the Quokka device.
Major errors in gate application and lack of results.
Demonstrates a fundamental lack of understanding of the task.
Attempted to create an entangled Bell state using Cirq but with major errors or missing components.
Applied gates with significant inaccuracies.
Generated results with significant errors or lack of clarity.
Created an entangled Bell state using Cirq and ran it on the Quokka device.
Applied the necessary gates to generate the specified Bell state with minor errors.
Generated results with some errors or limited clarity.
Successfully created an entangled Bell state using Cirq and executed it on the Quokka device.
Accurately applied the necessary gates to generate the specified Bell state.
Generated the correct results and demonstrated a deep understanding of the process.
Presented the results clearly and comprehensively.
Qiskit circuits 35% Unable to generate the specified circuit or measure the output accurately.
Major errors in circuit generation and output measurement.
Demonstrates a fundamental lack of understanding of the task.
Attempted to generate the specified circuit using Qiskit but with major errors or missing components.
Measured the output on a Quokka device with significant inaccuracies.
Attempted to create a QASM script for a unique circuit with major errors.
Measured the output of the custom circuit with significant inaccuracies. Generated the specified circuit using Qiskit with minor errors.
Measured the output on a Quokka device with minor errors or limited clarity.
Created a QASM script for a unique circuit with some errors.
Measured the output of the custom circuit with some errors or limited clarity. Successfully generated the specified circuit using Qiskit.
Measured the output on a Quokka device accurately and presented it clearly.
Created a QASM script for a unique circuit, demonstrating creativity and understanding.
Measured the output of the custom circuit accurately and presented it clearly.
Investigate a Quantum Code 25% Unable to complete the code or provide meaningful analysis.
Major errors in code completion and a lack of documentation.
Demonstrates a fundamental lack of understanding of the task. Completed the code with major errors or missing instructions/comments.
Conducted a limited analysis of the code and its functionality.
Provided a Word document with limited information about the code, gameplay dynamics, and circuit generation process.
Described various quantum gates with significant inaccuracies. Completed the provided code with minor errors in instructions and comments.
Conducted a satisfactory analysis of the code and its functionality.
Provided a Word document explaining most aspects of the code, gameplay dynamics, and circuit generation process.
Described various quantum gates with some accuracy.
Successfully completed the provided code with accurate instructions and comments.
Conducted an in-depth analysis of the code and its functionality.
Provided a comprehensive Word document explaining the code's purpose, functionality, gameplay dynamics, and circuit generation process.
Explored and described various quantum gates with precision.
Machine Learning Quantum Analysis 15% Unable to effectively analyze, execute, or modify the code.
Major errors in all aspects of the task.
Demonstrates a fundamental lack of understanding of the task. Attempted to analyze the code but with major errors or omissions.
Executed the code with significant inaccuracies and limited understanding.
Modified the code for local execution with major errors and provided minimal documentation.
Compiled a report with limited information and understanding. Analyzed the code with some accuracy, focusing on the circuit and problem formulation.
Executed the code with minor errors, monitored the output, and created acceptable plots.
Successfully modified the code for local execution and documented some disparities in performance.
Compiled a report summarizing most tasks with satisfactory clarity. Analyzed the code thoroughly with a focus on the circuit component and problem formulation.
Executed the code accurately, monitored the output, and created plots as required.
Successfully modified the code to run on a local machine and documented disparities in performance.
Compiled a comprehensive report summarizing all tasks with clarity and insight.