| Week | Topic | Key Concepts | Reading | Assignment | |------|-------|--------------|---------|-------------| | 1 | Performance Fundamentals | Latency, throughput, CPI, Amdahl’s law, SPEC benchmarks | P&H Ch.1 | Worksheet: Performance equations | | 2 | ISA Design | RISC-V / MIPS ISA, addressing modes, encoding, RISC vs. CISC | P&H Ch.2 | ISA comparison essay | | 3 | Single-cycle & Multi-cycle Datapath | ALU, register file, control logic, clock cycles | P&H Ch.4 | Verilog datapath simulation | | 4 | Pipelining I | 5-stage pipeline, structural/data hazards, forwarding | P&H Ch.4.5-4.7 | Pipeline hazard detection (C++) | | 5 | Pipelining II | Control hazards, branch prediction (static/dynamic), BTB | P&H Ch.4.8 | Branch predictor simulator | | 6 | Memory Hierarchy I | Cache organization (direct, set-associative), write policies | P&H Ch.5.1-5.3 | Cache trace analysis (Python) | | 7 | Midterm Exam | Weeks 1-6 | - | Proctored exam | | 8 | Memory Hierarchy II | DRAM timing, prefetching, TLB, virtual memory | P&H Ch.5.4-5.7 | gem5 cache config experiment | | 9 | Out-of-Order Execution | Scoreboarding, Tomasulo’s algorithm, ROB | H&H Ch.7 | Tomasulo simulation (Java/Python) | | 10 | Advanced ILP | Superscalar, VLIW, speculative execution, register renaming | H&H Ch.7.6-7.9 | Speculative execution write-up | | 11 | SIMD & Vector Processors | Vector lanes, gather/scatter, GPU basics | P&H App.G | Vectorization exercise (AVX) | | 12 | Multiprocessors I | Shared memory, cache coherence (MSI/MESI), snooping | P&H Ch.5.8-5.10 | Coherence protocol FSM design | | 13 | Multiprocessors II | Directory-based coherence, memory consistency models (SC, TSO, RC) | P&H Ch.5.11-5.13 | Consistency litmus test analysis | | 14 | Final Project & Review | Project presentations, future trends (near-memory computing, CXL) | Selected papers | Final report & peer review |
Required Textbooks:
Problem: You are given a 5-stage pipeline (IF, ID, EX, MEM, WB) with full forwarding but no branch prediction (always assume not taken). Branches resolve in EX stage. Compute total cycles for:
Loop: lw x1, 0(x2)
addi x1, x1, 1
sw x1, 0(x2)
addi x2, x2, 4
bne x2, x3, Loop # assume x2 != x3 for 3 iterations
Tasks:
To write a paper for EN.605.704: Object-Oriented Analysis and Design Johns Hopkins University
, you must focus on the fundamental principles of modeling software requirements and designing complex systems.
Below is a structured guide to drafting a high-quality technical paper for this specific course. 1. Identify Your Core Topic
Projects in this course typically center on creating or evaluating an object-oriented system. Common paper topics include: Case Study of a Domain: Unified Modeling Language (UML)
to a real-world scenario (e.g., an automated healthcare management system). Design Pattern Implementation:
Comparing how different patterns (e.g., Factory, Observer, or Strategy) solve specific architectural bottlenecks. Refactoring Analysis: en.605.704
Taking a legacy procedural codebase and redesigning it using OO principles like encapsulation, inheritance, and polymorphism. 2. Required Technical Components
Your paper should include the following standard course elements: Requirements Specification: Clearly defined functional and non-functional requirements. Static Analysis (Class Diagrams):
Visualizing the structure of the system and the relationships between objects. Dynamic Analysis (Sequence/State Diagrams):
Describing how objects interact over time and how they respond to events. Design Rationale: A section explaining
specific design choices were made (e.g., "Choosing a Decorator pattern over subclassing to maintain flexibility"). Object Constraint Language (OCL):
If applicable, use OCL to define formal constraints on your models. 3. Suggested Paper Outline Key Content Introduction
Problem statement, scope of the system, and target audience. Analysis Model
Use Case diagrams and descriptions; identifying primary actors. Design Model
Class diagrams with associations, aggregations, and compositions. Behavioral Model | Week | Topic | Key Concepts |
Interaction diagrams (Sequence/Communication) for key use cases. Design Patterns
Description of patterns used to ensure reuse and maintainability. Conclusion
Summary of how the OO approach met the project requirements. 4. Professional Resources JHU Catalog: Review the official Course Description
to ensure your paper covers all listed syllabus topics like persistence and state models. Modeling Tools: Use professional diagramming tools like Lucidchart Visual Paradigm to generate clear UML visuals. Do you have a specific system or case study in mind that you'd like to model for this paper?
Before dissecting the course itself, it is crucial to understand why EN.605.704 exists. The 21st Century Cures Act and the FDA’s Real-World Evidence (RWE) Framework have fundamentally changed how devices are approved and monitored.
Traditional clinical trials are expensive, slow, and often fail to capture how a device performs in a diverse, real-world population. RWD—derived from electronic health records (EHRs), insurance claims, patient registries, and even wearable sensors—offers a solution.
EN.605.704 teaches students how to harness this messy, unstructured data to:
Completing EN.605.704 differentiates you in the job market. Real-time expertise is critical in:
According to industry salary surveys, embedded real-time engineers earn a median of $125,000 - $160,000 in the United States, with certification or graduate coursework like EN.605.704 commanding a premium. Problem: You are given a 5-stage pipeline (IF,
The syllabus for EN.605.704 is rigorous. Below is a breakdown of the major modules:
Across online forums (e.g., r/RegulatoryAffairs, RateMyProfessor, JHU EP student groups), EN.605.704 consistently receives high marks for relevance but cautions regarding workload.
Positive themes:
"This is the only class I took at JHU that directly used the three FDA guidance documents I now reference weekly at work."
"The final project forced me to actually write a submission memo. I used that exact structure for my first 510(k) RWE supplement six months later."
Challenges noted:
"If you don't remember your regression diagnostics, review them before week 8. The confounding module is relentless."
"Some lectures assume you already know SAS. If you’re an R purist, you’ll need to translate on the fly."