STEM Program
Mathematics and Algorithms: Theory and Applications
Faculty Advisor: Professor and Director of Undergraduate Studies, Mathematics, Georgia Institute of Technology
Research Program Introduction
Algorithms are the heart of computer science, with countless practical applications. In this research experience, you will learn about Algorithms, Data Structures, and the programming language Python. After completing this program, students will understand how many real-world programs work and will be able to write their own advanced programs in Python.
Algorithms are like recipes. Precise lists of instructions executed in a prescribed order. Any task carried out by a computer, like a web search, is accomplished by executing an algorithm. But not all algorithms are equally efficient. Each operation takes time, and an inefficient algorithm may require so many operations that it becomes unusably slow. Two algorithms may accomplish the same task, but one may be so much slower that it becomes useless. In this research experience, you will learn to estimate the speed of algorithms and develop fast ones.
Algorithms require data. Data can be stored in different forms called data structures. Examples include queues, trees, and stacks. Selecting the right data structure is fundamental to developing efficient algorithms.
In this research experience, you will learn the most powerful and commonly used classes of algorithms, how data is arranged in different data structures to support them, and the programming language Python to implement them. You will be provided with videos and other material to supplement your learning, including programming exercises to practice.
Possible Topics For Final Project:
Students can select their project from the list below (datasets will be provided). Students are also welcome to work on a project outside the list as long as it is approved by the professor.
Real-World Optimization
Code an algorithm to find the shortest trip from a departure city to a destination city using connecting flights.
Biology & Science
Genome reconstruction: Delve into the algorithms and data structures that made reading genomes possible, which lead to the revolutionary field of genomics. Code the algorithm and reconstruct a genome yourself.
Finding biologically functional sections of DNA: Delve into what biologically functional sections of DNA are, how algorithms and data structures are used to find them, code your own algorithm, and use it in a real case example.
Security & Data
Cryptography: Learn the elements of number theory and cryptography that made it possible to have secure transactions over the internet. Code the algorithm.
Compressing files: Learn the algorithms and data structures used to compress files. Code the algorithm.
Gaming
Maze Solver: Create and code an algorithm to solve mazes.
Program a video game: Delve into the module Pygame and program a video game that you can play on your computer
Sudoku solver: Learn about backtracking algorithms and code your Sudoku solver.
Program Detail
Cohort size: 6 students maximum
Duration: 12 weeks
Workload: At least 5 hours per week (not including meeting time)
Target Students: 9-12th grade students interested in Mathematics, Artificial Intelligence, Machine Learning, and/or Interdisciplinary STEM studies.
Prerequisites: None. Students are not expected to know Python, to have any programming experience or know anything about Algorithms or Data Structures. The faculty advisor will provide all the necessary materials to learn.
Schedule: TBD (meetings will take place for around one hour per week, with a weekly meeting day and time to be determined a few weeks prior to the class start date)