703.608.0975 rick@warrenworks.com

marrymount-logo-half

College of Business, Innovation, Leadership, and Technology (BILT)
School of Technology & Innovation

IT-129-C Python Scripting

Spring 2023

COURSE SYLLABUS

Course Type:

Classroom

Course Catalog Description:

This course is an introduction to writing scripts using the Python language and its tools and libraries to solve common information technology, data science, cybersecurity, and economics problems. This course will cover the basics of scripting, logic, syntax, and data representations. It will examine different ways to use scripting to automate and simplify tasks performed in various information technology fields. Students will learn the basics of algorithm development along with refactoring skills. Students must achieve a minimum grade of C. (3)

Broad Purpose of Course:

The primary purpose of this course is to enable students to build competency in automating repetitive tasks using python and bash scripts. Additionally, students will learn a practical git-based application development workflow they can apply in the real world. A Git-based workflow includes the use of the distributed version control system Git to create and maintain source code repositories along with GitHub to store, manage, share, and collaborate on remote repositories. Students will learn and apply GitOps and DevOps techniques to build, run, test, and deploy application scripts.

Instructor:

Rick Miller, MS Computer Science
California State University Long Beach
Phone: (703) 608-0975
email: richmill@marymount.edu
website: warrenworks.com

Class Hours:

Class Meets In Person

Location Dates & Time
Ballston Center, Room 5030 Monday — 6:45pm – 9:30pm

 

Required Text:

Python Crash Course

Python Crash Course

Python Crash Course: A Hands-On, Project-Based Introduction to Programming, 2nd Edition

Author: Eric Matthes
Publisher: No Starch Press
ISBN-10: 1-59327-928-0
ISBN-13: 978-1-59327-928-8

 

 

Office Hours:

  • During on-campus meeting dates either before, during, or after class
  • Via phone or Zoom anytime by appointment

Important Dates To Remember:

Event Date
Spring 2023 Semester Classes Begin: 17 January 2023
First Day of this Class: 23 January 2023
Spring Break (No Class): 13 March 2023
Easter Holiday (Make-Up Class 11 April – Tuesday Evening): 10 April 2023
11 April 2023
Last Day of this Class and Final Exam: 8 May 2023

Complete Spring 2023 Academic Calendar

Course Objectives:

Upon successful completion of this course students will be expected to:

  • Convert a problem into a logical sequence;
  • Write basic Python scripts to solve practical problems;
  • Understand the principles of behind data storage and manipulation;
  • Write Python scripts to extract data from files, websites, and social media;
  • To understand various data representations and their pros and cons;
  • Be able to apply scripting skills to multiple subdisciplines of IT, Cybersecurity, and economics;
  • Examine different encoding schemes for textual information; and
  • Gain experience and intuition behind refactoring code.

Major Topics

Python
Python 3.10.x Programming
Python Project Organization
Python Syntax
Python Semantics
Python Data Structures
Object-Oriented Python
Unit Testing

Python Virtual Environments
PipEnv

Source Code Configuration Management
Purpose and Use of Repositories
Git
GitHub
Git for Windows (with Git Bash)

Bash
Bash Shell Programming
Bash Syntax
Bash Semantics
Bash Data Structures
Bash Command-Line Argument Processing

 

Regular Expressions
Regular Expressions: The Complete Tutorial
Regex101.com

 

 

 

Grading:

Your grade is based on your performance on assigned projects, exams, class engagement, and class attendance record.

Assignment Grade Percentage
Projects 40%
Midterm 20%
Final 20%
Engagement 20 %
Attendance (Missed Classes)
3 Drop one letter grade
6 Drop two letter grades
8+ Fail

Note: Class attendance is applied to your course performance. Example: If you’re traking a ‘C’, missing 3 classes will drop that to an ‘D’

Caution to International Students — Think long and hard before traveling outside the US during the semester as you may encounter delays with travel visa processing when trying to return.

Extra Credit Policy: In the words of one of my stern California State Long Beach professors: “What makes you think you can do extra credit when you can’t do regular credit?” — You need to hit the deck running on the first day of class and keep up with the reading and assignments. Programming requires time so plan your course load accordingly. I do not offer extra credit.

