Welcome to the
Deep Learning from Scratch Course

Offered by Opencampus.sh

The Machine Learning Program


I am: Luca
I studied: Engineering and Computer Vision
Motivation: meet some new people who thinks different, maybe give back some of what my previous teachers gave me
How did I come to this course: from another Opencampus course (Game Development and then Machine Learning with Tensorflow)


You are: name is enough, whatever else is welcome - if you can help with the pronunciation, I would be grateful
You studied: a bit about your learning background, knowledge or experience
Motivation: do you have a special motivation for doing this course?
How did you come to this course: where did you hear from Opencampus?


  • General Introduction - 12.04
  • Introduction to Deep Learning - 19.04
  • Neural Network Basics - 26.04
  • Shallow Neural Networks - 03.05
  • Deep Neural Networks - 10.05
  • Practical Aspects of Deep Learning - 17.05
  • Optimization Algorithms - 24.05
  • Hyperparameter Tuning - 31.05
  • Machine Learning Strategy 1 - 07.06
  • Machine Learning Strategy 2 - 14.06
  • Presentation of Final Projects, Part I - 21.06
  • Presentation of Final Projects, Part II - 28.06

Neural Networks

The basics about neural network, how we can create our own, and why they can be so simple yet so powerful.


How to deal with vector and matrices in python. Vectorization is an extremely useful resource, that can be used also outside of python.

Shallow or Deep?

What is meant for shallow or deep neural network, what are the differences, and when they make sense.


The magic part about neural networks, how to tune the parameters and choose optimizations algorithms.

Structuring a machine learning project

How to get your project working and how to improve it.

Your own project

Start to get hand-on experience and do your own project.

Starting a Project

Everybody has to make a project

It does not matter the actual outcome of the project, it is about the experience - also not graded

Projects are made in small groups - groups will be made in ~1 month

You have the possibility to choose the groups on your own for a week, then we will proceed to group the remaining people

Finishing a Project

There will be a peer-review process around the beginning of June

Projects should be published

To complete the project, we ask you to create:

  • A public repository
  • A notebook with working code and explanation/comments
  • A small video/screen recording/presentation.

Present your Project

During the last sessions, each group will present their own project. External guests may be present.

In order to guarantee enough time for everyone, we may split the last session in two sessions. Both are mandatory.


  • Have fun or at least enjoy the course
  • Participate in the discussion
  • Make some errors
  • Learn something
  • Manage to get a project working


  • During week doing at home the homework, ask question on the Mattermost Chat (3 to 5 hours per week)
  • Every Monday an online session with discussion (1.30 hours)
  • Start a project after 1 month - the project will be additional homework (2 hours per week, or 0 hours every week and the whole night before the deadline)
  • Present your project in the last sessions (~15 minutes per presentation)

Which tools do we use?

Coursera Courses

We will follow these 3 courses:

Python Notebooks
Google Colab

Tutorial with Python — Tips, Tricks, and FAQ

Zoom Sessions

Every Monday at 16.00

1 - Quiz: we start with an ungraded quiz about the last week

2 - Discussion: we discuss shortly about the questions and clarify if anyone has doubts

3 - Open Questions: we prepare some open questions, which you will discuss in small groups (~10/15 minutes) and then one person per group will present the results

4 - Exercises: some participants will be selected, we go through the assignment together and comment the code (the solutions will be provided from us if you do not want to share yours)

Remember: there are no grades, we are in a safe space open to discussions, most of the time there is no right or wrong answer.

How we discuss in small groups?

Zoom has the possibility to create breakout rooms.
This means every person will be automatically assigned to a smaller room where you can freely discuss.
I will try to go around the rooms to help, but I also believe it's nice to encourage discussion between yourself without supervision
At the end of the time, you will automatically return back to the group call and we will discuss together about it.

During the week

Refer to the Gitbook for material and links.

Ask and answer questions in the Deep Learning Channel in the Mattermost Chat
If you did not join the channel, please do or write me and I will add you.

Feel free to contact me anytime on Mattermost or at: luca@opencampus.sh

For the next week


If you have enough time, start looking at the second week of the course. The two weeks are not equally divided, estimated times are ~2 hours for the first week and ~8 hours for the second. Therefore, it may be better to divide in two blocks of 5 hours per week.
The second week is divided into Logistic Regression and Python Vectorization. Maybe one of the two part could be started already this week, to make it lighter for the next week.