Skip to content

Commit

Permalink
Update schedule.md
Browse files Browse the repository at this point in the history
  • Loading branch information
aregm authored Sep 3, 2024
1 parent 69514d1 commit 378a8d9
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions docs/schedule.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ Course schedule

| Week | Topic | Description | Reading | Lab |
| ---- | ----- | ----------- | ------- | --- |
| Week 1 | Language of the Design - 1 | Intro to the course, curriculum.<br><br>What is software design and architecture? It’s place in software engineering. Why software design is important in software engineering processes? Introduction to architectural concepts. |https://aosabook.org/en/v2/git.html - Git in a Nutshell. https://www.bell-labs.com/usr/dmr/www/hist.pdf<br>UNIX: A History and a Memoir, Brian Kernighan. | Understand Git design. |
| Week 1 | Language of the Design - 1 | Intro to the course, curriculum.<br><br>What is software design and architecture? It’s place in software engineering. Why software design is important in software engineering processes? Introduction to architectural concepts. |https://aosabook.org/en/v2/git.html - Git in a Nutshell.<br> https://www.bell-labs.com/usr/dmr/www/hist.pdf<br>UNIX: A History and a Memoir, Brian Kernighan. | Understand Git design. |
| Week 2 | Language of the Design - 2 | The central problem of software design – system decomposition and abstraction creation.<br>Concept of complexity and how to manage it. – definition, symptoms, causes, tactics vs strategy, deep modules. | Philosophy of Software Design (Chapters 1-5). | Find the implementation of fopen in the Linux kernel. Measure the SLOC and other types of complexity associated with it. |
| Week 3 | System Decomposition | Design principles and practices.<br><br>Introduction of the notion of a concept and decomposition as a requirement fulfillment. Type of decompositions – functional, object-oriented, component/module-based. Methodology of friction/volatility-based decomposition. | Juval Lowy, Righting the Software Chapter 1-2. | Problem K |
| Week 4 | Abstractions | Composition. Discovering abstractions with clashing concepts along traction lines.<br><br>Understanding the conceptual integrity and the role of the architect.<br><br>Discussion of Problem K | Philosophy of Software Design (Chapters 6-10).<br>Design of Design (Chapters 1-4). | Build System Design |
| Week 4 | Abstractions | Composition. Discovering abstractions with clashing concepts along traction lines.<br><br>Understanding the conceptual integrity and the role of the architect.<br><br>Discussion of Problem K | Philosophy of Software Design (Chapters 6-10). | Build System Design |
| Week 5 | 1<sup>st</sup> Approach | Build Systems – why, what, when, how and who? | https://dl.acm.org/doi/pdf/10.1145/3236774 | |
| Week 6 | 1<sup>st</sup> Embodiment | The Unix Operating System and its Philosophy: emphasizes simplicity, short, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. It introduced the concept of pipelines and the practice of combining small, reliable programs to perform complex operations. | | |
| Week 7 | 2<sup>st</sup> Embodiment | From algorithm to system: Google's search engine architecture demonstrated the effectiveness of PageRank, a link analysis algorithm, and the use of massive distributed computing to index the web. It set new standards for scalability, reliability, and speed in data processing. | | |
Expand Down

0 comments on commit 378a8d9

Please sign in to comment.