projects
https://people.sc.fsu.edu/~jburkardt/classes/python_2025/projects/projects.html
projects
lists the end-of-semester projects available for students in the class:
MATH 2604: Advanced Scientific Computing 4,
"Mathematical Programming with Python,"
University of Pittsburgh,
Monday/Wednesday/Friday, 1:00-1:50pm,
Instructor: John Burkardt,
Spring Semester 2025.
Each student may design a project based on their own ideas and interests,
or select one from the following list.
-
Calendar, a calendar is a device for naming and indexing days.
Because calendars include information about the day of the week,
the month, the season, the year, it becomes difficult to answer
simple questions like what day of the week was I born, how many
days have I lived, what is today's date in the Chinese calendar,
and so on. In this project, you will try to write programs that
answer some of these questions.
-
Cats, a common machine learning task is to ``classify'' data,
that is, to make a judgment about what class it belongs to. An
especially difficult classification problem involves images.
A special kind of technique for this problem is known as a
convolutional neural network, which is able to identify specific
features that show up in related images. This project involves
running a keras program that tries to determine whether a picture
is a cat or a dog. Your task would be to explain how the program
works, and what special features of a convolutional neural network
make it possible to sort the images.
Student G.Z. has taken this project.
-
Flow Optimization, based on an article by Reinhard Sellmair,
which considers the problem of a directed network which includes
source and sink nodes, whose links have limited capacity. It is
desired to plan the movement of some objects from the source nodes
to the sink nodes, minimizing an associated cost. The article
points to a Python implementation. You could start by trying to
get this code and run it. Then you might try to explain some of
what is going on, or come up with some new examples to test the
code on.
-
HJB PDEs,
This project involves Principal Agent problems,
which can be formulated as a Hamilton-Jacobi-Bellman PDE. It is
interesting to study how the initial condition affects the
resulting solution.
Student C.D. has suggested and reserved this project.
-
Keras, using the keras program to analyze a set of 50,000
movie reviews from the Internet Movie Database, which have already
been labeled "positive" or "negative" reviews. By looking at the
word choice in each review, try to predict the positive or negative
rating.
Student I.Z. has reserved this project.
-
Life, this project asks you to implement
a Python version of John Conway's Game of Life. This is a simulation
studying the changes in a grid of cells, some of which are living
and some dead. Deaths and births occur according to a set of rules.
Student T.Y. has reserved this project.
-
Maze, decide how to represent a maze as a rectangular logical
array; generate a random maze; try several algorithms that seek a
path from a starting point to an end point. Discuss why some
algorithms fail.
Student M.S. has reserved this project.
-
Minecraft, an ice farm can be established on an n by n grid
of cells. Some cells can be initialized to be permanently
occupied by water. A miner can collect the cells that have turned
to ice. Afterwards, emptied cells with appropriate neighbors
may refill up water, which may then turn to ice. The goal is to
generate appropriate choices of the fixed water cells which guarantee
a rapid restoration of the ice field.
Student E.H. has suggested and reserved this project.
-
Polygon, for an arbitrary polygon, determine if it is convex
or regular (not self-intersecting). Compute the area and centroid.
Triangulate a convex polygon (not hard) or a regular polygon
(hard, I can give you a code to do this). Compute random samples
of a polygon, and estimate integrals. Is a point in the polygon?
Do two polygons intersect?
-
Primality, finding new prime numbers is useful, because they
are part of many encryption systems. Fermat and Mersenne both
considered special classes of numbers that seemed to contain many
large primes. Checking the primality of a very large number is
a difficult task. One tool is the Lucas-Lehmer test. In this
project, you will look at using implementing this tool in Python
and applying it to several candidates that might be prime.
-
Scattering, an important problem in geometry is how to
evenly distribute a set of points inside a given shape,
which might be a square or circle, a polygon, an ellipse,
or an irregular shape such as the outline of a body. A good
method for doing this mainly requires the ability to produce
as many random sample points from the region as we need. In
this project, you will start with a bad arrangement of points
inside a circle, and try to transform them into a neat pattern.
-
Solar Cycle, based on an article posted on "Towards Data Science",
which considers historical data about the sun, including sunspots
and solar intensity, and seeks to identify and display patterns
in the data.
Student C.M. has reserved this project.
Student E.N. has reserved this project.
-
StarBattle,
an online puzzle game in which you are given a
grid subdivided into regions. The player must place a star
in each region. However, there must never be two stars in the
same row or column.
Student G.R. has suggested and reserved this project.
-
Triangle, compare several methods for generating random points
in a triangle. Some of them will not do a good job. Use each
method to plot 1000 points and see which plots seem uniform.
For the acceptance/rejection approach, you will need to work out
a method that decides whether each point you generate is inside
the triangle.
-
Wator, a simulation of the competition between fish and sharks.
It takes place over a 2D grid. Fish swim peacefully, and gradually
reproduce, but can get eaten if they run into a shark. Sharks
swim around looking for fish, and increase their population if
they run into (and eat) a fish. Depending on the simulation
parameters, the populations can crash or explode, or evolve into
a steady cycle. This is based on a short article by A K Dewdney
in Scientific American.
Student R.C. has reserved this project.
Last revised on 27 February 2025.