Intro. to Programming : Csci 1020

Tentative Schedule - as of August 23, 2017

All assignments for this course will be placed below by week.
1. Assignments in maroon are available only on D2L
2. All other assignments are available directly from this website, and links to these website documents are blue and underlined.

Week 1 mon aug21: Introduction

  1. Read and view the webpage for week 1..
  2. Read Introduction to your Instructor
  3. Read and do: Setup/Use Python on your machine
  4. D2L Communications/Discussions: Post comment regarding setup () Describe your experience setting up Python on your machine, or using a machine with Python.
  5. Read chapter 1, and do the interactive Python example within.
  6. D2L Assessments/Quizzes: Take quiz 1 covering chapter 1 material.
  7. Read and do: p1 programming assignment
  8. Email to as per p1 instructions
  9. D2L Communications/Discussions: Post comment regarding p1.

Week 2 mon aug28: Variables

  1. Read and view the webpage for week2
  2. Read chapter 2 on Variables, and do the interactive Python examples within.
  3. D2L Assessments/Quizzes: Take Quiz 2
  4. Program: p2 programming assignment
  5. Email to as per p2 instructions
  6. D2L Communications/Discussions: post comment regarding p2

Week 3 tue sep05: Functions

  1. Read the webpage for the week
  2. Read chapter 3 on Functions, and do the interactive Python examples within.
  3. D2L Assessments/Quizzes: Take Quiz 3
  4. Read and do: p3 programming assignment
  5. Email to as per p3 instructions
  6. D2L Communications/Discussions: Post comment regarding p3.

Week 4 mon sep11: Tests and Recursion

  1. Read the webpage for the week
  2. Read chapter 4 on Conditionals, and do the interactive Python examples within. (NOTE: Online text at this link is arranged different, so its chapter 5 is our chapter 4 on Contitionls.)
  3. D2L Assessments/Quizzes: Take Quiz 4
  4. Read and do: p4 programming assignment
  5. Email (and needed attachments) to as per p4 instructions
  6. D2L Communications/Discussions: Post comment regarding p4.

Week 5 mon sep25: Functions

  1. Read the webpage for the week
  2. Read chapter 5 on fruitful functions, and do the interactive Python examples within. (NOTE: Online text at this link is arranged different, so its chapter 6 is our chapter 5.)
  3. D2L Assessments/Quizzes: Take Quiz 5--when available
  4. Read and do: p5 programming assignment
  5. D2L Communications/Discussions: Post comment regarding p5--when available.

Week 6 mon sep25: Iterations

  1. Read chapter 6 on Iterations. (NOTE: This is your chapter 6.)
  2. D2L Assessments/Quizzes: Take Quiz 6--when available
  3. Read and do: p6 programming assignment
  4. D2L Communications/Discussions: Post comment regarding p6--when available.

Week 7 mon oct02: Strings

  1. reading: ch 7
  2. program: p7

Week 8 mon oct09: Lists and Tuples

  1. reading: ch 8 and 9
  2. program: p8

Week 9 mon oct16: Dictionaries

  1. reading: ch 10
  2. program: p9

Week 10 mon oct23: Files and IO (Input and Output)

  1. reading: ch 11
  2. program: p10

Week 11 mon oct30: Tkinter GUI

  1. reading: Tk/Tkinter manual
  2. program: p11

Week 12 mon nov06: Tkinter Canvas

  1. reading: Tk/Tkinter manual
  2. program: p12

Week 13 mon nov13: Python Classes and Objects

  1. reading: ch 12-15
  2. program: p13

Week 14 mon nov20: Tkinter Graphics

  1. reading: Tk/Tkinter manual
  2. program: p14

Week 15 mon nov27: Tkinter Animation

  1. reading: Tk/Tkinter manual
  2. program: p15

Week 16 mon dec04: Programming Project Design

  1. reading: online exploration
  2. assignment: p16 design proposal

Final fri dec15

  1. Final Programming Project p16 due

Instructor: Ted Wetherbee

Fond du Lac Tribal & Community College
2101 14th Street
Cloquet, Minnesota 55720

Office: W217
Phone: 218-879-0840

Fall 2017 Class Schedule:
  8-8:50am   MTWHF  Calculus 1       Room 228
  12-12:50pm MWF    College Algebra  Room 228
  12-12:50pm TH     Trigonometry     Room 228
  -online-          Intro. to Prog.  -online-
Office Hours in Room W217:
  Monday  Tuesday Wednesday Thursday  Friday
  11-noon 11-noon 9-10am    9-10am    11-noon

Course Website:

The schedule and most class materials will be online from this web site. You can also navigate from this simpler URL:

All current and past assignments are on the course website listed by date under the tentative schedule. This website is also available from within D2L after login.

