Morrison's 2021S2 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.

Class Materials

Course Outline You can see this here.

Textbook You will get a link the first day of class, and it will be avaiable in Canvas. It is a good idea to download all of the chapters and keep them in the directory you create for this class.

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 The Python Site makes installing Python (3, not 2) and associated software on your lappy simple. Corey Schaefer's video has complete instructions to give you an excellent start. Make sure you click the box to update your path for Windoze! This video has Mac instructions too.

Recommended Java Version We recommend you install openjdk15 using the Adoptopenjdk Site.

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