Send More Info
Apply Now
Classroom Login
Call Now
Call Now 855-300-1469

CYB 5015 Programming


Week #1

Module

What does it really mean to program? How do programmers create software and video games? We explain exactly how computers perform tasks and examine the programmer’s process of conceiving and writing clean and simple code. 

By the end of this module, you should be able to:

  • Identify the goals of this class
  • Examine course terms and scope

Lecture

Course Introduction

We review some of the topics covered in this course such as computer security, writing code, writing your own tools, and understanding risks.

Lecture

What It Means to Program

We explore computer languages and how they are used to carry out tasks.

Week #2

Module

Human beings “think” differently from computers. This week, we explore the process of compilation and explain why coding for simplicity and clarity is extremely important when working in the C programming language.

By the end of this module, you should be able to:

  • Learn how programs are built in the Visual Studio (VS) environment
  • Examine how C handles variables

Lecture

The C Programming Language

Explore the benefits and vulnerabilities of the C programming language.

Week #3

Module

How do programmers make their code more maintainable and readable? What technique do they use to have a function call itself? Why are magic numbers and double inclusion “bad” and how can programmers fix these issues? We’ll uncover the answers this week.

By the end of this module, you should be able to:

  • Examine how to write and call functions
  • Create functions that are recursive in nature
  • Describe the C preprocessor and the use of #define statements

Lecture

Functions, Recursion, and #define

We discuss functions, recursions, and #define as they pertain to C programming.

Week #4

Module

How does a computer actually run machine code? We examine why C works and identify some of C’s security vulnerabilities. 

By the end of this module, you should be able to:

  • Describe the basic Intel architecture
  • Describe the Intel CPU, its registers, and the stack
  • Discuss how the computer works at a low level
  • Examine a stack

Lecture

What's Going on Under the Hood?

Explore binary code, signed numbers, CPUs, and Stack Frames.

Week #5

Module

As a programmer, one of the most valuable skills to possess is the ability to debug a program, and we explore debugging code this week. 

By the end of this module, you should be able to:

  • Examine the features of the Visual Studio (VS) debugger
  • Utilize an end-to-end ordered approach to debugging software issues in code

Lecture

Debugging

We step through the process of debugging and look at each line of code to examine the value of variables.

Week #6

Module

How do programmers keep data together in one place? How do they tell the compiler to treat the variable as a different type? In what ways can things go wrong in the File Input/Output process? We will discover the answers to these questions this week. 

By the end of this module, you should be able to:

  • Describe the function of structures and unions
  • Examine how to carry out elementary file I/O
  • Parse user supplied data

Lecture

Structures, Unions, and File I/O

We explore floating points, structures, unions, casting, and file I/O in this week’s lecture.

Week #7

Module

Have you ever wondered how programmers directly access memory from written code? This week, discover pointers’ ability to create complex data structures like linked lists and trees, and create and allocate dynamic data structures that can grow or shrink as needed.  

By the end of this module, you should be able to:

  • Identify the function of pointers and how they relate to passing variables by reference
  • Use pointers and arrays of pointers to solve simple programming problems
  • Describe how a pointer functions and how to reference and dereference memory
  • Use the debugger to look at pointers

Lecture

Pointers

Analyze pointers, arrays and operators.

Week #8

Module

This week, we review and apply the best practices of programming.  

By the end of this module, you should be able to:

  • Apply learned materials in an overall context
  • Enumerate the issues associated with good programming
  • Implement proven programming techniques to solve problems

Lecture

Putting It All Together

Review the importance of checking return codes and coding simplicity, and analyze broken code and possible solutions.