By focusing on architectural methodologies rather than platform-specific implementations, the course guides students through several distinct developmental phases:
| 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 |
Allows new classes (subclasses) to take on the properties and behaviors of existing classes. Polymorphism: en.605.704
requires a deep understanding of structural software blueprinting, domain abstraction, and architectural design patterns. Formally titled Object-Oriented Analysis and Design (OOAD) at the Johns Hopkins University Engineering for Professionals program, this graduate-level course serves as a cornerstone for software engineers, systems architects, and technical leaders. It bridges the gap between raw programmatic logic and sustainable enterprise software architecture.
Once requirements are stable, the course shifts to , focusing on understanding what the system must do by mapping out the real-world problem domain. Finding Candidate Classes Object-Oriented Analysis and Design
Johns Hopkins University (JHU) Engineering for Professionals
For aspiring software leads and system architects, EN.605.704 is more than just a requirement—it is a toolkit for building the complex digital infrastructure of the future. computer science.pdf - Course Hero focuses on modeling
Graduates leave with improved skills in designing software that is maintainable, robust, and scalable. Conclusion
Johns Hopkins University’s EN.605.704 course, Object-Oriented Analysis and Design, focuses on modeling, requirements development, and software design using object-oriented techniques. The graduate-level curriculum covers Unified Modeling Language (UML), design patterns, and system architecture to ensure software scalability and maintainability. For more details, visit Johns Hopkins University Object-Oriented Analysis and Design - 605.704