SIE507 Information System Programming
Spring 2021 —- offered via DLL
(weekly live discussions: to be announced)
Course Description
Programming for those envisioning careers focused on developing and managing information systems and databases as opposed to software design. Introduction to data structure, control structures and algorithms. This is an introduction course in computer programming. We will use the Python programming language throughout the course, and use project-driven, active learning techniques.
Syllabus:
- introduction to programming and simple data structures and control flow
- simple data analysis tasks with Python, Pandas and NumPy
- final project
Textbook:
- Python Programming: An Introduction to Computer Science
(Third Edition), by John M. Zelle, Ph.D. (3rd Edition!) (free .pdf on the web) - Textbook for data analysis section: Python Crash Course: A Hands-On, Project-Based Introduction to Programming, Eric Matthes (2015) (free on the web)
- Zybook (subscription)
Detailed Syllabus:
Week | Class | Topic | Slides | Videos | Theme | Required reading assignment in Zybook | Programming Assignment | |
1 | 1 | Intro | SIE507_Class1A | Class1A_P1 | Intro | Week 1(W1):Intro to Programming | W1P: Programming Assignment | |
Class1A_P2 | ||||||||
Class1A_P3 | repl.it | |||||||
Intro to Zybooks | ||||||||
2 | Intro | SIE507_Class1B | Class1B_P1 | Python&Pycharm | ||||
Class1B_P2 | chaos program | |||||||
2 | 3 | Programming | Class2A | Class2A_P1 | Software Design Process | W2: Variables and Expressions Assignment
|
W2P: 2.9Lab Cooking measurement converter
|
|
Programming | Class2A_P2 | variables + name | ||||||
4 | Programming | Class2B | Class2B_P1 | expression + assignments | ||||
Programming | Class2B_P2 | |||||||
3 | 5 | Programming | Class2C | Class2C_P1 | Loops/modules | W3: Loops and Numbers
|
W3P: Calories burnt during workout
|
|
6 | Numbers | Class3 | Class3_P1 | intro to number | ||||
4 | 7 | Numbers | Class3 | Class3_P2 | mathlib | W4: Math Module & Numpy
|
W4P: Using Math Lib | |
Class3 | Class3_P3 | large numbers | ||||||
8 | Turtles | Class4 | Class4 | turtles | ||||
FUN STUFF! | ||||||||
5 | 9 | Strings | Class5A | Class5A_P1 | Strings | W5: Strings and Lists
|
W5P: String Formatting |
|
String operations | ||||||||
10 | Lists | Class5A_P2 | Lists | |||||
String Encoding | Class5A_P3 | Unicode | ||||||
Dictionary | Class5A_P4 | |||||||
6 | 11 | String Methods | Class5B | Class5B_P1 | W6: Strings Methods
|
|||
Class5B_P2 | ||||||||
12 | String Formatting | Class5B_P3 | ||||||
Files | Class5C | Class5C_P1 | read and write files | |||||
7 | 13 | Files | Class5C_P2 | example
file dialog |
W7P: Airline Seat chart | |||
Class5C_P3 | csv file readers | |||||||
Homework more involved this week! | Start early! | |||||||
8 | 14 | Functions | Class6A | Class6A_P1 | W8: Functions Assignment | W8P: Authoring Assistant | ||
Class6A_P2 | ||||||||
Class6A_P3 | ||||||||
15 | Class6B | Class6B | ||||||
9 | 16 | Decision Structures & Booleans | Class7A | Class7A_P1 | W9: Decision Structures | Midterm Assignment! | ||
Class7A_P2 | W9P: Highway Numbers | |||||||
Exceptions/Error Handling | Class7A_P3 | |||||||
17 | Decision Structures & Error Handling | Class7B | Class7B | |||||
10 | More on Loops | Class8 A | Class 8A_P1 | W10:More on Loops | W10P:Normalizing numbers | |||
Class 8A_P2 | ||||||||
Loops & Formal Material WrapUp | Class8 B-C | Class8B_P1 | ||||||
Class8B_P2 | ||||||||
Documenting and attribution of code | Class9 | Class9 | ||||||
11 | Start Practical workshopping | Midterm term
|
||||||
Intro to DS & Jupyter Notebooks | slides | video | Install Jupiter notebook environment and run “hello world” note book | |||||
12 | Pandas | Slides | Part_1 (install) | Final Project Description | ||||
Part_2 (intro) | ||||||||
Part_3 (DF) | ||||||||
Pandas Operators | slides | Part_1
Part_2 |
||||||
13 | No new material this week | |||||||
thanksgiving week or spring break | ||||||||
14 | Numpy | slides | video | |||||
Pandas/Numpy
example |
slides | video | ||||||
15 | Matplotlib for plotting | slides | video | |||||
16 | Finals week | |||||||
FINAL PROJECT PRESENTATIONS | ||||||||
Requirements:
- laptop is required since classes will be hands-on programming
Online classes:
- Available via zoom.
Grading:
- 70% homework assignments
- 30% final project