Make studying fun while following evidence-based learning techniques. Build your own study gym by adding quizzes and flashcard sets, then start a workout to review shuffled cards.
Your gym is empty. Add quizzes and flashcard sets below.
Includes all quizzes taught until today
Includes all quizzes taught until today
Test your knowledge on software construction principles, design patterns, testing, security, and Git based on the CS 35L Final Exam.
Recalling what you just learned is the best way to form lasting memory. Use this quiz to test your understanding.
Recalling what you just learned is the best way to form lasting memory. Use this quiz to test your understanding.
Test your understanding of creational patterns — when to use which, design decisions, and their relationships.
Test your understanding of the Mediator pattern, its trade-offs, and its relationship to Observer.
Test your understanding of the MVC architectural pattern, its compound structure, and its modern variants.
Test your understanding of the Observer pattern's design decisions, trade-offs, and common pitfalls.
Test your understanding of the Singleton pattern's controversies, thread-safety mechanisms, and modern alternatives.
Test your understanding of the State pattern's design decisions, its relationship to Strategy, and the principle of polymorphism over conditions.
Test your understanding of Adapter, Composite, and Facade — their distinctions, design decisions, and when to apply each.
Test your understanding of design patterns at the Analyze and Evaluate levels of Bloom's taxonomy. These questions go beyond pattern recognition to test design reasoning.
Test your ability to identify, apply, and evaluate the Information Hiding principle in real code.
Test your ability to identify, apply, and evaluate Separation of Concerns in real code.
Test your understanding of the evidence-based study techniques.
Test your knowledge of core version control concepts, Git architecture, branching strategies, and advanced commands.
Test your knowledge of advanced Git commands, debugging tools, and integration strategies.
Test your knowledge of core version control concepts, Git architecture, branching, merging, and collaboration.
Test your deeper understanding of Java's type system, OOP model, and design idioms. Covers false friends with C++/Python, encapsulation vs information hiding, generics, collections, and exception handling. Includes Parsons problems, technique-selection questions, and spaced interleaving across all concepts.
Test your understanding of Makefiles, including syntax rules, execution order, automatic variables, and underlying concepts like incremental compilation.
Test your understanding of network architectures, the TCP/IP protocol stack, HTTP, and how the internet works.
Given real-world application scenarios, choose the right network architecture, transport protocol, and application protocol. These questions test your ability to analyze trade-offs and justify design decisions.
Test your deeper understanding of JavaScript's async model, type system, and paradigm differences from C++ and Python. Includes Parsons problems, technique-selection questions, and spaced interleaving across all concepts.
Test your deeper understanding of Python's design choices, paradigm differences from C++, and when to use which tool.
Test your deeper understanding of React's design philosophy, state management, and component architecture. Questions 1–7 cover tutorial material. Questions 8–10 test advanced concepts from the reference page. Questions 11–15 cover event handlers, useEffect, and state immutability.
Test your understanding of regular expressions beyond basic syntax, focusing on underlying mechanics, performance, and theory.
Recalling what you just learned is the best way to form lasting memory. Use this quiz to test your ability to discriminate between problem-space statements (requirements) and solution-space statements (design) in novel scenarios.
Recalling what you just learned is the best way to form lasting memory. Use this quiz to test your understanding of the Scrum framework, roles, events, and principles.
Test your conceptual understanding of shell environments, data streams, and scripting paradigms beyond basic command memorization.
Arrange the code fragments to build correct Python expressions and class definitions.
Recalling what you just learned is the best way to form lasting memory. Use this quiz to test your understanding of structural paradigms, decision-making, and architectural degradation.
A comprehensive mix of all tools flashcards.
Test your ability to read and interpret UML Class Diagrams.
Test your ability to read and interpret UML Component Diagrams.
Test your ability to read and interpret UML Sequence Diagrams.
Test your ability to read and interpret UML State Machine Diagrams.
Test your ability to read and interpret UML Use Case Diagrams.
Test your ability to identify which of the INVEST principles are being violated in various Agile user stories, now including their associated Acceptance Criteria.
Includes all flash cards taught until today
Includes all flash cards taught until today
Key concepts and comparisons for creational design patterns.
Key concepts, design decisions, and the Observer vs. Mediator comparison.
Key concepts for the Model-View-Controller architectural pattern and its compound structure.
Key concepts, design decisions, and trade-offs of the Observer design pattern.
Key concepts, controversies, and modern alternatives for the Singleton design pattern.
Key concepts, design decisions, and trade-offs of the State design pattern.
Key concepts for Adapter, Composite, and Facade patterns.
Core concepts, categories, and principles of design patterns in software engineering.
Key concepts, design decisions, and trade-offs for each individual GoF pattern covered in the course.
Key definitions, examples, trade-offs, and misconceptions of the Information Hiding principle (Parnas 1972).
Key definitions, examples, trade-offs, and misconceptions of Separation of Concerns (SoC).
Which Git command would you use for the following scenarios?
Which Git command would you use for the following advanced scenarios?
Which Git command would you use for the following scenarios?
You are shown Java code. Go beyond naming what it does — explain *why* it behaves that way, what design choice it reflects, or what would break if it changed.
You are given a scenario or design problem. Write Java code that solves it. Questions target Apply, Evaluate, and Create levels — not just syntax recall.
Test your knowledge on solving common build automation problems using Makefile syntax and rules!
Test your ability to read and understand actual Makefile snippets commonly found in real-world C projects.
A comprehensive collection of Makefile syntax, example generation, and real-world C project snippets.
Test your ability to produce the exact Makefile syntax, rules, and variables based on their functional descriptions.
Review key networking concepts: architectures, protocols, HTTP, and the TCP/IP stack.
You are shown JavaScript/Node.js code. Explain what it does and what it outputs.
You are given a task description. Write the JavaScript code that accomplishes it.
You are shown Python code. Explain what it does and what it returns or prints.
You are given a task description. Write the Python code that accomplishes it.
You are shown React/JSX code. Explain what it does and what it renders.
You are given a task description. Write the React/JSX code that accomplishes it.
Test your ability to produce the exact Regular Expression metacharacter or syntax based on its functional description.
Test your knowledge on solving common text-processing problems using Regular Expressions!
Which Shell command would you use for the following scenarios?
Match each shell command to its purpose
Practice connecting UNIX commands together with pipes to solve real tasks.
Test your knowledge on evidence-based study techniques!
A comprehensive mix of all tools quizzes.
Quick review of UML Class Diagram notation and relationships.
Quick review of UML Component Diagram notation and architecture-level modeling.
Quick review of UML Sequence Diagram notation and fragments.
Quick review of UML State Machine Diagram notation and transitions.
Quick review of UML Use Case Diagram notation and relationships.
Test your knowledge on Agile user stories and the criteria for creating high-quality requirements!