Introduction to Secure Scripting Using Python
The purpose of this project-based learning course is to design, implement and test a particular project using principles of scripting, Linux, and Python. These principles shall serve as a vehicle to deliver the project towards the end of the class.
This class is considered to be a project-based course, which means that students will pick a project of their interest and by using the principles of scripting, Linux, and Python, students shall be able to develop their intended project.
The instructor will play the role of mentor, which means that through the course time, the instructor will work with students on a one-to-one basis, providing the insights of their project, pointers to programming principles, and assisting on the software design process.
Since this course belongs to the workforce development program, the topics and skills that we will cover through the course are based on the current needs of industry and/or have the taste of threading topics in computing, including data analytics, cybersecurity, artificial intelligence, besides others.
Finally, the topics and learning outcomes that we will cover, maps directly to well-known curricular guidelines, in particular, the ACM/IEEE curricular guidelines and the National Institute of Cybersecurity Education (NICE) Framework. This is important to consider when:
· Transfer the course to any institution that requires alignment with their degrees
· Describe the knowledge, skills, and abilities learned according to a job description
· Accomplish needs on industry specified by the workforce
Students can work on teams of two individuals (under certain circumstances, it can be a team of three individuals – this depends on the number of students at the class and/or the nature of the course).
Several deliverables are required for each project:
1. Students will have to work on a proposal to provide evidence of the work to be accomplished in this class. Guidelines and requirements about the proposal can be found here.
2. A final report, including code and diagrams that represents the work developed during the course
3. A 15 minutes final presentation demonstrating the project
Do not worry, your instructor has a list of potential and fun projects that students can choose within the first week of classes. The purpose is to learn through a practical project. This list can be found [here].
The course is designed as a special needs course and is a project-based learning course. This course is designed to learn:
a) Fundamentals on Scripting: File manipulation and accessibility to directories and files according to file permissions. Gentle introduction to shell programming using system tools and basic programming. Basic structures such as conditional statements, loops, and arithmetic modes in shell.
b) Linux Environment: Linux primer, exposure of tools such grep, awk, and basic Linux commands that allow programming, files and directory manipulation, file permissions, and standard input, output, and error handling.
c) Python: scripting programming using python includes data types, conditional statements, iterative structures, functions, lists and files.
d) Cybersecurity (robust programming and data sensitivity). An infusion of cybersecurity principles through the course. This includes the fundamentals in cybersecurity, secure scripting, secure thinking and design of programs, and Python libraries that allows aiming cyber security.
Through the course, we will discuss principles of software design, implementation, and testing. Accomplish workforce needs for particular industry needs; and software engineering principles such as software integration, architecture and risk management.
Although this course is not considered to be a “computer science” course, the software engineering principles offered in this course will be useful to any software engineering/computer programming or any computing-related field.
Although this is an Online Educational Resource (OER), we recognize that is impossible to cover all the material required in a scripting course. However, our intentions are to cover at least the common "skeleton" of this course. We recommend the following books in case the learner woud like to study and discover deeper materials based on his/her interest: