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.

Spring 2024 Syllabus Schedule Evaluations
Spring 2023 Syllabus Schedule Evaluations
Spring 2022 Syllabus Schedule Evaluations
Spring 2021 Syllabus Schedule Evaluations
Spring 2020 Syllabus Schedule Evaluations
Spring 2019 Syllabus Schedule Evaluations

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.

  1. ICCWS ‘20
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.

  1. ECCWS ‘21
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.

DevSecOps process

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.

  1. USENIX Security ‘24
  2. JRC
  3. ISDFS 2024
  4. CIFS 2023
  5. CIFS 2023
  6. UEMCON 2023
  7. EuroSec 2023
  8. UCC ‘22
  9. AIIoT ‘22
  10. HICSS-55
  11. UCC ‘21
  12. FIE ‘21
  13. CCWC ‘21
  14. CCWC ‘21
  15. SmartCloud ‘20
  16. CLOUD ‘20
  17. SSS ‘20
  18. CCWC ‘20
  19. 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