All systems are the manifestation of design. System reliability depends on design and must be an active design consideration throughout all stages of that systems life cycle. Resilience is a system’s ability to maintain awareness and functionality in response to errors, faults, disturbances and external threats. Similarly, resilience needs to be incorporated in system design. This course covers how reliability and resilience is incorporated in the design process. This includes understanding user requirements (which may mean formulating them if they are not specific) and how to allocate program goals to meet them. Specific activities include reliability apportionment and tradespace exploration (TSE) in a value-driven design (VDD) framework. Key resilience topics will be covered as they relate to (generally) the software and human domains of complex systems.