Programming languages: You may use one of several programming languages for this first project so long as you make "it works on my machine" (not just yours). With that in mind the following language are supported in this class.
I don't have any access to MS Windows machines. All of my grading will be done on linux - which is also what the Automated testing systems on github use
Python: use Python versions 3.10-3.14. I have different defaults on my three linux machines, so mention which version you are sure works. Use requirements.txt or uv with pyproject.toml to manage external dependancies.
Currently, the industry is falling all over itself to build voice driven applications - especially if it can keep the AI bubble going a little longer. We shall see if this trend lasts, but since it is very popular today, we will explore the idea of a voice driven scheduling application in the first half of the semester.
You are going to build something working, you will find in doing so, that the code is just one part of a much larger project.
Due: Wed Feb 4th at 11:59pm
There are a lot of speech to text tutorials out there. Begin with one of them. (most of the ones that I found stripped this down to its smallest easiest forms, you will have to build the structure to make it testable)
For those few of you who do not have a working microphone on your laptop, I've left a few small mics in DMF363 in the radiators near the window. please use them in the room and return them to the radiator area for the next student when you leave.
For python and java users, look at https://alphacephei.com/vosk/install I found it useful
There are also third party vosk bindings for most other interesting languages in 2026: https://github.com/alphacep/vosk-api
you don't have to use this solution if you have another one, but those of you who have never done this sort of work, have a look at this solution.Do NOT!!!! try to upload an entire model file to github when using the AI models for the speech recognition. Github will error out and you won't be able to easily recover unless you have a lot of experience with git squash or something similar.