/intro-to-monty

An introductory Python 3 and programming principles course

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

intro-to-monty

An introductory Python 3 and programming principles course.


Version: 1.0.6
Author: ES Alexander
Release Date: 31/03/2020


Lesson Breakdown:

  • L1: 'Hello World', General Introduction, Commenting, and Variables
  • L2: Operators and Conditionals
  • L3: Data Storage, Iteration, and Keywords
  • L4: Functional Programming, Functions, List Comprehension, and Abstraction
  • L5: File Types, User Input, String Formatting, Searching/Regex, Imports/Packages
  • L6: Object Oriented Programming, Classes, Encapsulation, Class and Static Methods, and Class Variables
  • L7: Inheritance and Abstract Classes
  • L8: Error Handling, Security, and Recursion
  • L9: GUIs, Model-View-Controller, Tkinter, and Eval and Exec
  • L10: Code Testing and Repositories

PROGRAMMERS:

To anyone doing the course who already has programming experience - feel free to look at the 'python_dict.py' file for a quick reference of basic syntax and features. The first few lessons are quite slowly paced, to try to encourage understanding and good habits from the beginning. While the information on programming principles might be useful to you, you can choose to jump straight to the examples if you are mainly interested in python syntax, and can fall back on the notes if you get stuck.

DISTRIBUTION:

Feel free to distribute this course at will, in the hopes it will help other aspiring programmers learn to program basic python, and perhaps be inspired to go further in their programming journey. In saying that, please include this README out of respect for the original author, to include a meaningful introduction to new participants, and preferably also maintain the course as a complete package.

USAGE:

The course is separated into 10 lessons, with each lesson containing a number of files, including notes, exercises, an automated exercise checker (with sample exercise solutions), and occasionally challenge problems. The intention for users following the course’s progression is to read the relevant notes on syntax and programming principles prior to completing each set of exercises, then checking the sample solutions after your attempt to complete the exercises is passing as many tests as possible. The notes can be referred back to at any point, and once the examples have been completed and passed all checks they should also serve as a valuable reference for recalling certain features and uses of syntax.

REQUIREMENTS:

The course is intended for use with Python 3 with the IDLE integrated development environment (IDE), although more advanced users are welcome to use alternative IDEs at their preference. Python (with IDLE included) can be freely downloaded from the internet, and the course materials should provide most other required files. Python files can be opened in IDLE by right clicking and selecting 'Edit with IDLE'.

In later lessons some external libraries will need to be installed, so to be extra prepared you can install the Python Package Installer (PyPI) on your computer, and install the relevant libraries using python3 -m pip install -r requirements.txt. Alternatively, you can install the required libraries manually with python3 -m pip install numpy opencv-python Pillow (note your operating system may have a slightly different syntax). The libraries used in the course are numpy (Numerical Python), opencv-python (Open Computer-Vision), and Pillow (Python Image Library) libraries (e.g. ). Additionally, the library testrun is used for automated testing, but it is included with the course for help writing your own tests. If you wish to use the same test module in your own projects, feel free to install testrun with pip as well.

Best of luck to any and all participants in their coding,

ES Alexander.