United States Military AcademyWebsiteAcademic Catalog
Electrical Engineering and Computer ScienceDepartment Website
BS Degree in Cyber Science: Cyber Operationssource 1source 2ABET
CS Courses
- Programming FundamentalsCY300 (3)introCY300: Programming Fundamentals
Cadets learn fundamental computing concepts that will allow them to design, build and test small to medium programs using a high-level programming language. Key concepts include applying appropriate aspects of a structured problem solving process, applying a standardized design notation such as the Unified Modeling Language (UML) to communicate their design, and iteratively testing their program.
- Computer NetworksCY350 (3)sysCY350: Computer Networks
This course provides cadets with an introduction to computer networks by breaking the subject into comprehensible parts and building a survey of the state of the art. The goal of the course is to provide each cadet with basic concepts necessary to understand the design and operation of computer networks. Taking a layered approach, it examines the Internet with an emphasis on the TCP/IP protocol suite. Additionally, basic principles including multiplexing, switching, flow control, and error control are covered. Internetworking and its application to both local and wide area networks are also investigated. The course offers an understanding of the current status and future directions of technology and how technology relates to standards.
- Cyber Foundations - ComputingCY355 (3)sysCY355: Cyber Foundations - Computing
Provides a more in-depth study of computing for cadets who have demonstrated ability beyond the level of CY305. The course covers material presented in CY305 at an accelerated pace to provide cadets additional opportunities for application and hands-on experience with cyber principles and concepts such as encryption and machine learning, with less emphasis on networking.
- Computer Systems & OrganizatnCS380 (3.5)sysCS380: Computer Systems & Organizatn
This course provides an introduction to computer systems, computer organization and related concepts. Emphasis is placed on understanding the implications of computer hardware and architecture on the performance and security of written code. Students learn basic C programming and assembly language. Topics covered include basic computer organization, architecture, reverse engineering and parallel computing. In addition to theory, students gain practical real-world experience using tools for profiling and debugging. By the end of this programming-intensive course, students will understand how the fundamental principles of computer systems impact their ability to write efficient code.
- Data StructuresCS384 (3)introCS384: Data Structures
This course is designed to build on the cadet's basic programming knowledge. Major emphasis is placed on object-based design, programming methodology, algorithms and algorithm analysis, data structures, and abstract data types as tools for the analysis, design, and implementation of software modules to meet specified requirements. Cadets will learn and employ several well-known algorithms and data structures. Techniques of searching, sorting, recursion, and hashing will be examined. Data structures such as sets, heaps, linked lists, stacks, queues, and trees will be covered. A block-structured programming language reflecting comprehensive support for good software engineering principles will be the foundation of application-oriented exercises. Cadets will design software solutions by employing problem decomposition and selecting the appropriate algorithms and abstract data types.
- Cyber Algorithmic FoundationsCY385 (3)theoryCY385: Cyber Algorithmic Foundations
This course grounds cadets in algorithms and key topics in the theory of computation, with a focus on how key theoretical techniques help the cyber professional discern what is and is not feasible in cyberspace. Topics include analysis of algorithms, how to use algorithmic complexities to choose between algorithms, algorithmic approaches, and an introduction to formal languages, automata, computational theory, decidability, and the Chomsky hierarchy.
- Pro Considerations in ComputinCS400 (3)communicationCS400: Pro Considerations in Computin
This course addresses professional considerations for computing professionals, primarily focusing on non-technical considerations and the development of communication skills. Coursework includes significant emphasis on written work that is based on relevant reading assignments, class discussions, individual research, distinguished guest speakers, and personal reflection. Content will address current, emerging, and relevant topics in the computing profession. Students will develop the ability to recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. They will also learn to identify and discuss local and global impacts of computing solutions on individuals, organizations, and society. Students will demonstrate the ability to communicate effectively in writing in a variety of professional contexts, including an iterative writing experience.
- Pro Considerations in ComputinCS400 (3)communicationCS400: Pro Considerations in Computin
This course addresses professional considerations for computing professionals, primarily focusing on non-technical considerations and the development of communication skills. Coursework includes significant emphasis on written work that is based on relevant reading assignments, class discussions, individual research, distinguished guest speakers, and personal reflection. Content will address current, emerging, and relevant topics in the computing profession. Students will develop the ability to recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. They will also learn to identify and discuss local and global impacts of computing solutions on individuals, organizations, and society. Students will demonstrate the ability to communicate effectively in writing in a variety of professional contexts, including an iterative writing experience.
- Software Testing & DevelopmentCS403 (3)softengCS403: Software Testing & Development
This course builds on the fundamental programming skills from prerequisite courses to explore advanced concepts used in modern object oriented software design to create software that is robust, reusable, and extensible in varying problem domains. Cadets gain confidence in their abilities to model, implement, and test solutions to demanding programming problems.
- Cyber Security EngineeringCY450 (3)sysCY450: Cyber Security Engineering
SCOPE The focus for this course is to design, build and test secure networked computer systems. Topics covered include operating system and network security, secure network architecture, and offensive and defensive information operations. Practical exercises that give students hands-on experience with current network security tools and techniques complement a series of laboratory exercises that have small groups of cadets secure their own small network. In a culminating exercise, cadets design, build and test defensive measures to protect a production network from intrusions.
- Cyber Policy, Strategy, & OpnsCY460 (3)impactCY460: Cyber Policy, Strategy, & Opns
SCOPE This course addresses the entire spectrum of information warfare from the political, legal, and ethical aspects to the technology and techniques of cyber attack. The Political Science and Computer Science faculty jointly teach this course. The course covers how digitization has changed the world and the national security environment of the United States. Students also learn how attack and defense are conducted in cyberspace through classroom discussion and hands-on exercises in the IWAR Laboratory. The course culminates with a group project in which cadets are given a real scenario and possible U.S. objectives and then develop and brief an information operation plan.
- Operating SystemsCS481 (3)sysCS481: Operating Systems
The operating system controls the computer itself and provides a secure and useful interface for users and application programs. The operating system controls all the computer resources: processors, main storage, secondary storage, I/O devices, and files. It determines which programs will be in memory at any given time and the order in which programs will run. The operating system should resolve conflicts between processes, attempt to optimize the performance of the computer, allow the computer to communicate with other computers, and maintain a record of actions performed as it goes about its system tasks. This course investigates the basic design issues encountered in order to produce an operating system that can address the above problems in an efficient manner. These concepts are reinforced by a series of programming projects that include both design and implementation.
- Digital ForensicsCS483 (3)sysCS483: Digital Forensics
Digital Forensics will explore the evidence left behind when malicious activity occurs on an information system. The material in this course will build on your knowledge of Operating Systems, file formats, file system structure, computer architecture, and networking. The course begins with an overview of these areas, then examines how to find and extract digital evidence. During the course, you will be challenged with three projects (subjects to be chosen by you) and in class challenges that will allow you to demonstrate your understanding of the material.
- Advanced Computer NetworksCS484 (3)sysCS484: Advanced Computer Networks
This course builds on an understanding of basic networking topics and provides cadets with an advanced understanding of computer networks. This course explores more deeply the problems facing modern computer networks. It covers advanced networking techniques that are enabling rapid innovation to solve challenges in routing, congestion control, traffic engineering, mobility, and reliability. Specific topics covered will vary but may include software-defined networking and programmable network devices.
Math/Stat Courses
- Introduction to Discrete MathMA372 (3)mathMA372: Introduction to Discrete Math
The purpose of this course is to introduce topics in Discrete Mathematics, providing a foundation for further study and application. The topics covered are useful to both the applied mathematician and the computer scientist. They include propositional logic, elements of set theory, combinatorics, relations, functions, partitions, methods of proof, induction and recursion, digraphs, trees, finite state machines, and algebraic systems. Specific applications to computer science are presented.
- Applied Algebra W/ CryptologyMA464 (3)mathMA464: Applied Algebra W/ Cryptology
We study the underlying algebra of computer science structures as well as sets, set functions, Boolean algebra, finite state machines, groups, and modular arithmetic. We introduce and study mathematical aspects of cryptology with an emphasis on cryptanalysis of encryption ciphers. We study early paper-and-pencil systems through current computer algorithms for encryption. We employ algebraic principles in both design and analysis of encryption systems, be it matrix, linear feedback shift register sequence, or linear congruential random number generator sequence efforts. Further, we investigate the mathematics of breaking machine ciphers and of designing modern public-key crypto systems.
Engineering Courses
- Digital Logic W/ Embedded SysEE360 (3.5)engrEE360: Digital Logic W/ Embedded Sys
This course covers the analysis, design, simulation, and construction of digital logic circuits and embedded systems. The material in this course provides the necessary tools to design digital hardware circuits based on design techniques such as Karnaugh maps and Finite State Machines. The course begins with the study of binary and hexadecimal number systems, Boolean algebra, and their application to the design of combinational logic circuits. The first half of the course focuses on designs using medium-scale integration (MSI) circuits and Field Programmable Gate Arrays (FPGAs) to implement combinational logic functions. The second half of the course emphasizes sequential logic circuits. Laboratory work in this half of the course focuses on using very high speed integrated circuit hardware description language (VHDL) to simulate digital systems and to program those systems in hardware. As a final project, cadet teams design, build, and test a digital logic system.
- Integrative System Design IXE401 (3.5)engrXE401: Integrative System Design I
This course is the first part of a two-semester team-based capstone design experience in electrical engineering, computer science and information technology. It provides an integrative experience, presenting each cadet team with a professionally relevant, open-ended situation including professional, ethical, social, security, legal, economic, and political dimensions, where an engineering approach has strong potential to produce benefits. Under the guidance of a faculty advisor for each project team, cadets develop client-focused products, applying the principles of design and implementation to effect an optimal outcome for the circumstances presented to the team by creating a product or service that meets requirements and constraints negotiated with the client.
- Integrative System Design IIXE402 (3.5)engrXE402: Integrative System Design II
This course is team-based capstone design experience in electrical engineering, computer science and information technology. It provides an integrative experience, presenting each cadet team with a professionally relevant, open-ended situation including professional, ethical, social, security, legal, economic, and political dimensions, where an engineering approach has strong potential to produce benefits. Under the guidance of a faculty advisor for each project team, cadets develop client-focused products, applying the principles of design and implementation to effect an optimal outcome for the circumstances presented to the team by creating a product or service that meets requirements and constraints negotiated with the client.
- Embedded Systems DevelopmentEE487 (3)engrEE487: Embedded Systems Development
This course teaches students how to employ microcontrollers and single-board computers in embedded systems design. Topics include microcontroller programming, peripherals, real-time control design, single-board computers, Linux, Robot Operating Systems, and digital system design.
Science Courses
- General Chemistry IICH102 (4)sciCH102: General Chemistry II
This course extends the foundational disciplinary content and practices from General Chemistry I into chemical equilibrium acid/base chemistry, electrochemistry, thermodynamics (entropy and free energy) and kinetics. Basic principles governing organic chemistry is also addressed. The laboratory is integrated within the course. The initial labs develop skills which are they applied to an authentic research problem.
- BiologyCH275 (4)sciCH275: Biology
Scope This course provides a broad understanding of biological principles, applications and the relevance of biological science to the military and society. This course consists of an examination of the unity and diversity of life. The course utilizes a reductionist approach to biological study by beginning with an introduction to life at the cellular level and proceeding through Mendelian Genetics, central dogma, DNA technologies, and Darwinian evolution. The course culminates in the application of basic biological principles to human structure and function. Emphasis is placed on course material that is relevant to current environmental issues and disease particularly as these areas apply to military operations. A laboratory program is integrated within the course and is designed to enhance understanding of classical and modern investigative techniques and to illustrate fundamental concepts.
- Physics IIPH202 (4)sciPH202: Physics II
This calculus-based core physics course consists of a comprehensive study of electricity and magnetism. Topics include electrostatics, Gauss's Law, magnetic fields, Ampere's Law, Faraday's Law, circuits (direct current and alternating current), electromagnetic waves, geometric optics, physical optics, and elements of modern physics. An integrated laboratory program illustrates basic scientific techniques and serves to stimulate intellectual curiosity through discovery laboratories. The core physics program is designed to demonstrate the relevance of physics to military technology and to help prepare future Army leaders to anticipate and adapt to technological change.
- Advanced Physics IIPH252 (4)sciPH252: Advanced Physics II
This calculus-based advanced core physics course consists of a comprehensive study of electricity and magnetism. Topics include electrostatics, Gauss's Law, magnetic fields, Ampere's Law, Faraday's Law, circuits (direct current and alternating current), electromagnetic waves, geometric optics, physical optics, and elements of modern physics. An integrated laboratory program illustrates basic scientific techniques and serves to stimulate intellectual curiosity through discovery laboratories. The core physics program is designed to demonstrate the relevance of physics to military technology and to help prepare future Army leaders to anticipate and adapt to technological change.
Other Courses
Program Educational Objectives
Five to seven years after graduation, cadets who major in Cyber Science will have been successful Army officers who have:
- Initiated and completed tasks that identify aspects of a complex situation that can be enhanced by using computing technology.
- Applied computing knowledge and security principles and practices individually or in diverse teams to maintain operations in the presence of risks and threats.
- Used effective communication to explain new computing technology to war fighters in support of current and emerging Army war fighting doctrine.
- Grown professionally through self-study, continuing education, and professional development.
Student Outcomes
At the time of graduation, graduates of the program will have an ability to:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of Cyber Science.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to Cyber Science.
- Apply security principles and practices to maintain operations in the presence of risks and threats.