Syllabus

Index
Objectives Course Materials
Academic Honesty Exams
Homework/Assignments Grades
Programming Environment Sakai
Students with Disabilities Class Format/Attendance
Course Schedule Important Dates

Course Objectives:

  • To introduce the concepts of algorithms and their analysis and design in the context of the computer language Python
  • To implement Python programs with appropriate use of selection repetition functions and data structures
  • To learn how to add graphical effects to programs and generate data visualizations
  • To study some of the basic ideas behind computing – how data are represented in a computer; how a computer processor is built up from simple circuits; how the processor is controlled through low level languages; and the transition from low level languages to high level languages like Python

Course Materials:

There is no specific text for this course. Rather, we will be using free online materials. See Resources.

Sakai:

Sakai will be used for course announcements, homework submissions, and grade postings. While the raw points posted on Sakai should be correct, please do not rely upon Sakai's Course Grade calculations. Grades are calculated as specified in this syllabus.

Course Format:

Most of this course will be flipped from the traditional course format. That is, the lectures should be viewed as videos/text on your computer outside of class. In class, we will spend a few minutes summarizing the lectures and provide ample time for working on the assigned exercises, when you have the most direct support from the instructor, the TA, and classmates.

As you work through the Hand’s-on Python Tutorial at the beginning of the semester, come to class prepared with questions on the day’s topics. You must watch the assigned videos before class in order to keep up with the material and make best use of class time.

You are expected to look at assigned presentations before class, but if you want to check on something in a video during class, remember to bring headphones.

Class time is valuable and in short supply, so there are some tradeoffs in this approach. You cannot immediately get a question answered by me in the middle of a video presentation. You may want to keep a list of questions as you watch the videos to bring to class.

Homeworks/Assignments:

Homework Assignments: For each homework, you must submit to Sakai a .zip file of the required files for that assignment. For the tutorial assignments, the exercises are mentioned as you encounter them in each chapter. Each due date and a link to a list of the required exercises are on the Course Schedule.

Pair Programming is when two people collaborate on one problem with one person coding while the other looks on. For novices and professionals alike, pair programming often leads to better, faster, and more enjoyable project completion. You have the option to do pair programming in this course for most of the homework assignments. However, your exams will NOT be in pairs.

Python Project: You will form teams of two or three to complete a project, which is a major programming assignment in Python. Some suggestions for the project can be found here. This will be discussed further in class.

Important note about pair/team submissions: For pair/team assignments, only one person needs to submit the archive of programs (everyone should have their own copy for reference), but each team member must submit their own independently written log.txt file with the requested information for that assignment.

Important note about the group project: You are expected to fully participate in the group project. Your individual grade may be modified depending upon your contribution to the project and your cooperative and substantive participation. This will be assessed by instructor walk-throughs during class and the log.txt form completed by each team member.

Programming Environment:

We will be programming in Python, available on the classroom computers, and as a download to your own computer. There are several choices based on program version and operating system. You should get the latest version of Python (3.6.4) for your operating system from the central site https://www.python.org/downloads/. Python comes with the graphical interface called Idle, which we will use.

  • Recommended storage options for course work:
    • Cloud-based storage like Box or Google Drive
    • USB Flash Drive (write your email address on it in case you lose it)

Academic Honesty:

Plagiarism and cheating will not be tolerated (see University Policy) and will be reported to the college. STUDENTS FOUND TO PRESENT SOMEONE ELSE’S WORK AS THEIR OWN WILL RECEIVE ZERO POINTS FOR THE HOMEWORK/EXAM. ANY STUDENT WHO REPEATS SUCH AN ACTION WILL RECEIVE A FAILING GRADE (F) FOR THE COURSE.

