We are going to be using this project throughout the course.
This assignment uses life expectancy in Europe grouped by Country (or other, like group of countries), Age, Sex, and Time. But the data format makes it hard to use. We will be building a pipeline do clean the data, while applying the concepts you've learned in the previous modules.
Before installing, make sure your pip
is up to date.
pip --version
Prior to the introduction of pyproject.toml
-based builds (in PEP 517 and PEP 518), pip had only supported installing packages using setup.py files that were built using setuptools
. But in version 21.3, pip added support for performing editable installs of packages that use pyproject.toml
. This means that you can use pip to install packages described in the pyproject.toml
.
To update pip, run:
pip install --upgrade pip
Now you're ready to go!
- Clone this repo.
- Copy
assignments
folder into a separate projectmv -r nos-lp-foundations/assignments assignments
. - Move into the assignments folder (
cd assignments
) and start a new repo (git init
). - Create a virtual environment with
python -m venv .venv
.Note for Anaconda users: We would prefer if you exit the automatic conda environments and tried using the steps above, as they are the canonical Python way of creating virtual environments. However, we realize working that way might be tricky for Anaconda users since Anaconda usually changes the configurations of your machine. If you are having too many problems getting started, then feel free to use the "conda way" of handling environments. I.e.: create a virtual environment with
conda create --name foundations
. - Activate the virtual environment with
source .venv/bin/activate
or.venv\Scripts\activate
on Windows.Note for Anaconda users: Same as above, if you are having too many problems getting started, then feel free to activate the environment with
conda activate foundations
instead.
Don't install the project yet. We will do that in setup assignment.
Open the README.md
file inside each assignment and follow the instructions.
Note: Remember that all commands inside the Readme files assume you are in the root of the project.
- Try to keep the pace with the group's progress, neither falling too behind or advancing too much by themselves.
- Don't let their peers' code reviews go stale.
- Don't ignore the questions and improvements asked by the person reviewing your code.
- Be courteous and respectful to your peers and mentor.
- Set your progress expectations with your mentor.
- Conduct yourself with integrity and honesty.
A mentor are tasked in ensuring their peers become better professionals, as such, we expect them to:
- Reserve at least 30 minutes per week for each group you mentor, for answering questions and giving feedback.
- Encourage group members and communicate openly.
- Be courteous and respectful to your mentees.
- Ensure code reviews go smoothly: oversee and help, but don't overtake the reviewer's responsibilities.
- Keep track of questions and progress of the group members (see Progress tracking)
- Conduct yourself with integrity and honesty.
In order to help mentors in tracking the progress of their groups, we suggest using the following template:
Tracking questions is important so that we can improve the quality of the selected material, as well as create new ones.
In order to make the best use out of this learning path, you should know:
- Basic / Intermediary Python: control flow, functions, handling errors, data structures, files, virtual environments, data manipulation libraries.
- Basic Git: add, commit, checkout, merge, and rebase
Note: This is just a suggestion. Groups are encouraged to set their own deadlines with their mentors.
Week 01 (~3.0 hours)
- Clean code part 1: Long code is not good code (2h10)
- Assignment #0
Week 02 (~2.0 hours)
- Clean code part 2: Names and Comments (2:00)
Week 03 (~3.0 hours)
- Linting (0:30)
- Continuous integration (0:05)
- Assignment #1
Week 04 (~2.5 hours)
- Git strategies (0:20)
- Assessing code quality: reviews and structures (1:30)
- Assignment #2
Week 05 (~1.5 hours)
- Testing (1:30)
Week 06 (~3 hours)
- Assignment #3 (3:00)
Week 07 (~2.5 hours)
- Object-oriented programming (2:30)
Week 08 (~2.0 hours)
- Text editors (1:30)
- Assignment #4
Week 09 (~3 hours)
- Design patterns (3:00)
Week 10 (~2.5 hours)
- Assignment #5 (2:30)
Assignments are located inside the assignments
folder. The assignment instructions assume you are issuing commands from that folder.
In it, you'll find a project folder called life_expectancy
as well as folders with instructions for each assignment. Each assignment builds upon the previous one and they are all meant to be do inside the project folder.
The goal of this course is to be your personal companion on being a better programmer. We hope you enjoy it and learn a lot from it.
Feel free to open GitHub issues to give us feedback and ideas for new features. Or even better, open a pull request with your suggestions. test