❗ IMPORTANT

Essential Preparation: CS 6035 requires specific technical knowledge and hands-on experience across multiple domains of information security and computer science.

What You Need to Know

This course demands practical, working knowledge in several technical areas, not just theoretical understanding. Each project builds upon specific prerequisite skills that you must possess before beginning the coursework.

 

Core Technical Requirements

Programming & Development:

  • C Programming: Memory management, stack/heap operations, data types
  • Python: Syntax, exploit development tools (pwntools), scripting
  • JavaScript: Client-side scripting, debugging, security implications
  • SQL/T-SQL: Database queries, stored procedures, advanced operations

System & Architecture Knowledge:

  • Computer Architecture: Assembly language, memory interaction, registers
  • Operating Systems: File systems, process management, security models
  • Network Protocols: HTTP/HTTPS, TCP/IP, web communication fundamentals
  • Cryptographic Concepts: Encryption algorithms, key management, digital signatures

Security-Specific Skills:

  • Web Security: XSS, CSRF, server misconfigurations, vulnerability analysis
  • Binary Analysis: Exploitation techniques, debugging tools (GDB, pwndbg)
  • Database Security: SQL injection, inference attacks, access controls
  • Malware Analysis: Static/dynamic analysis, reverse engineering basics

 

Project-Specific Prerequisites

ℹ️ NOTE

Review Required: Each project page below contains detailed prerequisite knowledge and resource links specific to that domain.

The course covers diverse security topics, each requiring specialized background knowledge:

 

Preparation Recommendations

⚠️ WARNING

Self-Assessment Critical: If you lack experience in any project area, review the corresponding prerequisites page and complete the recommended learning materials before the project begins.

Success Factors:

  • Hands-on experience with tools and techniques (not just reading about them)
  • Problem-solving skills in technical domains
  • Comfort with command-line tools and development environments
  • Ability to research and learn new tools quickly
  • Strong debugging skills across multiple languages and platforms

NOTE: Please review the Schedule for the current semester’s project release cadence.

 

Table of contents