Cheating consists of, but is not limited to:

  • Using or copying an outside person’s work on an exam or assignment in any fashion. “Outside person” includes a person who put something on a web page. Don’t copy others’ work from the web!
    • Others’ work includes outlines, pseudocode, code, and documentation. If you are working on a pair or group project, an “outside person” only refers to people other than your partner or team.
  • Allowing your own work to be copied or used by an outside person. Cheating goes both ways: giving and receiving.
  • Using any unauthorized reference on an exam or assignment.
  • Not acknowledging and describing in writing any help you received on an assignment. Consultation is allowed with the TA, tutors and instructor. Be sure to comment in your log.txt file about the substance and depth of the help received.

Help from any source is fine concerning:

  • The meaning of program specifications (not the plan for the solution or the actual solution).
  • The tools used to write programs. Feel free to ask questions on the programming environment you use and the use of the debugger.

Exams:

There are three exams. Dates are:

  • Exam #1: Feb 20
  • UPDATE–> Exam #2: Mar 22
  • Final Exam: Tuesday, May 1, 9:00 - 11:00 a.m.

Exams will cover material discussed in class, reading material on the web, and assignments. Exams will always be cumulative. You are allowed one 8.5 x 11 inch piece of paper (both sides) with notes for each exam, but no computer or calculator. I emphasize having you process and use information, not regurgitate facts – put the facts you most forget and still need in your notes.

There will be a review for each exam posted on the Course Schedule a week before the exam.

MISSING EXAMS WILL ONLY BE PERMITTED UNDER SPECIAL CIRCUMSTANCES (e.g., medical emergencies, educational events, court dates, religious holidays, etc.). ARRANGEMENTS MUST BE MADE IN ADVANCE WHEN APPLICABLE AND A NEW EXAM WILL BE ADMINISTERED. DOCUMENTATION OF THE ABSENCE IS REQUIRED.

Students with Disabilities:

Any student with special needs or difficulties in learning and completing course assignments is strongly encouraged to contact the instructor as soon as possible. Please refer to the Student Handbook for student rights and available resources pertaining to assistance with special needs or disabilities.

Students with Sponsorships and Scholarships:

If you require a certain grade in order to satisfy a sponsor or a scholarship requirement, be sure to monitor your grade on Sakai. If you cannot achieve a minimum grade that is required by a sponsor or a scholarship, your grade will not be changed to help you meet that requirement. This would be unfair to other students, and not reflecive of your performance in this course. You are reponsible to monitor your grade and to keep track of the withdrawal dates posted by the registrar.

Grading:

Assignment Points
Tutorial, Chapter 1 Exercises45
Tutorial, Chapter 2 Exercises45
Tutorial, Chapter 3.1 Exercises30
Tutorial, Chapter 3.2-3.3.4 Exercises30
Plotting Homework60
Pip Program60
Gates Homework60
EXAM 1150
EXAM 2200
Python Project120
FINAL EXAM250
TOTAL1050
Grade Minimum Percent
A93
A-90
B+87
B83
B-80
C+77
C73
C-70
D+67
D63
  • Note that there are 1050 total possible points. Your grade will be calculated as the number of points you receive out of 1000. Fifty extra points are built-in, to cover “down days” or to be used for extra credit.
  • No further accommodations will be provided. If your personal circumstances are such that you have to miss more than 50 points worth of material, please consider taking the course another semester.
  • There are a few extra credit homework problems in some of the assignments. No further extra credit opportunities will be provided. It is neither practical nor fair to the other students.
  • ALL ASSIGNMENTS ARE DUE VIA SAKAI BY 11:00 PM ON THE DUE DATE. LATE ASSIGNMENTS WILL NOT BE ACCEPTED. That’s what the extra 50 points are for.


Course Schedule:

The dates below give the sequence and a general idea of the time spent, though we may get ahead or behind this time schedule at different points, depending on the needs of the class. Links for activities, assignments and exam reviews may be missing until their introduction in class.

In the Activities column “Prep:” means preparation done before class!

