# CYB 5288 Secure Computer Systems and Organization

 Week #1 Module What are the differences between computer organization and computer architecture, and how do both apply to your security when using a computer? In this lesson, we will compare and contrast these differences while introducing foundational topics including units of measurement, the Von Neumann architecture, and hardware/software equivalence. After completing this module, students should be able to: Explain the differences between computer organization and computer architecture Analyze units of measure common to computer systems Discuss the computer as a layered system Outline the Von Neumann architecture and the function of basic computer components Lecture Course Introduction and Overview Meet William Allen, your lecturer and guide into the world of secure computer systems and organization. In this lecture, we will provide a brief introduction to the course, compare and contrast computer organization and computer architecture, define hardware/software equivalence, and discuss the computer as a layered system. We will also outline course expectations and define important terminology that will be used throughout the course. Module How do computers organize and represent data? What can cause errors in data? In this lesson, we will examine the fundamentals of numerical data representation and manipulation and explore how radix systems can be converted. Additionally, we will look at computation errors and overflow truncation. After completing this module, students should be able to: Discuss the fundamentals of numerical data representation and manipulation in digital computers Demonstrate the skill of converting between various radix systems Detail how errors can occur in computations because of overflow and truncation Lecture Data Representation In this lecture, we will discuss how various kinds of data are represented in computers and examine the fundamentals of numerical data representation and manipulation in digital computers. We will also demonstrate how to convert between various radix systems and specify how errors can occur in computations due to overflow and truncation. Week #2 Module Have you ever wondered how computers can spell-check your email, play against you in a game of chess, or help you file your taxes online? These are tasks that only a few decades ago required a human to complete. What makes this possible? Boolean logic lies at the heart of this digital revolution. In this lesson, we will examine Boolean logic and digital computer circuits to explore how they allow computer systems to perform increasingly complex tasks. After completing this module, students should be able to: Compare the relationship between Boolean logic and digital computer circuits Discuss how to design simple logic circuits Examine how digital circuits work together to form complex computer systems Lecture Relationships Between Boolean Logic and Digital Logic What allows all the bits and bytes read by your computer to become complex tasks such as surfing the Internet or creating spreadsheets? In this lecture, we will examine the relationships between Boolean logic and digital computer circuits, demonstrate how to design simple logic circuits, and specify how digital circuits work together to form complex computer systems. Week #3 Module How many components and parts of a computer can you name? How have those parts changed over time? In this lesson, we will analyze common computer components and discuss simple architectures. We will also introduce instruction set architecture (ISA) and native data types, instructions, registers, addressing modes, memory architecture, and other topics related to computer architecture and programming. After completing this module, students should be able to: Analyze the components common to every modern computer system and be able to explain how each component contributes to program execution Discuss a simple architecture invented to illuminate these basic concepts, and compare how it relates to some real architectures Detail how the program assembly process works Examine the factors involved in instruction set architecture design Express familiarity with memory addressing modes Define the concepts of instruction-level pipelining and its effect upon execution performance Lecture Computer Organization and Instruction Set Architecture If you were tasked with building a computer, what would your shopping list for parts look like? If you had to prioritize those components, which would you need to receive first? In this lecture, we will discuss the components used to design and construct computers, identify how those components contribute to program execution, and examine a simple architecture invented to illuminate these basic concepts and compare how it relates to real architectures. Week #4 Module Memory, both in human beings and in computers, is how information is encoded, stored, and retrieved. In this week's lesson, we will focus on the different forms of computer memory and examine the concepts of hierarchical memory organization to determine how the various levels of memory contribute to overall system performance. After completing this module, students should be able to: Master the concepts of hierarchical memory organization Understand how each level of memory contributes to system performance, and how the performance is measured Master the concepts behind cache memory, virtual memory, memory segmentation, paging, and address translation Lecture The Hierarchical Organization of Computer Memory Have you ever considered the different types of memories you have and how they vary? Are memories from your childhood the same as those from last week? Memory can vary depending on many factors, and this is also true in the computing world. In this lesson, we will discuss the concepts of hierarchical memory organization and analyze how each level of memory contributes to system performance, and identify how that performance is measured. We will also examine the concepts behind cache memory, virtual memory, memory segmentation, paging, and address translation. Module How many different devices do you connect to your computer? Keyboards, mice, printers, monitors, hard drives, TVs, projectors, headsets, microphones, speakers, USB  flash drives, ebook readers, mp3 players, smartphones, and so much more can be part of our connected computer world. In this lesson, we will examine how input/output (I/O) systems work with a focus on common I/O methods and architectures. We will also explore RAID arrays and the means through which they improve disk performance and data reliability. After completing this module, students should be able to: Understand how I/O systems work, including I/O methods and architectures Become familiar with storage media, and the differences in their respective formats Understand how RAID improves disk performance and reliability, and which RAID systems are most useful today Lecture Input/Output and Storage Systems Concepts In this lecture, we will examine how I/O systems work, including I/O methods and architectures; discuss storage media and the differences in their respective formats; introduce RAID arrays and identify how RAID improves disk performance and reliability; and specify which RAID systems are must useful today. Week #5 Module Modern computer operations allow for many calculations to be processed simultaneously through multiple processing units so that large problems can be divided into smaller ones, which can then be solved concurrently. In this lesson, we will examine the properties of RISC and CISC architectures, identify how multiprocessor architectures are classified, and explore the complexity of multiprocessor and parallel systems. After completing this module, students should be able to: Discuss the properties that often distinguish RISC from CISC architectures Describe how multiprocessor architectures are classified Examine the factors that create complexity in multiprocessor systems Lecture Multiprocessor and Parallel Systems In this lecture, we will identify the properties that most often distinguish RISC from CISC architectures, examine how multiprocessor architectures are classified, and analyze the factors that create complexity in multiprocessor systems. Module One of the biggest trends in computing today is the increased usage of cloud networking and storage. Cloud computing describes a variety of concepts that involve connecting large numbers of computers through a real-time communication network. In this lesson, we will examine cloud computing in greater detail and we will identify the evolutionary factors of computing that led to the cloud. Additionally, we will explore some of the current cloud-based solutions to identify the advantages and disadvantages of these types of cloud services. After completing this module, students should be able to: Explain the abstract nature of cloud computing and discuss evolutionary factors of computing that led to the cloud Describe and identify cloud-based solutions, such as Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS) and Identity as a Service (IDaaS) List the advantages and disadvantages of SaaS solutions and discuss the wide range of SaaS solutions and their providers Detail the advantages and disadvantages of PaaS solutions and discuss the wide range of PaaS solutions and their providers Discuss the pros and cons of IaaS solutions and define and describe relevant terms, such as colocation, system, and storage redundancy Outline the challenges related to ID management and discuss the benefits and disadvantages of single sign-on (SSO) capabilities Lecture Concepts of Cloud Computing In this lecture, we will examine the abstract nature of cloud computing, discuss evolutionary factors of computing that led to the cloud, and identify and describe various cloud-based solutions. We will also list and discuss the advantages and disadvantages of software as a service (SaaS), platform as a service (PaaS), infrastructure as a service (IaaS), and single sign-on (SSO) and identify the wide range of SaaS and PaaS solutions and providers. Week #6 Module What are the benefits of using cloud storage? What are the associated dangers? In this lesson, we will discuss the varied roles of storage-area networks and network-attached storage devices while also examining the differences between cloud-based storage and database solutions. After completing this module, students should be able to: Discuss the roles of storage-area networks and network-attached storage Examine the differences between cloud-based storage solutions and cloud-based database solutions and list the pros and cons of each approach Provide an example of an industry-specific cloud-based storage solution Lecture Data Storage in the Cloud In this lecture, we will discuss the roles of storage-area networks and network-attached storage; examine the differences between cloud-based storage solutions and cloud-based database solutions and list the pros and cons of each approach; and provide an example of an industry-specific cloud-based storage solution. Module Virtualization refers to the act of creating a virtual version of something, such as a virtual computer hardware platform or network resource, rather than using the actual objects. In this lesson, we will further define virtualization and identify the various types used in modern computing. We will also list the pros and cons of virtualization and compare applications and their handling of virtualization. After completing this module, students should be able to: Define and describe the various types of virtualization Discuss the history of virtualization List the pros and cons of virtualization Identify applications that are well suited, as well as those that are not suited, for virtualization Lecture Virtualization In this lecture, we will define and describe the various types of virtualization while also discussing the history of virtualization. Additionally, we will briefly list the pros and cons of virtualization and identify some current applications that are well-suited, as well as those that are not well-suited, for virtualization. Week #7 Module Cloud security is an evolving sub-domain of computer and network security, which refers to a broad set of technologies, controls, and policies used to protect the associated infrastructure, data, and applications used in cloud computing. In this week's lesson, we will compare the advantages and disadvantages of using cloud-based services while identifying and outlining the common threats posed to cloud-based environments. After completing this module, students should be able to: List the security advantages and disadvantages of using a cloud-based provider Describe common security threats to cloud-based environments Evaluate the risk of various system threats and discuss steps to mitigate each Define and describe business continuity and disaster recovery and describe the benefits of cloud-based or off-site backups Describe the importance of testing/auditing the business continuity and disaster recovery plan Lecture Cloud Security and Disaster Recovery In this lecture, we will list the security advantages and disadvantages of using a cloud-based provider while also describing security threats common to cloud-based environments. We will also evaluate the risk of those system threats and the steps to mitigate each. Week #8 Module Service-oriented architecture (SOA) is a software and software architecture design pattern that is based on having discrete pieces of software provide application functionality as services to other applications. In this lesson, we will further define SOA while also comparing the roles of web services and web pages. We will discuss a variety of system threats and identify system requirements designers should evaluate when developing systems. After completing this module, students should be able to: Define and describe Service Oriented Architecture (SOA) Compare and contrast the roles of web services and web pages and list common examples of web services Discuss the benefits of treating a web service as a black box and discuss the role of the Web Service Description Language (WSDL) to describe a web service and its methods Identify and discuss a variety of system threats Compare and contrast functional and nonfunctional system requirements and discuss considerations designers should evaluate when they design a system to meet specific nonfunctional requirements List the specific aspects of the cloud deployment that a manager must oversee Lecture Service Oriented Architecture and Designing Cloud-Based Systems In this lecture, we will define and describe service oriented architecture (SOA), compare and contrast the roles of web services and pages, list common examples of web services, discuss the benefits of treating a web service as a black box, and examine the role of the web service description language.