CYBV311
Introduction to Security Programming II
Bachelor's Degrees
Cyber Engineering Cyber Law & Policy Defense & Forensics
Certificates
Cyber Defense Cybersecurity Digital Forensics Information Warfare Security Computing
Course Description
CYBV 311 provides students with an introduction to Assembly programming. Students will use hands-on exercises to practice and implement applications developed in the Assembly programming language on an x86 processors. Students will have a deeper understanding of data representation, mathematical manipulation, subroutine linkage, machine encoding as well as interrupts/execution handling and program designs in assembly language. CYBV311 conforms to the National Security Agency (NSA) Center of Academic Excellence in Cyber Operations (CAE-CO) academic requirements for low-level programming.
Learning Outcomes
The student will:
- Learn the basic procedures of how a compiler translates assembly code into machine codes and perform simple optimizations
- Learn basic principles of interrupts/exception handling
- Explore in detail a simple hardware CPU implementation that supports a small instruction subset; introduce students to computer organization
- Show how Assembly language constructs use hardware resources, and introduce concepts of efficiency and performance below the algorithmic level
- Use coding exercises to demonstrate the fundamentals of the Assembly Programming language
- Develop and test 32-bit programs
- Design, construct, and demonstrate low-level programs
- Learn binary, octal and hexadecimal mathematics
- Learn basic data structures such as Arrays, pointers, lists and stacks
- Learn how to access computer memory
Course Objectives
The student will:
- Define and demonstrate writing a properly formatted Assembly program
- Describe and demonstrate how to use the MASM to develop Assembly programs
- Understand and write Assembly programming specifically for the 32-bit Intel/Windows platforms
- Writing software at the machine level