Academic Integrity: Turn in your own work. I’d rather you struggle with your own code than copy wholesale someone else’s code and pass it off as your own. You will watch a ton of YouTube videos and see lots of code examples online. That’s OK. It’s a great way to learn. You may copy a line or two of code from StackOverflow.com. That’s OK, too. Professional programmers do the same thing. Give credit where credit is due. The number one sign of cheating is turning in an assignment that looks like another student’s assignment and you can’t fully explain how it works or what the code is doing or why you chose a particular approach to solve a problem.

Class Schedule:

Week Topics Covered Notes
23 January 2023
  • Class Introduction
  • Peer Introductions and Backgrounds
  • Skills Assessment
  • Introduction to Computer Scripting
  • Scripting vs. Application Development
  • Scripting Languages vs. Programming Languages
  • Development Environment Setup and Configuration
  • Integrated Development Environments vs. Text Editors
  • Why Python?
  • Why Bash
  • Because I Know You’ll Ask…
    • What About Windows Batch Files?
    • What About PowerShell?
  • Source Code Configuration Management
    • Git & GitHub

Course Examples Repository:
https://github.com/pulpfreepress/it-129-python-scripting

 

 

———————————-

Python PEP 8 Style Guide

regex101.com 

python.org

Git

GitHub

Git for Windows

Visual Studio Code

Bash Programming Guide

Bash Programming Book

Note: Topics scheduled but not covered during a class session will carry over to the next class session.

30 January 2023

 

  • Install and configure Python
  • Configure Development Environment
  • Create and Execute Simple Python Script
  • Create and Execute Simple Bash Script
  • Study Python Fundamentals
  • Study Bash Fundamentals
  • Develop Fluency with Linux/Unix Terminal

——————————

Interesting Links

GitHub’s The ReadMe Project

Stack Overflow

KD Nuggets

——————————
Tools

Tox
https://tox.wiki/en/latest/

pre-commit
https://pre-commit.com

pytest
https://docs.pytest.org/en/7.1.x/

—————————————
Linux Command Handbook
https://bjpcjp.github.io/pdfs/devops/linux-commands-handbook.pdf

https://www.freecodecamp.org/news/the-linux-commands-handbook/

 

 

Week 2 Talking Points

Assignment: Project 1

Be prepared to hit the deck running next Monday!

6 February 2023

Software Design Topics:

  • Problem Decomposition

Python Topics:

  • File Structure
  • Project Structure
    • Namespaces
    • Modules
  • Functions
  • Variables
  • Selection Statements
  • Looping Statements
  • Lists
  • List processing
  • Processing Command Line Arguments

Bash Topics:

  • Bash File Structure
  • Selection Statements
  • Looping Statements
  • Processing Command-Line Arguments

Git and GitHub:

  • Git Workflow
  • Working with SSH
  • Configuring GitHub
  • Creating Repositories
  • Submitting Pull Requests

Configure SSH for GitHub

SPHINX Python Documentation Generator

pydocstyle

Week 3 Talking Points

 

13 Februaru 2023

Python Topics:

  • Classes
    • Declaring and Using Classes
    • Constructors
    • Methods
  • Unit Testing
  • File Processing
  • Dictionaries
  • Sets
  • Tuples
  • Exceptions
  • Special Methods
    • String Representation with __repr__ and __str__
20 February 2023

Python Topics:

  • List Comprehensions
  • Generator Expressions
  • More Special Methods

 

Assignment: Project 2

27 February 2023

Python Topics:

  • Functional Programming
Demo Project 1
6 March 2023 Bash Scripting
13 March 2023 Spring Break Spring Break
20 March 2023 Midterm Exam — In-Class Programming Assessment Demo Project 2
27 March 2023

Software Architecture:

  • Client-Server Applications

Interapplication Data Sharing:

  • JavaScript Object Notation (JSON)

Python Topics:

  • Client-Server Programming
    • Role of Server
    • Role of Client
  • Threading
    • Single-Threaded Programs
    • Multi-Threaded Programs

 json.org

Assignment: Project 4

3 April 2023

Database Programming with Python

Application Layer Decoupling

Even-Driven Architectures

Queues

11 April 2023 (Tuesday) Database Programming with Python
17 April 2023 Big Data Analytics with Python Pandas
24 April 2023 Big Data Analytics with Python
1 May 2023 Individual Help with Projects In-Class Programming Assessment Sample Project
8 May 2023 Final Exam — In-Class Programming Assessment Enjoy the Holidays!