Basic Scripting and Programming
The intent of this Basic Scripting and Programming Knowledge Unit is to provide students with the basic ability to create simple scripts/programs to automate and perform simple operations, and to provide students with the skills necessary to implement algorithms using programming languages to solve problems. This knowledge includes basic security practices in developing scripts/programs (e.g., bounds checking, input validation).
Topics
- Language (e.g. PERL, Python, BASH, JAVA, VB Scripting, Powershell)
- Understand basic data structures and algorithms
- Be familiar with the concept and basic implementation of regular expressions.
- Basic Boolean logic/operations
- Properly apply basic programming constructs and concepts including:
- Implement basic security concepts
- Scripting on both Windows and Linux
- a. Language (e.g. PERL, Python, BASH, JAVA, VB Scripting, Powershell)
- c. Sequential and parallel execution
- Sequential and parallel execution
- Implement basic security concepts
a. Permissions, bounds checking, input validation, type checking and parameter validation
- Properly apply basic programming constructs and concepts including:
a. Variables and types (int, float, char, etc.)
b. Strings, arrays, structures
c. Sequential and parallel execution
d. Assignments (:=, =, ++, --, etc.)
e. Decisions and branching (if, if ... else, elseif, switch, case, etc.)
f. Loops (for, while, repeat, etc.)
g. Functions, procedures, and calls
h. Debugging techniques
Outcomes
- Demonstrate their proficiency in the use of scripting languages to write simple scripts (e.g., to automate system administration tasks).
- Write simple linear and looping scripts.
- Write simple and compound conditions within a programming language or similar environment (e.g., scripts, macros, SQL).
- Demonstrate proficiency in the use of a programming language to solve complex problems in a secure and robust manner.
- Demonstrate proficiency in the use of a programming language to solve complex problems in a secure and robust manner
KSA-T
Below are the Knowledge, Skills, Abilities and Tasks (KSA-T) identified as being required to perform this work role.
Learn More about the KAS-T's.
ID |
DESCRIPTION |
K0015 |
Knowledge of computer algorithms. |
K0016 |
Knowledge of computer programming principles |
K0068 |
Knowledge of programming language structures and logic. |
K0018 |
Knowledge of encryption algorithms |
K0372 |
Knowledge of programming concepts (e.g., levels, structures, compiled vs. interpreted languages). |
K0271 |
Knowledge of operating system structures and internals (e.g., process management, directory structure, installed applications). |
K0079 |
Knowledge of software debugging principles. |
K0063 |
Knowledge of parallel and distributed computing concepts. |
K0028 |
Knowledge of organization's evaluation and validation requirements. |
ID |
DESCRIPTION |
S0060 |
Skill in writing code in a currently supported programming language (e.g., Java, C++). |
S0257 |
Skill in reading, interpreting, writing, modifying, and executing simple scripts (e.g., PERL, VBS) on Windows and Unix systems (e.g., those that perform tasks like parsing large data files, automating manual tasks, and fetching/processing remote data). |
S0266 |
Skill in relevant programming languages (e.g., C++, Python, etc.). |
S0013 |
Skill in conducting queries and developing algorithms to analyze data structures. |
S0130 |
Skill in writing scripts using R, Python, PIG, HIVE, SQL, etc. |
S0019 |
Skill in creating programs that validate and process multiple inputs including command line arguments, environmental variables, and input streams. |
S0014 |
Skill in conducting software debugging. |