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 2019 Syllabus Schedule Evaluations
Fall 2018 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 2019 Syllabus Schedule Evaluations
Fall 2018 Syllabus Schedule Evaluations

Comp Sci 364: Information Storage and Retrieval

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 2019 Syllabus Schedule Evaluations

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

Johns Hopkins University

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.

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