Python 1000
-by Requirement
10 Projects for Beginners
(this page is intentionally blank)
Dedication
This book is dedicated to those special students, friends, as well as family members who provided the support & inspiration required to make our training opportunities possible. Be the assistance rendered in the kitchen or in the classroom, thank you one & all for offering the candid insights required that makes creating first timer educational activities possible ... let alone enjoyable!
(this page is intentionally blank)
Table of Contents
(this page is intentionally blank)
Introduction
This book contains additional activities for new Python students, and / or students who have completed our on-line "Python 1000" Training. Designed for beginners, students enrolled in our other on-line, Python training opportunities, will also enjoy these projects.
Project History
Be it in-the-cloud or in-person, we should note that our Python training has been taught to thousands of new software developers. First published in 2017, by the release of this second edition in 2020 our Python3 Training group on Facebook has grown to over 20,000 students!
When an enthusiastic student asked for some more exercise, we decided to create and share as set of professional documentation. From our font selections to the overall document format, our mission was to create the type of documentation that software developers are most likely see on-the-job.
Because modern software developers need to understand how to create software from design specifications, each individual project in this book has been designed to review Python capabilities, as well as professional techniques. In this book, students will be exploring everything from using Pythons built-in functions, to practicing common research, maintenance, as well as re-factoring activities.
Limited Diagram Coverage
The diagrams used in this book have been drawn using the Unified Modeling Language (UML.)
In as much as our target audience is focused upon new and intermediate software developers, we decided to limit the diagram types in this book to two: Use Cases, and Activity Diagrams. Arguably the most-used diagram types in the professional world, our intent is to include other diagram types in future training offerings.
Please defer to the UML Diagrams section (below) for more information.
Student Resources
Freely available across every popular operating system, the popularity of the Python programming language has been growing steadily. Demonstrating the famous (infamous?) release of three principal ( commonly: third times a charm ) -with the advent of Python 3, the number of people using Python has exploded.
For those who may not have had any experience with programming, the first thing most Python training will do is to direct a student to python.org so as to download what each will need to start writing Python.
Students looking for several free hours of on-line certification & training in Python can contact me via the Python3 Training group, on Facebook:
https://www.facebook.com/groups/Python3Training
I am looking forward to seeing you in the professional software development world!
Individual Project Overviews
When selecting the projects to include in this book, our mission was to choose activities that demonstrate the techniques, technologies, as well as the documentation that modern Python software developers are most likely to find on-the-job.
From creating a simple Hex Dumper tool, to analyzing & reporting on data, the exercises in this book have been designed so as to provide a gentle, evolutionary, educational experience.
Please note:
1.) This training has been designed for students who have a basic understanding of the Python Programming Language. In order to avoid a LOT of frustration, students who have never used Python before must complete our on-line training or an educational equivalent - before attempting to work on the exercises in this book!
2.) The numbering of the projects in this book is deliberately eccentric. While we could have re-numbered each project so as to follow a nice, neat pattern, students should appreciate that unlike during a Waterfall requirements gathering approach that requirement numbering in the fast and furious Agile world can be allot less predictable.
3.) While eccentrically numbered, the following exercises can safely be completed in numerical order.
The following projects are included in this book:
PR1000.01: Create a Hex Dumper (PR01)
Because everyone might need a review on how to convert between integers and strings, we decided to begin with an exercise that would demonstrate how to display a series of characters (string) in hexadecimal format. By converting a character an integer, and then into an alternative string format, your mission if you decide to accept it - is to convert a string to hexadecimal format.
PR1000.02: HexReader and HexWriter (PR02)
While a great review exercise, the completion of PR01 offers us an opportunity to create a pair of functions. A set of re-usable operations that can encode, as well as decode, hexadecimal data.
In PR02 therefore, your mission is to use what you have learned so as to create a reusable hexadecimal encoder, as well as a decoder, capability.
PR1000.03: Big Text Parsing (PR03)
Python developers often need to manage data collections. In this exercise we will review the basics of collection management by enumerating through a set of data. By parsing each line of data into a dictionary, our goal is to use the data to create an oversized single-character big text display.
PR1000.04: Big Text Refactoring (PR04)
Whenever we have created something interesting, often the next step is to prepare our creation(s) for re-use. Commonly known as re-factoring, in PR04 our mission is to convert the solution PR03 (above) for easier re-use by other applications.
PR1000.05: Console User Interface (PR05)
Before the Graphical User Interface (GUI,) there was the Textual User Interface, or TUI. Because many Python software developers will be creating console / TUI interfaces, after reviewing the basics of string, integer, and function management PR05 allows us to create menu-driven user interfaces.
Since we spent allot of time creating display tables and banner programs in Python 1000, our first TUI will allow us to apply what we have learned so as to allow the user to create their own custom banners. By way of a bonus, the ability to format and display the date and time will also be covered.
PR1000.10: User Login Retries (PR10)
Applying our knowledge so as to support a login attempt is an activity that many new software developers will want to experience. While the requirement to match each login attempt to a secret application password is easy to understand, the idea of limiting the number of login attempts is a key requirement to be tested in PR10.
PR1000.11: Password Encryption (PR11)
The moment we start talking about passwords, we usually have to understand how to keep them safe. Far from being a mysterious task however, applying what we learned in PR02 will allow us to confidently secure our passwords so that only a single users ID and password combination can log into our application.
PR1000.20: Message of the Day (PR20)
While we are free to toss in a banner or two, the objective of PR20 is to manage a set of data. Information that we can use to perform reporting activities. From parsing a collection of data as well as working with what we have created, new students should enjoy creating s Python dictionary that will help format, as well as report upon, a set of famous quotations.