1. Introduction
Beginning in December, I had the chance to participate in a Bertelsmann scholarship. I was allowed to start the Udacity nanodegree "AI Programming with Python" for free. Last month, I finished the nanodegree successfully, and therefore I wanted to write a short review about the course.
2. Udacity Overview
If you do not know Udacity, let me give you a short overview. Udacity provides online classes similar to Coursera or Udemy. As far as I know, most of the classes cover technical or management content. What makes Udacity unique is that they provide so-called "nanodegrees." Basically, this means the classes are more in-depth, and your projects will be checked by humans.
If you want to know more about nanodegrees, check out this blog post: Nanodegree 101: What is a Nanodegree Program? | Udacity
3. Description of the Course
As I already mentioned, I chose "AI Programming with Python" as nanodegree. At first I thought that I could easily finish the class by Spring but I have to admit that I really needed nearly the whole time we were given.
The nanodegree is split into seven courses:
Introduction to AI programming
Introduction to Python for AI Programmers
Numpy, Pandas, Matplotlib
Linear Algebra Essentials
Calculus Essentials
Neural Networks - AI Programming with Python
Create Your Own Image Classifier (the final project)
As you can see, the course starts with basic Python and progresses to more advanced libraries. Then there is a big part covering the math behind neural networks. Lastly, you finally program your own neural network.
To summarize, the nanodegree consists of math and Python. 😂
4. Course Content Review
I am not a Python developer, but I had tried some Python before. Therefore, the language basics covered at the beginning were quite easy for me. The parts that covered the libraries more in-depth (e.g., Pandas and Pytorch) were more complicated but manageable. Most of the programming took place inside the browser using a virtual machine that either ran a simple text editor or a Jupyter notebook. For the short exercises and the first project, this was sufficient. For the final project, I decided to use my local IDE and GitHub, which is also supported.
The courses covered the math basics, which was okay. The math behind neural networks was more challenging for me. It had been a while since I had my last math lecture. Still, especially the videos provided by 3Blue1Brown were easy to understand.
Lastly, the final project also took some time to finish. I had to look up previous lessons and read the Pytorch documentation to find what I needed. I suppose for somebody who is not a developer, this must be much harder.
5. Assessment & Feedback
I was surprised by the detailed assessment when I received the feedback for my first project. I thought that some automated checks would run over the code (e.g., linting and unit tests) after turning it in. Instead, I received detailed feedback from a human reviewer who mentioned errors but also suggested optional improvements. For the second and larger project, the feedback was as good as before.
In addition to the "official" project feedback, a Udacity community was provided. In my case, it consisted only of other Bertelsmann scholarship recipients and Udacity mentors/moderators. I was skeptical at first but later used it as a quick way to ask questions about the projects or things unclear from the classes. The mentors usually responded within a day and solved all my issues.
6. Outcome & Impact
So far, I have not been able to put my newly learned skills to use. Nevertheless, knowing how a neural network works internally and knowing that one can take already trained networks to adjust them to other use-cases helps me keep my eyes open for opportunities. Additionally, since AI is a very common topic these days, it helps me distinguish what's possible and what's not.
Besides the main topic, I gained a lot of experience with Jupyter notebooks. This might be useful in the future, especially since Kotlin notebooks are now available as well.
Repeating a lot of math wasn't my favorite part of the class, but I'm sure that the repetition won't hurt 😅
7. Summary & Recommendation
All in all, the nanodegree was quite challenging, but I am happy that I finished it. If you consider taking this class, you should be aware that it is not a general AI overview. It covers only neural networks, but those in-depth. If this is interesting for you or you plan to use a neural network soon, then this class might be well suited for you.
What I cannot judge is the pricing of the nanodegree, since I received a scholarship.