Course Prerequisites
The Big 6
You are in here because you took introductory programming or via placement. We expect you to be familar with the following.
- Variables and Objects Objects have state and behavior, and variables are identifiers [symbols] that point at them. Objects represent data that come in different species [types]. A table of all variables and the objects they refer to is called a symbol table. The process of binding a variable to a value is called assignment. Combinations of variables and operations are called expressions. When an expression is evaluated, the values of all variables in it are fetched from a symbol table and substituted into the expression.
- Functions Functions are entities that remember procedures. They have inputs (arguments), outputs (a return value), and side effects, which are items that persist beyond the lifetime of the function. Side effects can include output printed to the screen, items places in a file, or other changes to the internal state of a program. Functions are a means by which we decompose complex problems into simpler ones in a process called modularization.
- Scope and Delimitation This is the business of knowing where things begin and end. Included in this is the lifetime of variables and objects.
- Conditional Logic This permits programs to "make decisions" depending upon their internal state, which consists of all variables being stored and their values.
- Iteration This permits programs to do a task repeatedly and to know when and if to start and when to end.
- Containers These allow you to store a collection of related data under a single name. Different containts here different rules for access and modification of their contents.
Get your Lappy Ready
If you are enrolled in this class, you got an email telling you of the existence of this page. You will use the following software items in this class. All are freely available.
- FileZilla will enable you to transfer files back and forth between your lappy and the departmental server. It works for Mac, Linux, and Windoze, and its interface is butt-simple. A smart thing to do is to use this to back up your programming files to the server.
- You will want to have a plain-text editor. Both Atom and VSCode are great choices. These are handy for coding on your local machine.
- Notepad++ is great for Windoze users.
- Mac and Linux users are welcome to use
vim
. For mac users, I recommend you have this in your~/.vimrc
.
syntax on set et set tabstop=4 set shiftwidth=4 set nohlsearch set backspace=indent,eol,startType this exactly as shown. The vi editor has a sharp learning curve, but once you become a vi ninja, it's blazingly fast.
Class Materials
Course Outline You can see this here.
Textbook You will get a link the first day of class. Also, chapters will be avaiable in Canvas.
Your class website On the left, you will see directories
the various months. These will contain the course calendars. The file
basicStuff.php
linked at the left will answer your most basic
questions about this class.
The specs directory will contain specifications for all graded activities.
Materials may also be present on our internal server
cs.ncssm.edu
. You will get an account on this server and you will
learn how to interact with its command-line interface. You will be asked to
post certain assignments and projects there.
This course will be on canvas as well. Canvas will be used for reading quizzes, and it provides a portal for you to upload programming assignments. All grades are entered into the canvas gradebook.
Useful Stuff
You should explore all of the resources here. They can make this class easier and more fun and the time you spend on it more productive.
Recommended Python Installer The Anaconda Distribution makes
installing Python and associated software on your lappy simple. This will
make installing the scipy
stack quick and easy.
Mark Jay's
tutorial will guide you thorugh the process on Windoze.
This tutorial
will show you how to do this on a Mac. In either case, go with Python3.
Note to Mac Users Once you install anaconda, do this.
$ conda install python.app
Have this in your bookmarks This table will help you to navigate the offical Python documentation and provide you with supplementary learning resources.
Selected Areas of the Official Python Documentation | |
---|---|
Item | Description |
https://www.python.org | Main Python Site |
https://docs.python.org/3/ | Python 3 Documentation |
https://docs.python.org/3/library/functions.html#built-in-funcs | Python 3 built-in functions |
https://docs.python.org/3/library/stdtypes.html | Python built-in Types. Learn about stuff like int and str here. |
https://docs.python.org/3/library/index.html | Python Standard Library Index Page |
https://docs.python.org/3/py-modindex.html | Global Module Index. Learn about the contents of things you have imported. |
Other Web Resources | |
Telusko's Beginner's Tutorial | Go to 13:00 to skip the instructions on installing. Variables are explained at 27:00. He speaks British English, so parens are brackets. |
Net Ninjas | Net Ninja Python Tutorials Video 2 tells how to install Python on a Windoze machine and has links to instructions for Mac and Linux. |
Bucky's Python 3 Play List | Bucky does a great job of explaining things. Expect eccentricity. |
Some Great VI tricks | Ramp up vi |