|
| 1 | +# Course Setup and Overview |
| 2 | + |
| 3 | +Welcome to Practical Python Programming! |
| 4 | + |
| 5 | +## Setup and Python Installation |
| 6 | + |
| 7 | +You need nothing more than a basic Python 3.6 installation or newer. |
| 8 | +There is no dependency on any particular operating system, editor, |
| 9 | +IDE, or extra Python-related tooling. There are no third-party |
| 10 | +dependencies. |
| 11 | + |
| 12 | +That said, most of this course involves learning how to write scripts |
| 13 | +and small programs that involve data read from files. Therefore, you |
| 14 | +need to make sure you're in an environment where you can easily work |
| 15 | +with files. This includes using an editor to create Python programs |
| 16 | +and being able to run those programs from the shell/terminal. |
| 17 | + |
| 18 | +You might be inclined to work on this course using a more interactive |
| 19 | +environment such as Jupyter Notebooks. **I DO NOT ADVISE THIS!** |
| 20 | +Although notebooks are great for experimentation, many of the |
| 21 | +exercises in this course teach concepts related to program |
| 22 | +organization. This includes working with functions, modules, import |
| 23 | +statements, and refactoring of programs whose source code spans |
| 24 | +multiple files. In my experience, it is hard to replicate this kind |
| 25 | +of working environment in notebooks. |
| 26 | + |
| 27 | +## Forking/Cloning the Course Repository |
| 28 | + |
| 29 | +To prepare your environment for the course, I recommend creating your |
| 30 | +own fork of the course GitHub repo at |
| 31 | +[https://github.com/dabeaz-course/practical-python](https://github.com/dabeaz-course/practical-python). |
| 32 | +Once you are done, you can clone it to your local machine: |
| 33 | + |
| 34 | +``` |
| 35 | +bash % git clone https://github.com/yourname/practical-python |
| 36 | +bash % cd practical-python |
| 37 | +bash % |
| 38 | +``` |
| 39 | + |
| 40 | +Do all of your work within the `practical-python/` directory. If you |
| 41 | +commit your solution code back to your fork of the repository, it will |
| 42 | +keep all of your code together in one place and you'll have a nice |
| 43 | +historical record of your work when you're done. |
| 44 | + |
| 45 | +If you don't want to create a personal fork or don't have a GitHub account, |
| 46 | +you can still clone the course directory to your machine: |
| 47 | + |
| 48 | +``` |
| 49 | +bash % git clone https://github.com/dabeaz-course/practical-python |
| 50 | +bash % cd practical-python |
| 51 | +bash % |
| 52 | +``` |
| 53 | + |
| 54 | +With this option, you just won't be able to commit code changes except |
| 55 | +to the local copy on your machine. |
| 56 | + |
| 57 | +## File Layout |
| 58 | + |
| 59 | +Do all of your coding work in the `Work/` directory. Within that directory, |
| 60 | +there is a `Data/` directory. The `Data/` directory contains a variety of |
| 61 | +datafiles and other scripts used during the course. You will frequently have |
| 62 | +to access files in `Data/`. Course exercises are written with the assumption |
| 63 | +that you are creating programs in the `Work/` directory. |
| 64 | + |
| 65 | +## Solutions |
| 66 | + |
| 67 | +The `Solutions/` directory contains full solution code to selected exercises. |
| 68 | +Feel free to look at this if you need a hint. |
| 69 | + |
| 70 | + |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | + |
0 commit comments