Course Type:
Classroom
Course Catalog Description:
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: A Hands-On, Project-Based Introduction to Programming, 2nd Edition Author: Eric Matthes |
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 Virtual Environments Source Code Configuration Management |
Bash
Regular Expressions
|
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 |
|
Course Examples Repository:
———————————- Note: Topics scheduled but not covered during a class session will carry over to the next class session. |
30 January 2023
|
|
—————————— Interesting Links —————————— Tox pre-commit pytest ————————————— https://www.freecodecamp.org/news/the-linux-commands-handbook/
Be prepared to hit the deck running next Monday! |
6 February 2023 |
Software Design Topics:
Python Topics:
Bash Topics:
Git and GitHub:
|
SPHINX Python Documentation Generator
|
13 Februaru 2023 |
Python Topics:
|
|
20 February 2023 |
Python Topics:
|
Assignment: Project 2 |
27 February 2023 |
Python Topics:
|
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:
Interapplication Data Sharing:
Python Topics:
|
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! |