Goals

The aim of this training is to introduce participants to the Linux operating system, in this case Ubuntu 20.04, and to enable them to use the terminal quickly and intuitively, as well as to identify errors and find solutions. In addition, we'll talk briefly about github and libraries that are widely used in programming.

Final Project

By the end of this course, the participants will be able to:

  • Install Ubuntu 20.04 in a virtual machine
  • Setup all the necessary libraries and extentions to use Ubuntu as needed
  • Install and configure a Ubuntu as a dual boot in a real machine

J.A.C.I. Method

  • Meanig:

Just: Adapts to the level of each participant.

Autodidact: Material for reading and use the chat group to debate

Collaborative: The main goal of this project is to help each other learn more about programming by sharing your knowledge.

Intense: Since day one the students have exercises and a final project.

Planning


Lesson 0 - Prerequisites:

Lesson 1 - Introduction to Linux

  • Present the system,
  • Advantages and disadvantages,
  • Why use Ubuntu 20.04 and not later versions?
  • Explaining the teaching method
  • (Here I will give a presentation for the first class)

Lesson 2 - Using the Terminal

(Mini-Project L2)

  • Step 1)) Create a main Folder called "Conversation Code", inside this folder create a second folder named "Ubuntu_20_04" and inside this second folder create the files "Lesson_2.txt", "Lesson_2_to_delete" and "Lesson_2_rename".
  • Step 2)) Delete the folder named "to delete", and rename the folder "Rename" to "Lesson_2_+Your_name+birthdate".
  • Step 3)) Obtain the .zip file provided in the course, extract it to your computer and:
    • Find all the folders present in the .zip
    • Find the names of the files present in the "images" folder
    • Open the image "brain"
    • Insert your created folders into the "insert_here" folder extracted from the .zip
  • Step 4)) Zip your new folder with all the documents from steps 1 to 3, collect all the commands used (screenshots), and upload them to your personal GitHub.

Lesson 3 - Main Installations

  • Install Python 3
  • Install C++/C#
  • Install JS
  • Install "git" commands
  • Install Jupyter
  • Confirm installation of programs/installed version

(Mini-Project L3)

  • Verify the version of all installations and check if updates are available
  • Create a folder inside the "Ubuntu_20_04" folder named "Lesson_3". Inside this folder, create one file for each type .py, .cpp, .js, etc.
  • For each file created in the previous step, print "Hello world" to be used in Lesson 4.
  • Upload the screenshots of the commands and the .zip of the folders from this lesson to your GitHub.

Lesson 4 - Main Commands

(Mini-Project L4)

  • Step 1)) Create the folder "Lesson_4" inside the "Ubuntu_20_04" folder and copy repository X from GitHub Y. Remember to check if the files are executable.
  • Step 2)) Go to the "Codes" folder and request the list of files from the copied repository.
  • Step 3)) Run the list of files present in this Folder.
  • Step 4)) Print the results and upload them along with the complete folder to your GitHub.

Lesson 5 - Adapting My Library

  • Install necessary programs to run files
  • Installation of: "Pandas", "TensorFlow", "PyTorch", "Numpy"
  • "matplotlib", "Scikit-learn", "Keras"...
  • Copy the X2 Folder from GitHub Y2 to the "Lesson 5" folder in the "Ubuntu_20_04" folder.

(Mini-Project L5)

  • Try to run more complex programs with small errors that can be identified using the terminal (possibly the need to install an extension, or indentation error..., simple things to discover via the terminal)
  • Upload the codes with corrections as well as the screenshots of the errors found and how you arrived at the proposed solution.

Lesson 6 - Enhancing your Linux Experience

  • Creating a shortcut in Linux
  • How to navegate a file content and edit it through the terminal
  • How to unzip and untar files from the terminal
  • Updating GIT projects without cloning again

Team in charge

  1. Lucas Gomes(Linux instructor)
  2. Luigi Negrini(Inscripton Manager)