Files
practical-python/Notes/00_Setup.md
A D Vishnu Prasad bd46830659 Fix Broken Links
2020-05-29 19:15:25 +05:30

99 lines
3.4 KiB
Markdown

# Course Setup and Overview
Welcome to Practical Python Programming! This page has some important information
about course setup and logistics.
## Course Duration and Time Requirements
This course was originally given as an instructor-led in-person
training that spanned 3 to 4 days. To complete the course in its
entirety, you should minimally plan on committing 25-35 hours of work.
Most participants find the material to be quite challenging without
peeking at solution code (see below).
## Setup and Python Installation
You need nothing more than a basic Python 3.6 installation or newer.
There is no dependency on any particular operating system, editor,
IDE, or extra Python-related tooling. There are no third-party
dependencies.
That said, most of this course involves learning how to write scripts
and small programs that involve data read from files. Therefore, you
need to make sure you're in an environment where you can easily work
with files. This includes using an editor to create Python programs
and being able to run those programs from the shell/terminal.
You might be inclined to work on this course using a more interactive
environment such as Jupyter Notebooks. **I DO NOT ADVISE THIS!**
Although notebooks are great for experimentation, many of the
exercises in this course teach concepts related to program
organization. This includes working with functions, modules, import
statements, and refactoring of programs whose source code spans
multiple files. In my experience, it is hard to replicate this kind
of working environment in notebooks.
## Forking/Cloning the Course Repository
To prepare your environment for the course, I recommend creating your
own fork of the course GitHub repo at
[https://github.com/dabeaz-course/practical-python](https://github.com/dabeaz-course/practical-python).
Once you are done, you can clone it to your local machine:
```
bash % git clone https://github.com/yourname/practical-python
bash % cd practical-python
bash %
```
Do all of your work within the `practical-python/` directory. If you
commit your solution code back to your fork of the repository, it will
keep all of your code together in one place and you'll have a nice
historical record of your work when you're done.
If you don't want to create a personal fork or don't have a GitHub account,
you can still clone the course directory to your machine:
```
bash % git clone https://github.com/dabeaz-course/practical-python
bash % cd practical-python
bash %
```
With this option, you just won't be able to commit code changes except
to the local copy on your machine.
## Coursework Layout
Do all of your coding work in the `Work/` directory. Within that
directory, there is a `Data/` directory. The `Data/` directory
contains a variety of datafiles and other scripts used during the
course. You will frequently have to access files located in `Data/`.
Course exercises are written with the assumption that you are creating
programs in the `Work/` directory.
## Course Order
Course material should be completed in section order, starting with
section 1. Course exercises in later sections build upon code written in
earlier sections. Many of the later exercises involve minor refactoring
of existing code.
## Solution Code
The `Solutions/` directory contains full solution code to selected
exercises. Feel free to look at this if you need a hint. To get the
most out of the course however, you should try to create your own
solutions first.
[Contents](Contents.md)