These are some of the personal projects I have worked on. Click the titles for brief summaries. For a more in depth project description follow the links to their respective GitHub repositories.
Please see for the code
and full description
Brief Description:
We did a project on Quantum Cryptography for PHYC40020 which involved demonstrating an example of Quantum Key Distribution (QKD) using the BB84 scheme developed in
1984 as the first QKD protocol. This involves using a one time pad encryption to securely communicate a private key from one party to
another using Heisenbergs Uncertainty principle.
Skills: Python, Quantum Cryptography, Quantum Key Distribution.
Fig. 1: The eavesdropper doesn’t know what base the photons are being sent with. So, he guesses a random orientation of his filter. However, because he doesn’t know the base, he doesn’t get the same as Alice. He also causes the polarization to change when he measures it through the collapse of the wavefunction. So, bob gets the wrong results as well. Bob knows there’s an eavesdropper.
Click here to read the report.
Please see for the code.
Brief Description:
As part of my Advanced Laboratory module I conducted a short research project exploring Langevin dynamics, a stochastic process that extends
molecular dynamics to describe Brownian motion of particles. Investigated the one-dimensional motion of a particle within a Lennard-Jones
potential by employing the Velocity Verlet algorithm in Python. Successfully verified the suitability of the algorithm whilst also analysing
algorithmic limitations.
Skills: Python, Stochastic Processes, Molecular dynamics, Velocity Verlet Algorithm.
Fig. 2: Flow chart of the molecular system simulation using the velocity Verlet algorithm. Both the velocities and the positions are stored in lists. The loop is repeated for a desired number of steps that can be changed.
Click here to read the report.
Please see for the code.
Brief Description:
I performed an experiment to investigate variation in material properties with changing temperature during my Advanced Laboratory module.
I wrote data acquisition code in Python to send a range of frequencies into the oscillating system with amplitude being measured. I then
fitted Lorentzian curves onto experimental points to find the properties of the materials under tension. Data was validated and the accuracy
of the data was determined through propagation of uncertainties. I also extended the experiment guidelines to include a calculation of
Young’s modulus.
Skills: Python, Error Propogation, Lorentzian Curve Fitting.
Fig. 3: Experimental data from aluminium at a temperature of 303K. The Lorentzian curve is plotted using the resonant frequency and the bandwidth at half maximum of our data.
Fig. 4: Displays the variation of the modulus of rigidity of aluminium (bottom), brass (middle) and steel (top) with temperature. Each calculated experiment values are represented by the circles with its associated uncertainty.
Click here to read the report.
Please see for the code.
Brief Description:
Performed a case study as part of my Statistical Modelling module which involved using a unique pharmaceutical dataset to predict
the effectiveness of a newly proposed dummy drug. This project involved performing exploratory analysis, hypothesis testing using
z-tests, fitting a linear regression model and performing ANOVA tests. From our hypothesis testing we found that there was not
enough evidence to suggest that the new drug reduces cholesterol level compared to placebo at our chosen significance level of 0.01.
This could suggest a lack of effectiveness of the new drug that the Irish pharmaceutical company have made.
Skills: R, Linear Regression, Hypothesis Testing, ANOVA t=Tests.
Fig. 5: Linear regression line between BMI and cholesterol level.