Morrison's 2021S1 Procedural Programming

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.

  1. 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.
  2. 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.
  3. Scope and Delimitation This is the business of knowing where things begin and end. Included in this is the lifetime of variables and objects.
  4. Conditional Logic This permits programs to "make decisions" depending upon their internal state, which consists of all variables being stored and their values.
  5. Iteration This permits programs to do a task repeatedly and to know when and if to start and when to end.
  6. 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.

syntax on
set et
set tabstop=4
set shiftwidth=4
set nohlsearch
set backspace=indent,eol,start
Type this exactly as shown. The vi editor has a sharp learning curve, but once you become a vi ninja, it's blazingly fast.
  • A lot of Linux users swear by gedit, which is present in the default install. You can also get gedit for Windoze and Mac. It has tons of plugins that give it all sorts of great capabilities.
  • 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
    ItemDescription
    https://www.python.orgMain Python Site
    https://docs.python.org/3/Python 3 Documentation
    https://docs.python.org/3/library/functions.html#built-in-funcsPython 3 built-in functions
    https://docs.python.org/3/library/stdtypes.htmlPython built-in Types. Learn about stuff like int and str here.
    https://docs.python.org/3/library/index.htmlPython Standard Library Index Page
    https://docs.python.org/3/py-modindex.htmlGlobal 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 NinjasNet 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 ListBucky does a great job of explaining things. Expect eccentricity.
    Some Great VI tricksRamp up vi