Term Project Preview
Today in lecture we will discuss the term project, so that you can get
started on the hardest part -- deciding what you will do! Some things to
consider:
- Start thinking about your term project now!
- Review the Term Project Gallery!
-
You can do almost anything you wish so long as it clearly demonstrates
your programming skills.
-
Choose something you enjoy, something you care about,
something you can be proud of, something that can help
you both academically and professionally.
-
Topics must be approved by your TA mentor. Mentors will be
assigned in week 5, but if you want to get a project idea officially
approved before then, talk to Lauren! Some important notes to keep in
mind when choosing a project:
-
Think big! It's easier to prune an overly-large
project idea than to grow an overly-small project idea.
-
Focus both on user experience and on algorithmic
sophistication, as both factor heavily in your grade.
-
While many of you will likely make some kind of game, and that's
fine, it is by no means required or even encouraged. You can make
anything, so long as it has a rich interactive user
experience and at least one interesting algorithmic
aspect to the solution.
-
In any case, avoid mini-games. Make one big lovely project
instead of gluing together a bunch of smaller ones.
-
Also, be cautious with generative art or music. While these
are somewhat popular projects historically, they often do not
result in successful outcomes. It can be hard for us to grade a
generative art or music project precisely, since they are so
deeply subjective. Plus, they don't really have much of a user
experience in most cases, and we put great value on an interactive
user experience.
-
You can use external modules (with restrictions), but they are
definitely not required. You can make a lovely term project and earn
a very high grade using nothing more than what is in the course notes.
-
Without explicit permission from the instructor (which is unlikely),
you cannot use any robots or other hardware in your term projects. The
one exception is that you may try to use game controllers as input
devices if you are so inclined, so long as all of your code runs
entirely on your laptop (and not on an external device) and in Python.
-
Also, based on hard lessons learned by previous 112 students, some
modules are explicitly disallowed until after you reach MVP (Minimum
Viable Product/Project):
-
All graphics and animations except cmu_graphics including:
tkinter, pygame, blender, opengl, panda3d,...
-
Complex ML and AI modules, including: pytorch, tensorflow,
keras, ...
-
Multiple threads, processes, or computers (so no webapps, cloud
apps, server-based apps, sockets, ...)
- Any language except Python.
-
TP
Guide on Features: While this guide is slightly outdated, it still
highlights some important ideas about variations in complexity based
on implementation.
- Have fun! Really!!