Internet services: Email and D2L Course Access

FDLTCC E-services:
Email account info:
Email login:
D2L Course Login:


How to Think Like a Computer Scientist: Learning with Python, by Allen Downey, Jeff Elkner, and Chris Meyers, edition 2.0.17.

Free PDF (2.0.17)
Online Book (2.0.17)

This book is available in the FDLTCC book store at a reasonable price. Note that there is a Python 3 version available, but we are using the Python 2 version for practical reasons we will explain in class.

Materials needed: USB Key/Drive

Get yourself a USB key/drive. It does not have to be large. Managing your code is a very important aspect of programming!

Create a directory/folder for each programming assignment. Save your Python code often with short but descriptive names in the correct folder. NEVER use spaces in program or directory/folder names! Use underscores_between_words, if necessary. End Python script names with ".py". Disable "hide known file extensions" in a folder view so that you can see the ".py" extensions--which should always be there for Python scripts. When you refine a program, it is extremely helpful to save versions with different names incrementally, e.g.,,, and so on.

Include descriptive comments within your Python scripts so that you can later open the file, read comments, and thus know what it does, the author, when it was written, and so forth. You don't have to write a great deal, but you should write enough in a way so that a complete stranger could read your Python script and thus understand what it does, who wrote it, and when it was written. That stranger will usually be yourself! Programmers are humans; it is easy to completely forget almost everything about a code. Explain it to yourself within your code with comments, and do it as if you are writing to a complete stranger.

Python on Room 208 and Open Computer Lab machines

Some of the room 208 machines have Python 2.7 installed, some also with Python 3. All the Mac and Windows machines in the open computer lab have Python 2.7. Use Python 2.7 for our class work. As usual for FDLTCC classroom and computer lab machines, never expect anything you leave on a machine to remain on the machine! Always copy your programs and other files to a USB key/drive, and label them carefully so that you can find your files later.

Python on FDLTCC Mac Machines

All the Mac machines in labs and classrooms have Python installed, and this should be version 2.7 . Click the Finder (bottom left with the "half-face"), click "Applications" in the left pane, scroll down and click the "Utilities" folder, then click "Terminal". To run Python IDLE: At the terminal prompt (user$), type idle then press Enter.

Installing Python on Your Computer

Python is free. It is probably already be installed if you have a Linux or Mac PC/notebook. There are many free distributions of Python you can install on your Windows machine. You will want to install Python on your own machine if that is what you will use for this course, a notebook or desktop machine.


Grades are kept in D2L

16 Programs      16 x 50 = 800
16 Forum entries 16 x  5 =  80
16 Quizzes       16 x 10 = 160
Final Exam                 160
                          1200 total

90-100%   A
80-90%    B
70-80%    C
60-70%    D
0-60%     F

The Course

Check the online course website (this web site) and your email daily! Grades will be on D2l, the online course system. However, almost all course materials will be available from this website which is public. The schedule is tentative. I know what we should cover and what we will likely cover, but we may bring GUIs in earlier, and we will likely examine some Python features in more detail such as classes and object oriented programming. This online syllabus will be updated, and the Tentative Schedule with links to all assignments eventually will be moved toward the front for easier access.

