College of Business, Innovation, Leadership, and Technology (BILT)
School of Technology & Innovation
IT-566-A Computer Scripting Techniques
Computer Scripting Techniques
Fall 2024
COURSE SYLLABUS
Course Type:
Classroom
Course Catalog Description:
This course covers writing scripts using current industry scripting languages to solve common IT problems. It covers the basics of scripting, syntax, and data representations, examining different ways to use system administration, natural language processing, and Web programming. Students will apply scripting skills to problem solve relevant tasks in various IT specialties, learning how to write algorithms and regular expressions to extract relevant information from data sets and how to use third-party packages for more complicated tasks. Students must achieve a minimum grade of B-.
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 4088 | Monday — 6:45pm – 9:30pm |
Required Text:
None — But some material will come from my forthcoming book Computer Scripting Techniques with Python along with online resources | Chapter 1 | Chapter 2 | Chapter 3 | Chapter 4| Chapter 5 | Chapter 6 | Chapter 7 | Chapter 8| Chapter 9 | Chapter 10 | Chapter 11 | Chapter 12| Chapter 13| Chapter 14 | Chapter 15 | Chapter 16 | Chapter 17 | |
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 |
---|---|
First Day of This Class | 26 August 2024 |
Labor Day (No Class) | 2 September 2024 |
Midterm | 14 October 2024 |
Veterans Day (No Class) | 11 November 2024 |
All Projects Due | 9 December 2024 |
Last Day of This Class | 9 December 2024 |
Complete Fall 2024 Academic Calendar
Course Objectives:
Upon successful completion of this course students will be expected to:
- Automate mundane, repetitive, computer administrative and computational tasks using Python and Bash
- Configure personal development environment for Python and Bash script development using industry best practices
- Perform source code configuration management using Git and GitHub
- Apply Git-based workflow to script application development
- Adapt and employ pre-existing Python scripts
- Adapt and employ pre-existing Bash scripts
- Develop Python scripts from scratch
- Develop Bash scripts from scratch
- Segregate Python development and execution environments using PipEnv
- Perform common repository actions using Git to include create, clone, checkout, add, commit, push
- Create and handle repository pull requests
- Conduct and participate in code reviews
- Identify and use third-party Python libraries to speed application development
- Develop competency in Python syntax and semantics
- Write Python code that conforms to the PEP-0008 Style Guide
- Verify Python code functions properly by writing and running unit tests
- Develop competency in commonly used Python data structures to include list, dictionary, class, tuple, set, stack, queue
- Write Bash scripts that conforms to industry best practice
- Employ Regular Expressions to search and filter text
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 | 60% |
Midterm | 20% |
Engagement | 20% |
Attendance (Missed Classes) | |
3 (2 summer) | Drop one letter grade |
6 (4 summer) | Drop two letter grades |
8+ (5+ summer) | 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 ‘F’. There is no ‘C’ in a graduate course.
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.
Unauthorized Uses of Artificial Intelligence: Marymount University acknowledges that ChatGPT and other generative artificial intelligence (AI), text generated tools have the capability of dramatically altering the academic environment in both positive and negative ways. The purpose of this section of Marymount’s Academic Integrity Code is to identify both permitted and prohibited intentional uses of AI-generated text tools to support the University’s academic integrity policies in the most productive way possible.
Permitted Uses:
Educational activities conducted with the advanced written approval of a faculty instructor, in such a way as to facilitate increased knowledge and understanding about the use of AI in business, government, and educational settings.
When permitted, in advance and in writing, by faculty or staff in the conduct of an educational activity as a teaching or learning tool (e.g., tutoring, academic advising, etc.).
As a research tool to assist and enable computer-based internet search activities (e.g., library, database, thesauruses, Grammarly, etc.). Use of AI tools must be formally provided through written approval of the instructor.
Prohibited Uses:
For the development and/or submission of drafts or final versions of any paper, report, or other work research papers submitted in lieu of original student work without instructor permission. This definition includes but is not limited to doctoral dissertations, masters’ theses, and undergraduate written assignments, whether in full or in part. It also includes both graded and ungraded academic work. The improper usage of generative artificial intelligence tools falls within the university’s standard definition for plagiarism: Representing the works of another as one’s own.
Class Schedule: (Note: Material Compressed Into 10-Weeks During Summer Sessions)
Week | Topics Covered | Notes |
1 |
|
Course Examples Repository:
———————————- Note: Topics scheduled but not covered during a class session will carry over to the next class session. |
2 |
|
—————————— —————————— Tox pre-commit pytest ————————————— https://www.freecodecamp.org/news/the-linux-commands-handbook/
Be prepared to hit the deck running next Monday! |
3 |
Software Design Topics:
Python Topics:
Bash Topics:
Git and GitHub:
|
SPHINX Python Documentation Generator
|
4 |
Python Topics:
|
|
5 |
Python Topics:
|
Assignment: Project 2 |
6 | Bash Scripting | Demo Project 1 |
7 | Bash Scripting | In-Class Programming Assessment Sample Project |
8 | Midterm Exam — In-Class Programming Assessment | |
9 |
Software Architecture:
Interapplication Data Sharing:
|
Demo Project 2 |
10 |
Software Architecture:
Interapplication Data Sharing:
Python Topics:
|
|
11 |
Software Architecture:
Interapplication Data Sharing:
|
|
12 |
Software Architecture:
Interapplication Data Sharing:
|
|
13 |
Python Topics:
|
|
14 |
Python Topics:
|
|
15
|
Individual Help with Projects | Demo Projects |
16
|
All Projects Due | All Projects Due |