ADVANCED PYTHON OBJECT ORIENTED PROGRAMMING PRACTICE
Maria Lymperaiou is a software engineer at JP Morgan Chase Bank in the UK. She has been researcher at the European Organization for Nuclear Research (CERN) in Switzerland and holds a ME Electrical and Computer Engineering.
This practice is made up of 3 projects focused on OOP. The main goal of these projects is to practice OOP and get confident about this programming approach. The projects are as follows:
1) Commuting options: create a program to helps a student decide what is the best choice to go to the university. You are given an excel file with all the elements (weather, temperature, cost, etc) necessary to make a decision about the most suitable mean of transport (car, bus, bike, etc) every day of the week. Based on that input data and with object oriented programming you will have to show the best option for each day of the week.
2) Stocks prices: among a list of stock values you are requested to find local maximum and minimum prices
based on several conditions and their positions. In addition to classes creation and methods definition, there is an important workload of lists.
3) Visitors capacity management: create a program to limit number of clients inside a shop, keep the social distancing and manage their waiting time outside. You will have to design three classes each one with different methods and attributes. Methods include a wide range of functions such as distances calculation with coordinates, comparisons through conditional statements, iterations through “for” loops and so on.
All projects have a guidelines section where the challenge is broken down in multiple small exercises (more than 10). This way, you finish the challenge step by step solving problems about classes, methods, objects and other common elements of the OOP paradigm.
DOWNLOAD / CONTENT
You will receive an email with a protected ZIP and a password to access the content. If you are a registered user, the download is always available on your account.
The downloadable zip is made up of three folders with one project each one:
1) One PDF with the project description. It includes step by step guidance and hints to help you complete the tasks.
2) A Jupyter Notebook with the solutions. You will find not only the source code but also detailed explanations about how the code works.
IMPORTANT: to see the solutions (Notebook) you need to have Jupyter or the ANACONDA package installed on your machine. If you do not have it, you may download it here. It is free.
WHAT YOU WILL PRACTICE
– Creating Classes.
– Writing and calling methods.
– Define functions with “for/while” loops and conditional statements (if/else)
– Dictionaries and lists.
– Inheritance: use the __init__()
– Basic Pandas library to import a table saved in an Excel file.
Knowledge of object oriented programming is required to be able to finish the challenges. It is recommended to have attended an OOP introduction course and be familiar with concepts like classes, methods, objects, encapsulation, inheritance, instances etc.
It is also recommended (although not mandatory) to be familiar with the pandas library in order to read the input data when is stored in a spreadsheet.