Start programming assignments early! The best way to start is to start something. create a text file (source code) with the name of the programming assignment, say, then write comments at the top of the text file with your name, the date, and the purpose of the program. Then, save the program file ( on your Desktop and your USB drive. within a folder/directory labeled p1 . Create directories in the same place for each programming assignment, thus p1, p2, ..., p16 for the course. Keep your program source code in the correct directory. Carefully backup your directories on your USB drive; this is especially important if you use FDLTCC lab machines because anything on them may be deleted. On your own machine, it is still a great idea to regularly backup files on your machine to a USB drive. These are mechanics, but these are very important mechanics for programming.

Do your reading early! Work through the programming examples in your textbook! Your text has numerous interactive python examples which always have lines beginning with ">>>". Open a Python session, and work these out yourself. You should get the same results on your machine. Your reading and work on textbook exercises will prepare you for the final exam.

Note that your grade depends mostly on completing programming assignments. Email your completed programming assignment to me ( with your program as an attachment. Your programs should each be self-documented.

As with most things humans do (playing the piano, team sports, etc.), learning programming is mostly about practice, study, and gaining experience. Python programs which run correctly and solve the problem are the goal, and this almost always goes well with perseverance and steady work. Contact me for any questions, email is best, and include your source code to reference for specific questions.

The final exam will cover material from your reading and basic Python programming. Glossaries at the end of each textbook chapter have terms and definitions you should be prepared to answer. Working through the textbook interactive examples (command line instructions entered after a ">>>") and completing your programming assignments should prepare you for Python programming questions. Weekly quizzes available on D2L cover your reading, and these will prepare you for the final. You will get a sample final exam for a study guide which will include a narrower list of specific terms and Python programming items you need to know. The final exam will be online.

There are Forums on D2L for this course: Under Communications >> Discussions. Participation is required, and you must make at least 16 posts for full credit, each within a different Forum discussion topic. One current forum topic is "Python: installation and using on computers". There will be a new discussion topic for each programming assignment, but there will be others. You may always email the instructor (me: with your questions and comments.

Weekly quizzes cover your reading assignments. These are on D2L, graded immediately with results posted in your gradbook. Do the reading assignments first! Have an IDLE window open with interactive Python available alongside the D2L browser window while you take a quiz.

Programming, and Python

Python is currently the most popular language for learning programming (a recent status.). It is probably the most useful language to know for general use. This happy convergence between ease of learning and practical application has been rare since programming computers developed as a science & art in the late 1950s. Hence, it is easy to find excellent Python programming resources and especially so online.

Because of Python's many uses, we could go in many directions. It is used for systems programming, for games, for scientific applications, for business applications, for online applications, and so on. The essentials of Python are small, but the extensions to Python and its uses are vast.

We will cover basics of Python (which also address principles of programming in any language) and work on selected applications which arise as apt. About half of the course will focus on graphical and online applications; these are remarkably tractable in Python compared to almost any other language.

What might be confusing at first are variations of Python and usage. One can run Python interactively line-by-line in a shell, or execute Python scripts (programs) in an interpreter. There are Cython, iPython, Jython, and others. We may explore iPython (Interactive Python) a bit because this is rapidly becoming popular, and you can see this in action using SageMath.

The easiest way to develop a program in Python (and complete your assignments) is to start with something very simple that works, then incrementally enhance and add features.

Online Python references

These links below are probably the most authoritative Python references. The version for these is 2.7.13, and you will probably see a different version on your machine, say 2.7.10 or maybe even 2.6.4 . No problem, not likely anyway in this course. There are few difference which will arise if you use Python versions 2.7.* or 2.6.* where "*" is some minor version number.

Python 2.7.13: Language Reference
Python 2.7.13: Standard Library
Python 2.7.13: Tkinter (GUI=Graphical User Interface)

What you should not overly concern yourself over is the sea of online advice regarding Python. The online Python community is vibrant, large, and mostly tries to be helpful. There is a lot of excellent, valuable material online.

Note that anyone on the planet can go online and offer advice. Use Python as you will in legal and at least benign fashion. You do not need anyone's approval of your style within the limits of course requirements, but do write your own code. You need to write programs which work, not "Pythonic" code to please online purists. Do study simple examples that work, and first focus on getting results in straightforward, simple fashion.

Please feel free to consult with others in class and myself on your code--but short of having others write your programs for you. Don't ask for online help in writing programming assignments; Very few people in the online Python community would knowingly help in that.

Disabilities Notice

Fond du Lac Tribal and Community College is committed to providing equitable access to learning opportunities for all students. Under the Americans with Disabilities Act and Section 504 of the Rehab Act Fond du Lac Tribal and Community College provides students with disabilities (e.g., mental health, attentional, learning, chronic health, sensory or physical) reasonable accommodation to participate in educational programs, activities or services. Students with disabilities requiring accommodation to participate in class activities or meet course requirements should first complete an Intake Form and necessary requirements with Anita Hanson in the Office of Disability Services, (phone 879.0819, email: to establish an accommodation plan.

Sexual Violence

Fond du Lac Tribal and Community College is committed to providing an environment free of all forms of discrimination and sexual harassment, including sexual assault, domestic and dating violence, gender or sex-based bullying and stalking. If you or someone you know has experienced gender or sex-based violence (intimate partner violence, attempted or completed sexual assault, harassment, coercion, stalking, etc.), know that you are not alone. Fond du Lac Tribal and Community College has staff members trained to support survivors in navigating campus life, accessing resources, providing accommodations, assistance completing with protective orders and advocacy. For more information regarding the Campus Security Report, the following link will give you a report on the Clery Compliance and Security Report at FDLTCC:

Please be aware that all Fond du Lac Tribaland Community College employees are required to report any incidents of sexual violence and, therefore it cannot guarantee the confidentiality of a report, but it will consider a request for confidentiality and respect it to the fullest extent possible. If you wish to report sexual misconduct or have questions about school policies and procedures regarding sexual misconduct, please contact either of the following:

Stephanie Hammitt, Vice President of Administration, 
at 218.879.0810,

Russell Swagger, Dean of Student Services, 
at 218-879-0805,

Anita Hanson, Counselor, 
at 218-879-0819,

Content is neither approved nor reviewed by FDLTCC.