❗ 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:
- Binary Exploitation: Assembly, C programming, debugging tools, CTF experience
- Database Security: SQL expertise, database schema, inference attacks, web development
- Web Security: HTTP protocol, JavaScript, XSS/CSRF attacks, client-side vulnerabilities
- API Security: REST APIs, authentication, authorization, API testing tools
- Malware Analysis: Reverse engineering, analysis tools, behavioral analysis
- Cryptography: Mathematical foundations, encryption algorithms, implementation
- Machine Learning Security: ML concepts, adversarial attacks, data poisoning
- Network Security: Network protocols, packet analysis, attack vectors
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.