Concepts of Learning#
Note
For help with understanding Files and Folders, there is a nice pilot module developed by the Data Literacy Project at TU Delft. It is a short, self-paced and independent learning course. You can find it here. It is short with some exercises and quizzes to help you understand the basics of files and folders. And although not all aspects of the module might be relevant to this course, I highly recommend you to go through it.
This course is designed to teach you to enhance your Python code with standard software practices such as version control (git), testing, documentation, and packaging. The course specific information is provided in the course overview. For learning concepts, you’ll find documentation for various steps outlined as sub-sections to this page in the navigation sidebar. These steps include, among others, how to get started with git, how to use python in a terminal, etc.
Recommended path to follow#
It is recommended to follow the learning concepts in the order presented here and in the navigation sidebar. This will help you build on the concepts slowly and progress through the course.
The first step is to get somewhat comfortable with the terminal. You can do this by following the steps in the Python in a terminal section. Here you will learn how to run Python code in a terminal, as opposed to using Jupyter notebooks.
In the previous step already, there might be some questions that have popped up in your mind. For example, what is a terminal and should I code in that? Or what is the difference between a .py file and a .ipynb file? You’ll find answers to these questions in the Important Differences section.
You probably now got an idea of the differences between Git and Github. Now, this step will help you get started with git. You can do this by following the steps in the Quick Guide to Git section. Here you will learn how to set up git on your computer, how to get your local SSH keys working with Github and how to clone your Github repository. All these are one-time steps to start working with git and Github.
Now that you have git set up, you can start working on your project. As you are developing code, you will keep making changes, but you also want to keep track of these changes. So, don’t forget to commit your changes and then communicate them to Github. You can do this by following the steps in the Local to Remote section.
For the next step, you might want to learn how to write tests for your code. This is important because as your code grows, you want to make sure that the changes you make do not break the existing code. You can do this by following the steps in the Testing section. Here you will learn how to write tests for your code and how to run them.
While you are coding away intensely, take a few moments to also document your work. It’ll come in very handy. Learn about why you should document and how you can do this by following the steps in the Documenting section. Here you will learn how to write docstrings for your functions and how to write a good README file for your project.
At some point you will look at your project and think, “I want to share this with the world” (or at least get done with this and submit it for grading). In any case, now is the time to package your project. You can do this by following the steps in the Packaging section.
As you keep working on your project, you might have some issues with your code, which you might want to communicate with us - the teaching team. Go ahead and let us know by following the steps in the Guide to Raising Issues section. Note that you can still ask questions via email, but it is recommended to use the issue tracker on Github. It is not very complicated, and don’t forget to tag us in the issue by using
@
followed by our Github usernames.If you see some mistakes in the documentation here or you think some improvements can bring more clarity to the explanations, please feel free to suggest these to us by raising an issue to this page’s repository. We are always looking to improve the content and your suggestions will be highly appreciated.