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.
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.
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.
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|
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.
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.
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.
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|
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|