This hands-on course is intended for those individuals with little or no software development experience. Starting with the most fundamental elements, this training evolves your skills to produce complete computer applications, including the user interface, business logic and data access layers. During the course, attendees will write code using Python, one of the most popular modern languages and highly suitable for beginners. In addition, comparisons with other languages, such as Java and C#, will be discussed. Development techniques include requirements, design, code generation, testing and debugging. As a result, you gain all the pre-requisite skills necessary to carry on to more language-specific training appropriate for the type of applications your organization needs, be they data science, web development, embedded real-time systems or other. Python Fundamentals Training for Non-Programmers Benefits In this Python for Non-Programmers course, you will learn how to: Demonstrate the fundamental aspects of modern programming. Design and implement an application using Python. Write cohesive object-oriented logic (classes and libraries). Leverage integrated development tools for code editing, execution, testing, and debugging. Access data files to save and restore persistent information. Distinguish between Python and other languages such as C# or Java. Prerequisites None. Python Training for Non-Programmers Course Outline Chapter 1 – Starting to ProgramPrinciples of Programming How computers solve problems Language types and evolution Procedural logic Object Orientation Bugs and other challenges Syntax and Semantics About Python Statements and comments Literals, Variables and Data Types Collection Types Expressions and Operators Strings, Concatenation, and type conversion Demo – accessing exercise computers and Py Hands-On Exercise – First Python program using Py Chapter 2 – Development ToolsProgram Layout and Organization Modules and Packages Integrated Development Environments (IDEs) Introduction to Eclipse and PyDev The course case study Demo – Using Eclipse Hands-On Exercise – Creating a Python Program with PyDev Chapter 3 – Controlling Program FlowMaking Decisions with Conditionals if/elif/else statements Criteria expressions in and not in Hands-On Exercise 3.1 – Conditional Logic Repeating Program Logic with Loops Counting loops and for/Range For-each Loops Iterating a List Loop control break and continue Hands-On Exercise 3.2 – Programming loops Writing and Calling Functions Function definition return statement Accepting parameters Returning results Importing modules and functions Cross-module calls Calling library functions Hands-On Exercise 3.3 – Writing Functions Chapter 4 – Object-Oriented ProgrammingWhy Object Oriented? Challenges with purely procedural code Global variables – not the solution Principles and style of object orientation Classes and Objects Defining classes Properties vs local variables Methods vs functions Creating objects Object state and instance data Discussion – object needs of the case study Hands-On Exercise – Defining Classes Encapsulation and Constructors Why encapsulate? Specifying Private properties and methods Access from external modules Purpose of __init__(self) method Constructor parameters for required data Discussion – case study object-oriented design Hands-On Exercise – Encapsulation and Constructors Code Quality and Testing Discussion – Don’t you just hate when a program does… Improving the user experience Optional Hands-On Exercise – User interface improvement Chapter 5 – User Interfaces and EventsGraphical UI Frameworks 3-layer model What is a framework? Framework choices GUI Philosophy Why Tkinter (tinker) Windows, Frames and Widgets Familiar widgets – from labels to radio buttons The GUI class structure and layout Adding widgets to a form Geometry manager pack(), vs grid() vs place() Adding widgets to a frame Adding a frame to a window Using grids – automatic rows and columns Tk Choice properties Radio button example Hands-On Exercise – Laying out a GUI for the case study Events and Event Binding Philosophy of event-driven programming Event types Binding to events using bind() Button click event Keyboard enter-key event Choice widget command options Command response function vs event method Discussion – An event has happened, now what? Hands-On Exercise – Adding events for the case study. Chapter 6 – Input and OutputAccessing Files Types of data input Flat vs serialization vs big data vs database I/O streams Opening modes – read, write and append New files vs appending Reading/writing binary, raw and character data Handling exceptions Preventing exceptions Manipulating the file system Deleting, renaming and checking file existence path and path.exists examples Hands-On Exercise – Reading and writing a user historical log About Relational Databases Why is it relational? Primary and foreign keys Tables and joins SQL Language Non-procedural approach Chapter 7 – Other Languages and Code QualityComparison of Python to other languages Java and C# features Similar concepts, different syntax Code and Program Quality What makes a good user experience What is quality code Chapter 8 – Course SummaryNext Steps For more on Python For more on Java or C# ObjectivesReview of course topics