Date Activities DUE by 11:00 PM via Sakai
Jan 16 Introductory slides, syllabus, pair programming, form pairs, introduction to Hands-on Python Tutorial, example files Follow up: make sure you have completely read the syllabus.  
Jan 18 Prep: Read Hands-on Python Tutorial Context 1.1 - Input/Output 1.10, Watch Videos 1.01 - 1.10.4 (85 minutes, See section 1.1.5 to download videos)  
Jan 23 Prep: Read Python Tutorial Functions 1.11 and Dictionaries 1.12, Watch Videos 1.11.1 - 1.12.3 (53 minutes)  
Jan 25 Prep: Read Python Tutorial Loops 1.13, Floats 1.14, Watch Videos 1.13.1 - 1.14 (59 minutes), In class: exercise  
Jan 30 Prep: Read Python Tutorial 1.15, In class: Ch. 1 Questions Chapter 1 exercises
Feb 1 Prep: Read Python Tutorial 2.1 - 2.3, Watch Videos 2.1.1 - 2.2.1 (17 minutes)  
Feb 6 Prep: Read Python Tutorial 2.4.1, 2.4.2, 2.4.5, Watch Videos 2.4.1 - 2.4.4 (26 minutes) Graphics Reference  
Feb 8 Prep: Read Python Tutorial 2.4.6-8, 2.4.10-12, Watch Videos 2.4.6 - 2.4.8 (21 minues)  
Feb 13 Prep: Read Python Tutorial 2.5, Watch Video 2.5 (8 minutes) Chapter 2 exercises
Feb 15 Prep: Review for Exam 1 In class: ask questions, review solutions  
Feb 20 EXAM 1  
Feb 22 Prep: Read Python Tutorial Chapter 3 through 3.1.5, Watch Videos 3.1.1 - 3.1.5 (24 minutes)  
Feb 27 Prep: Read Python Tutorial 3.1.6 - 3.1.7, Watch Videos 3.1.6 - 3.1.7 (25 minutes) Chapter 3.1 exercises
Mar 1 Prep: Read Python Tutorial 3.1.8 - 3.3.1, Watch Videos 3.2 - 3.3.1 (26 minutes) In class: Discuss Python Project, Past Examples  
Mar 6 No class: SPRING BREAK  
Mar 8 No class: SPRING BREAK  
Mar 13 Prep: Read Python Tutorial 3.3.2 - 3.3.4 through bounceWhile.py, Watch Videos 3.3.2 - 3.3.4 (35 minutes) In class: Finalize Python Project Teams Chapter 3.2 - 3.3.4 exercises
Mar 15 Work on Python Project Plan Submit plan for the Python Project
Mar 20 Review for Exam 2  
Mar 22 EXAM 2  
Mar 27 Prep: Install Jupyter Notebook In class: Jupyter Notebook installation help and ggplot Tutorial  
Mar 29 In class: Project and plotting questions Plotting Homework
Apr 3 Prep: Binary Arithmetic in Class Notes Sections 2-3F (videos N2, N3A-N3C, 20 minutes) In class: Example Problems  
Apr 5 Prep: Pip Assembler in Class Notes Sections 4A-B (videos N4, N4A, N4B, 19 minutes) In class: Project Progress Check Python Project Progress Check
Apr 10 Prep: Pip Assembler in Class Notes Sections 4C-H (videos N4C, N4D, N4E, N4F, N4G, N4H, 50 minutes) In class: Pip Examples  
Apr 12 Prep: Review Pip Assembler in Class Notes and videos from Apr 10 Pip Program
Apr 17 Prep: Boolean Algebra, Truth Tables, and Digital Circuits in Class Notes Sections 5A-D (videos N5A-D, 35 minutes) In class: Logicly Demo  
Apr 19 Prep: Boolean Algebra, Truth Tables, and Digital Circuits in Class Notes Sections 5E-I (videos N5E-I, 41 minutes) In class: Finalize Project Presentations and Python Code (requirements) Gates Homework
Apr 24 Project Presentations, Review for Final Exam  
Apr 26 Project Presentations Python Project
May 1 FINAL EXAM: 9:00-11:00 AM  

Important Dates:

See the Loyola academic calendar for registration and withdrawal dates.

This syllabus is subject to change during the course at the discretion of the instructor.