•    Employment
  •    Academia
  •    Research
    • NICE Framework
    • CAE Program

Systems Programming

The intent of the Systems Programming Knowledge Unit is to ensure that students are proficient in the development of complex, low level software (e.g., software interacting directly with the hardware platform, performance constrained, or within the deepest level of an operating system), typically in the C or assembly programming language which is designed to provide services to other software.

Topics

  1. Providing and using Application Programming Interfaces (API's)
  2. Low level programming languages (C, Assembly, etc.)
  3. Outline and apply a layered approach to providing and accessing services using API's.
  4. Monitoring and logging systems software
  5. Hardware/software interfaces and interactions
  6. Monitoring and logging systems software

Outcomes

  1. Develop programs which directly account for hardware and resource constraints of the specific systems on which they operate.
  2. Outline and apply a layered approach to providing and accessing services using API's.
  3. Implement new functions in an OS kernel or complex and sophisticated programs, such as a device driver, that can be embedded into an OS kernel.
  4. Write programs that implement systems functions such as a network communications stack, a telnet client, or a basic file manager without the use of external libraries.
  5. Providing and using Application Programming Interfaces (API's)

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.

  • Knowledge
  • Skills
  • Abilities
  • Tasks
ID DESCRIPTION
K0070 Knowledge of system and application security threats and vulnerabilities (e.g., buffer overflow, mobile code, cross-site scripting, Procedural Language/Structured Query Language [PL/SQL] and injections, race conditions, covert channel, replay, return-oriented attacks, malicious code).
K0624  Knowledge of Application Security Risks (e.g. Open Web Application Security Project Top 10 list) 
K0197 Knowledge of database access application programming interfaces (e.g., Java Database Connectivity [JDBC]).
K0139 Knowledge of interpreted and compiled computer languages.
K0229 Knowledge of applications that can log errors, exceptions, and application faults and logging.
ID DESCRIPTION
S0024 Skill in designing the integration of hardware and software solutions.
S0135 Skill in secure test plan design (e. g. unit, integration, system, acceptance).
ID DESCRIPTION
A0046 Ability to monitor and assess the potential impact of emerging technologies on laws, regulations, and/or policies.
ID DESCRIPTION