Computer Science
A curriculum spanning from the foundations of computation to algorithms and systems, building theory and practice together.
Discipline
The field of study covering computation from theory to hardware, from language to system and engineering practice.
A curriculum spanning from the foundations of computation to algorithms and systems, building theory and practice together.
A curriculum reaching from the command line to shell programming, system administration, network troubleshooting and kernel interfaces.
A curriculum that explains the movement of data between two endpoints with a layered model, from the physical medium up to the application protocol.
A curriculum that disciplines how code is produced, reviewed, documented, and how its history is managed within a team.
A curriculum that establishes the value model, the asynchronous execution model, and the type layer of the language that runs on both the browser and the server.
A curriculum that establishes the data model, the type layer, and the concurrency options of a general-purpose language that puts readability first.
A curriculum that establishes a statically typed, object-oriented language running on a managed runtime, and the enterprise layer built on top of it.
A curriculum that builds every layer of the interface running in the browser, from document to component and from layout to deployment.
A design curriculum reaching from visual principles to user research, and from design systems to accessible component patterns.
A curriculum that builds the server-side application answering a request, together with its API contract, data access, authentication, asynchronous processing, observability, and security layers.
A curriculum that teaches how to model and query data correctly, the internals of the relational engine, and when non-relational alternatives are the right fit.
A curriculum that establishes design decisions from code readability to component boundaries at the level of principle, pattern, and rationale; it covers paradigm choice, coupling and cohesion criteria, design patterns, and domain-driven modeling.
A curriculum that designs multi-component systems along the axes of scale, latency, consistency, and failure behavior; it justifies the decisions at every step from the traffic layer to the data layer by separating assumption, calculation, and measurement, and it also teaches how a design is communicated.
A curriculum that treats the architectural decision as a role and a process: separating the levels of architecture by decision scope, the practice of striking balance and simplifying, recording a decision together with its rationale and scoring the trade-off along quality axes, documenting the system through different views, integration and the buy-or-build decision in an enterprise context, testing quality attributes continuously with fitness functions, and the effect of process, team structure, and delivery responsibility on architecture.
A curriculum that systematically tests software's correctness and its non-functional attributes; it settles test levels, test design techniques, unit testing, and test-driven development into team practice.