On your web site, make sure that the following are visible:
an image, video or other deliverable of your final product
documentation of your design process
a 3-5 minute video (or slide deck with embedded audio) of your design analysis
On Ed:
make sure your video is posted to the Showcase discussion
Using Musical Dice Games as your starting point, create an interactive genetic algorithm for musical pieces! Some ideas for how to do this:
Completely in p5js
A combination of p5js and https://strudel.cc/ (you must take initiative and figure out this platform independently)
Your idea here :)
We estimate that this project should take you ~12-16 hours. You will submit everything through your portfolio web site, including:
written documentation of your process (40%)
articulate your goal(s)
record your approach
lots of notes/photos/videos, especially when things don't go as planned!
your code (or a link to your code) for the p5js sketch(es) that you produced
your final product (final p5js script and video) (10%)
a slide deck that presents your project (20%)
This should include:
your goal and inspiration
your final product and how it uses a genetic algorithm to evolve music over generations
highlights of your design/build process, including 1-2 examples of key moments (e.g., a failure point and how you recovered, an unexpected success)
a 3-5 minute video presentation of (1) your project and (2) analysis of your problem-solving process (30%)
(1) You should use your slide deck for presenting your project.
(2) You may find the following prompts helpful in organizing the analysis of your problem-solving process. Be as specific as possible, while also recognizing the limitations of the time constraint. You will not be able to walk through everything you did, but will need to nominate takeaways and important points.
How did you go about this project?
What parts did you find straightforward?
What was challenging?
What supported your understanding?
Were there embodied elements that helped you? Could you think of others?
What part of the process is a black box to you?
For example: You may have found code online that programmed the bars of music and you used that to generate your creation. You may have left the mutation approach alone and only altered selection or crossover. Perhaps even the selection approach you chose is still a "black box" on some level -- you know what to give it and what it outputs, but you do not know how the algorithm works. Or you may have an intuitive idea of how it works, but wouldn't be ready to implement it from scratch.
You will be evaluated on the clarity of your communication and the depth of your analysis.
Using Genetic Algorithms as your starting point, create/modify a p5js sketch that implements a genetic algorithm to evolve a population of creatures. Your goal is to use this milestone to understand the structure of genetic algorithms. You might decide this is best supported through your exploration and modification of existing sample code, through a carefully prompted genAI session or through programming a genetic algorithm from scratch.
You must
describe and implement at least 2 of the following steps (if using sample code, your approach must be different and require modification of the existing code):
selection
crossover
mutation
create a different project than the existing sample code
ideas from past projects that may inspire you are below!
or you might be inspired by this snippet from a stackexchange thread:
Classification problems are reasonable candidates. For instance, I wrote a GA that looked at the mushroom dataset taken from the UCI Machine Learning Repository with the goal of classifying an unknown mushroom as safe or poisonous based on its traits. Each candidate solution encoded a series of rules (Red cap means poisonous, blue spores are safe). During the learning phase I used a portion of the dataset, but to perform the final evaluation I used the full set. ... Also, numerical data is generally easier to encode than categorical data. That being said, it was a fun dataset to use - "Hey look, after fixing that bug my GA poisons us 15% less often!"
For this homework, you may use any resources you'd like. You must cite them appropriately (e.g., I talked with a peer about my pattern or I adapted this GitHub repo or I gave Gemini this set of prompts).
To be clear, this includes usage of AI tools, as long as you are:
appropriately documentating and citing your interaction, which should include the platform, prompt and screenshots/links of sample parts of the interaction
analyzing how the usage of the tool(s) helped or hindered your design process
NOTE: MHC's access to Google Gemini provides certain protections of your data.
Post to Ed please, as you're probably not the only one!
Ed supports anonymous posting.