Undergraduate Research Night July 2017
Join us for our first ever Undergraduate Research Night! There will be talks by some of this year's summer undergraduate research students. Presenters will have 10-15 minutes to talk about the research that they and their research groups have been working on over the summer.
All are welcome to come and listen. Food will be provided.
A Knowledge-Based Approach to Scientific Software Development:
Aaron Mori, Maryyam Niazi, Nicholas Richardson, Henry Madej, Daniel Scime
Scientific and engineering computing has the potential to lead other fields of software with its solid knowledge base. Towards this end, as the members of the Literate Scientific Software (LSS) research group, we are actively developing a knowledge-capturing framework called Drasil. When fully functional, it is intended to simplify the generation of documentation and code for scientific software and facilitate desirable software qualities such as traceability, verifiability, and reproducibility. We are each responsible for a case study from which structural patterns and implicit relationships can be extracted, data can be captured, and core systems can be tested and implemented.
Security in a Quantum Future: Post-Quantum Cryptography
The dawn of practical quantum computing will threaten classical cryptography with efficient attacks on underlying security assumptions. Thus researchers are developing "post-quantum" or "quantum-safe" cryptographic algorithms, and are working on integrating these into vulnerable systems. In this talk, I will describe some of the current research going on in post-quantum cryptography. I will also discuss my work this summer on adding post-quantum algorithms to the SSH protocol, as well as potential future research goals.
Pedagogy and Functional Programming
Tanya Bouman, Christopher Schankula
Recent years have seen a large increase in the interest in developing a Computer Science curriculum for K-8 students. However, there have been significant barriers to creating and deploying a Computer Science curriculum in many areas, including lack of classroom time. As part of a software outreach program here at McMaster University, we have developed both general computer literacy activities and specific programming activities aiming to fill these needs by leveraging the features of the functional language Elm and by using our graphics library GraphicSVG. Additionally, an experimental iPad-based syntax-error-free editor for Elm supports learning for students of all ages, particularly younger students who traditionally stumble over syntax. We will share some recent developments and experiences implementing this approach in classrooms and have live demonstrations of our new teaching technologies and lessons.
A Cardiac Pacemaker: An Example of Model Driven Developmeent
Guy Meyer, Mostafa Ayesh, Bradley Kohler, Michael Kehinde
The pacemaker design project involves model based development of software for a hardware platform using finite state machines, and hardware testing of the components of a custom PCB shield that is designed to carry out the features of a pacemaker. This talk will highlight some basic functions, modes and operating characteristics of a cardiac pacemaker.
Automating the Assignment of Engineering I Students to Level II Programs
Because McMaster’s Engineering Program includes a general first year, there must be a system in place to assign students into their respective second year streams. This system takes a student’s grades, free choice status, and program preference into account, then fills the spaces in each stream until its capacity is reached, resulting in the best possible program outcome for each student. In the past, this process would be done entirely by hand; there is now a program named “SortingHat” (designed by Vineet Sharma in 2010) that automates this process. The problem is that by introducing the new Integrated Biomedical Engineering and Health Sciences program, among other factors, the SortingHat program has become outdated and is in need of updating. My role in this project is to document the required changes to the program, and then proceed to update it accordingly.