United States Air Force Academy
Department of Computer and Cyber Sciences
Comp Sci 110: Introduction to Computing and Cyber Operations
An introduction to the principles, capabilities, applications, limitations, and vulnerabilities of computer-based systems. Topics include algorithmic problem solving, computer system capabilities, information representation, computer networking, information security, and cyber operations.
Spring 2022 | Syllabus | Schedule | Evaluations |
Fall 2019 | Syllabus | Schedule | Evaluations |
Spring 2019 | Syllabus | Schedule | Evaluations |
Fall 2018 | Syllabus | Schedule | Evaluations |
Comp Sci 210: Programming Fundamentals
Establishes an understanding of the fundamental concepts of software development along with applied computer programming and problem-solving skills. Topics include programming constructs, appropriate use of fundamental data types and libraries, error handling techniques, problem-solving strategies, algorithms, data structures, and recursion. Considerable attention is devoted to developing effective software engineering practices, emphasizing design, documentation, encapsulation, procedural abstraction, testing, debugging, and software reuse.
Fall 2023 | Syllabus | Schedule | Evaluations |
Comp Sci 212: Introduction to Programming for Analysts
Introduces the fundamental techniques of software development as a foundation for solving analytical problems using computers. Topics include programming constructs, problem-solving strategies, algorithms, and data structures, with a focus on analysis applications. Considerable attention is devoted to developing effective software engineering practices, emphasizing design, decomposition, encapsulation, modularity, testing, debugging, and software reuse. Cadets will learn a programming language and development environment that is widely used within the analytic discipline.
Spring 2024 | Syllabus | Schedule | Evaluations |
Comp Sci 220: Data Structures and Systems Programming
Continues the introduction of software development, with a particular focus on the ideas of data abstraction, data structures, and memory management. Topics include recursion, algorithmic complexity, memory management, reference semantics, and fundamental computing algorithms.
Spring 2023 | Syllabus | Schedule | Evaluations |
Comp Sci 350: Software Engineering
Develops a theoretical and applied understanding of the concepts and techniques of software engineering emphasizing agile methodologies, software architectures, project planning and management, risk management, requirements engineering, prototyping, goal modeling, design techniques and quality measures, security considerations and protections, quality assurance techniques, testing methodologies, configuration management and control, sustainment, and tool support.
Fall 2022 | Syllabus | Schedule | Evaluations |
Fall 2020 | Syllabus | Schedule | Evaluations |
Fall 2019 | Syllabus | Schedule | Evaluations |
Fall 2018 | Syllabus | Schedule | Evaluations |
Comp Sci 364: Databases and Applications
Introduction to the basic concepts of database and information storage systems. Topics include data models, database design theory, database performance, transaction processing, web-database interaction, techniques for handling large volumes of data, and contemporary database issues. Hands-on projects emphasize basic database and information storage and retrieval techniques.
Comp Sci 453: Software Engineering Capstone Project I
First course in the two-semester capstone design sequence for Computer Science majors. Applies contemporary concepts and techniques for the team-based analysis, design, implementation, testing, and maintenance of larger scale software engineering projects. Includes development of project management, configuration control, technical communications, and teamwork skills.
Fall 2022 | Simulation Orchestration |
Fall 2019 | Cyber Probability of Kill |
Comp Sci 454: Software Engineering Capstone Project II
Second course in the two-semester project sequence for Computer Science majors. Continues the applied study of the software development life cycle with the goal of delivering a robust and sustainable product.
Spring 2023 | Simulation Orchestration |
Spring 2020 | Cyber Probability of Kill |
Comp Sci 499: Independent Study
Individual study and research supervised by a faculty member. Topic established with the department head.
Spring 2023 | Web Development and Data Management |
Fall 2020 | Neural Network Malware Classification |
Spring 2020 | Malware Classification |
Cyber 256: Basic Cyber Operations
Cyber operations training supports USAFA Outcomes and helps motivate cadets towards a career in the United States Air Force. Cadets will explore the Air Force cyber mission area during this course with hands-on training designed to teach the fundamentals of operating, attacking, and defending computers and networks. Successful completion of this course fulfills one military training requirement and the requirement for award of the Cadet Basic Cyber Badge.
Officer in Charge (OIC) | Summer 2019 |
Data 364: Data Acquisition and Management
Focuses on the collection, processing, structures, memory management, and exploration of data in preparation for subsequent analysis. Introduces tools and techniques for the access and storage of data in structured, semi-structured, and unstructured formats. Data cleansing and curation through Extract, Transform, and Load (ETL) activities are emphasized in both theory and practice with real-world data with goals of preparing data for the spectrum of operational and analytical usages.
Fall 2023 | Syllabus | Schedule | Evaluations |
Johns Hopkins University
Coursera
Introduction to DevSecOps
DevSecOps has gained considerable momentum in recent years. It integrates software development (Dev), information security (Sec), and IT operations (Ops) so that businesses increase the value delivered by software. This course provides an overview of DevSecOps; introduces essential practices, such as continuous integration / continuous deployment (CI/CD), that shorten the cycle from implementing a feature to its availability to users; and describes how to start a DevSecOps transformation.
This course is for anyone who develops or manages information technology (IT) systems and wants to break down barriers between teams (development, information security, and operations), to shorten the time to market of new IT capabilities and gain a competitive advantage in the industry, and to increase the dependability and security of IT services.
Engineering for Professionals
605.601 Foundations of Software Engineering
Previously offered as 605.401 Foundations of Software Engineering.
Fundamental software engineering techniques and methodologies commonly used during software development are studied. Topics include various life cycle models, project planning and estimation, requirements analysis, program design, construction, testing, maintenance and implementation, software measurement, and software quality. Emphasized are structured and object-oriented analysis and design techniques, use of process and data models, modular principles of software design, and a systematic approach to testing and debugging. The importance of problem specification, programming style, periodic reviews, documentation, thorough testing, and ease of maintenance are covered.
Fall 2017 | Syllabus | Schedule | Evaluations |
Fall 2016 | Syllabus | Schedule | Evaluations |
Fall 2014 | Syllabus | Schedule | Evaluations |
Spring 2014 | Syllabus | Schedule | Evaluations |
605.731 Survey of Cloud Computing Security
The promise of significant cost savings and inherent flexibility of resources are an impetus for the adoption of cloud computing by many organizations. Cloud computing also introduces privacy and security risks that are not traditionally present in a siloed data center. This course focuses on these security concerns and countermeasures for a cloud environment. An overview of cloud computing and virtualization, the critical technology underpinning cloud computing, provides the necessary background for these threats. Additional topics vary but may include access control, identity management, denial of service, account and service hijacking, secure APIs, malware, forensics, regulatory compliance, trustworthy computing, and secure computing in the cloud. This course follows a seminar-style format where students are expected to lead class discussions and write a publication-quality paper as part of a course project.
- USENIX Security ‘24
- JRC
- ISDFS 2024
- CIFS 2023
- CIFS 2023
- UEMCON 2023
- EuroSec 2023
- UCC ‘22
- AIIoT ‘22
- HICSS-55
- UCC ‘21
- FIE ‘21
- CCWC ‘21
- CCWC ‘21
- SmartCloud ‘20
- CLOUD ‘20
- SSS ‘20
- CCWC ‘20
- CIFS ‘19
Spring 2024 | Syllabus | Schedule | Evaluations |
Summer 2023 | Syllabus | Schedule | Evaluations |
Summer 2022 | Syllabus | Schedule | Evaluations |
Summer 2021 | Syllabus | Schedule | Evaluations |
Summer 2020 | Syllabus | Schedule | Evaluations |
Summer 2019 | Syllabus | Schedule | Evaluations |
Spring 2018 | Syllabus | Schedule | Evaluations |
Information Security Institute
650.663 Cloud Computing Security
Previously offered as 650.461 Cloud Computing Security.
Cloud computing promises significant cost savings via economies of scale that typically are not achievable by a single organization. This course examines cloud computing in detail and introduces the security concerns associated with cloud computing. Key topics include service models for cloud computing, virtualization, storage, management, and data processing. Fundamental security principles are introduced and applied to cloud computing environments. The format of this course includes lectures and hands-on assignments. Students will complete a project and present it as part of the course.
Fall 2017 | Syllabus | Schedule | Evaluations |
Fall 2016 | Syllabus | Schedule | Evaluations |
Fall 2015 | Syllabus | Schedule | Evaluations |
University of Virginia
Department of Computer Science
CS 4750: Database Systems
Introduces the fundamental concepts for design and development of database systems. Emphasizes relational data model and conceptual schema design using ER model, practical issues in commercial database systems, database design using functional dependencies, and other data models. Develops a working relational database for a realistic application.
Teaching Assistant | Spring 2012 |
CS 4753: Electronic Commerce Technologies
History of Internet and electronic commerce on the web; case studies of success and failure; cryptographic techniques for privacy, security, and authentication; digital money; transaction processing; wired and wireless access technologies; Java; streaming multimedia; XML; Bluetooth. Defining, protecting, growing, and raising capital for an e-business.
Teaching Assistant | Fall 2011 | Fall 2010 | Fall 2009 |
Furman University
Department of Computer Science
CS 11: Introduction to Computer Science I
Algorithms, programs and computers. Basic programming and program structure. Debugging and verification of programs. Survey of computers, languages, systems and applications.
Lab Assistant | Spring 2007 |
CS 12: Introduction to Computer Science II
Continuation of CS 11. Emphasis on use of data structures to model and implement algorithms as computer programs. Principles of high-level program analysis and design.
Lab Assistant | Spring 2007 | Fall 2006 |
CS 25: Computer Organization
Computer structure, machine language, instruction execution, addressing techniques and digital representation of data. Systems organization and logic design. Several projects.
Lab Assistant | Spring 2007 | Spring 2006 |