The materials in this repository are designed for a full day workshop that introduces students to software and programming. This course targets absolute beginners who want to learn the basics of programming. This course assumes very little background knowledge. Before students start writing code the class will spend some time contextualizing the field of programming by discussing modern software ecosystems, and the software development lifecycle.
The two primary goals of this course are: 1) Give students a "big picture" understanding of how software is used, especailly in corporate contexts. 2) Get students reading and writing simple Python programs.
Students in the class will learn about:
- Large scale software ecosystems:
- What are the parts? (Webservers, email servers, databases and data warehouses, cloud compute for data science...)
- How are they connected?
- The software development lifecycle:
- What does a "day in the life" of a software engineer look like?
- How does code get deployed to all the parts mentioned above?
- How do software teams manage their codebases?
- How to write simple programs in Python.
For more details on the course objectives and how they will be achieved, please see the lesson plan.
This repository has three main components:
- The lesson plan
- Several code examples demonstrating the basics of Python.
- Exercises for students to attempt during the workshop.
For instructors, I suggest reading the lesson plan, which calls out when and how to use the code examples and exercises. For students, this repo will serve both as a helpful place to review the workshop as well as the starting point for all of the exercises. Students will be asked to copy and paste code from here in order to start the exercises. You may wish to save yourself a little time by clicking the green "clone or download" button on the upper-right side of this page, and download this repo to get all the examples and exercises on your own computer.
For students who are already familiar with git
and Github, you may wish to clone this repo in order to save some time copy/pasting the instructions. But honestly, if you're already familair with git
and Github, you might find this course to be a little boring.
The purpose of this repository is purely educational.
The information and code here is provided without warranty of any kind.
Everything in this repo has been released to the public domain. You may use it for any purpose whatsoever, without restriction.
These materials were created by Tyler Bettilyon and Teb's Lab. You can support the creation of more free, open source, public domain educational materials by sharing them with others, subscribing to our newsletter or becoming a subscriber on Patreon.