Codecool - From 3. SI-Week To 4. SI-Week
3. Self-instructed Week – //2016.05.30-2016.06.03//
Now the first goal was to deepen my knowledge: file handling, list and string operations, control statements, git.
-
Module 1 (Basic Concepts), Module 2 (Control Structures)
-
Module 3 (Functions & Modules)
-
Module 4(Exceptions & Files)
-
Module 5 (More Types)
Then I got new task which helped me to prepare for the next TW week:
Python: Game statistics reports:
- learning coding with modules
- learning error handling
- preparation for a lightweight ERP (Enterprise Resource Planning software) project, which will be the team level assignment on the next TW week
-
preparation for the personal assessment:
- live mini task in python (with the help of a mentor and not google). For example: implement a function that manipulates strings
- questions about the python language
- code comprehension / reading exercise
- Providing feedback about past weeks in Teammates
The story was : “I am a happy programmer at a big game developer company, named “ID Software”. Judy, my statistician colleague, asks help from me in a competitor evaluation project. She has a data file with a lot of statistical information about famous games of all time. Judy has some unanswered questions about the games. She need me to write a program that can answer these questions.”
Description: My task was to write reports that answer Judy’s questions. Every report needed to be implemented as a function so every function was related to a question. For every report function I needed to write a printer function also. The printer function had to pretty printed the return value(s) of the report function.
The input file : The name of the input file was game_stat.txt. You could find it in the repository:
Every line in the file contained the following information about a game:
- title
- total copies sold (million)
- release date
- genre
- publisher
These were the properties of a game. Properties were separated by a tab character and lines were separated by line break characters. I needed to pay attention these special characters when I read the file.
3. TeamWork-Week – //2016.06.6.04-2016.06.10//
Goals of the week:
- Working in groups
- Creating a modular structured ERP (Enterprise Resource Planner) software in python
- Concentrating to expected outputs
- Focusing on clean code
- Exercising the learnt materials
- Taking a test on Thursday
- Focusing on reasonable git history
Python: Lightweight ERP project
Description was: “Judy (from ID Software) has a boyfriend named Bob Lucky. He would like to order an ERP software for his computer game shop. My task was to develop a small prototype in Python before the contract. (ignore using some of the built-in functions)
Menu system: The entry point in the software is main.py. It shows the main menu, from which we can jump to submenus (module menus). Users should be able to go back to the main menu from any submenu, so each submenu must have an option to provide this possibility ((0) Go back to the main menu.) Options of the submenus run the functionalities of the module (default and special functions). The default functionalities (as options in the submenu) are: Show table, Add new item, Update item, Remove item.”
Then in this week, I had the 1. Personal Assessment (After 2 month). There was evaluated the following skills:
- Communication
- Programming skills in python
- Clean code
- Technical language
- Code comprehension in python
It was a good challenge I felt myself very well. : )
4. Self-instructed Week – //2016.06.13-2016.06.17//
In this week I learnt about two new things parallel with practicing:
- I got a basic understanding what Object-Oriented Programming is about
- I got familiar with the Waterfall project management method
Basics of Object-Oriented Programming
-As a quick introduction:
- https://youtu.be/iyXyxvs-544
-Tutorials:
- Classes:
- http://python-textbok.readthedocs.io/en/latest/Classes.html
- Object-Oriented programming:
- http://python-textbok.readthedocs.io/en/latest/Object_Oriented_Programming.html
- Other OOP related tutorials: Learn Python The Hard Way
- http://learnpythonthehardway.org/book/ex40.html
- http://learnpythonthehardway.org/book/ex41.html
- http://learnpythonthehardway.org/book/ex42.html
- http://www.python-course.eu/python3_object_oriented_programming.php
- https://developer.mozilla.org/en-US/Learn/Drafts/Python/Quickly_Learn_Object_Oriented_Programming
- http://code.tutsplus.com/articles/python-from-scratch-object-oriented-programming--net-21476
- https://www.udacity.com/wiki/classes
Python: Waste recycling in an OOP way
The story was: “It’s 2020. The mentors of Codecool Phnom Pen (capital of Cambodia) are fed up, because despite the strict house rules, no one cares about collecting the waste in a selective way in the school. They decided to make an automated dustbin, which can detect different types of garbage, and can put them to different containers automatically.”
The repository contained the project’s specification and the code’s skeleton as well. The specification was written in a so-called markdown format.
The Waterfall project management method
Introduction: The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.
Video about Waterfall:
- https://youtu.be/0NAsk0noT_U
Waterfall nowadays: In the past 10 years, waterfall model is used in less and less projects because of it’s disadvantages. It’s not a really good method for handling projects, where the requirements are not 100% clear, or where changes on the project’s scope have to be handled regularly.
Materials to have a basic understanding about Waterfall:
- https://en.wikipedia.org/wiki/Waterfall_model
- http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it
- http://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
End of story …Until the next post. :)
lombocska