- 90-9-1 rule: How to Talk People Into Things
- accessibility: Software Design
- …WebAIM WAVE: Software Design
- active bystander: Fair Play
- active listening: Managing Conflict
- actual result (in unit test): Testing
- ADHD: The Important Stuff
- agile development: Process
- …conditions for success: Process
- all-nighters: The Important Stuff
- …chaotic decomposition: Teams
- …confirmation loop: Teams
- …effect of social status: Teams
- …feature decomposition: Teams
- …functional decomposition: Teams
- …in teams: Teams
- …modular decomposition: Teams
- …rotating decomposition: Teams
- Alloy: Tooling
- ally: Starting, Fair Play
- already invented here syndrome: Software Design
- analysis & estimation: Process
- analysis paralysis: Software Design, Process
- Ant: Automation
- APT: Tooling
- assertion: Error Handling, Debugging
- authentication: Security
- …two-factor: Security
- auto-completion: Tooling
- automated program repair: Debugging
- automation: Automation
- …as programming: Automation
- …hiring process: Fair Play
- Baldwin, James: Fair Play
- Baxter, T. Carter: Fair Play
- bias: Fair Play
- big bang integration: Teams
- Bitbucket: Using Git On Your Own
- Black: Automation
- Blackbox project: Process
- …as team journal: Communicating
- …automatically generated: Communicating
- Boehm Curve: Process
- Borland: Tooling
- branch (in Git): Using Git On Your Own
- breakpoint: Debugging
- breaks (importance of regular): The Important Stuff
- Brook's Law: Research
- Brown, Neil: Process
- …for testing: Testing
- …record and playback: Testing
- BSD License: Intellectual Property
- bug tracker: Communicating
- build manager: Automation
- …and version control: Automation
- …Ant: Automation
- …Make: Automation
- …Rake: Automation
- …rules for using: Automation
- …Snakemake: Automation
- build number: Wrapping Up
- Burns, Heather: Security
- C: Tooling, Research
- C++: Tooling
- Carnac: Tooling
- casual threat: Security
- catch exception: Error Handling
- CC-BY license: Intellectual Property
- CC0 license: Intellectual Property
- chaotic decomposition: Teams
- …benefits of: Teams
- …use in code review: Using Git Together
- Checkstyle: Automation
- chorus of explanation: Communicating
- chunking: Thinking
- co-op: Starting
- code browser: Tooling
- code clones: Research
- code comprehension: Software Design
- code coverage: Testing
- …ineffectiveness of: Research
- Code of Conduct: Starting, How to Welcome Newcomers
- …responding to violations: Fair Play
- code review: Process
- …effectiveness of: Using Git Together
- …for security: Security
- …procedure: Using Git Together
- …responding to: Using Git Together
- cognitive bias: Research
- cognitive dimensions framework: Research
- cognitive load: The Important Stuff
- cognitive load theory: Thinking
- …extraneous: Thinking
- …germane: Thinking
- …impact of checklists: Teams
- …in debugging: Debugging
- …intrinsic: Thinking
- cognitive transition: Thinking
- collective action: Fair Play
- …as communication: Communicating
- commit (version control): Using Git On Your Own
- commit message (version control): Using Git On Your Own
- common programming errors: Debugging
- commons: Fair Play
- …asynchronous: Communicating
- …blog: Communicating
- …comments: Communicating
- …email: Communicating
- …instant messaging: Communicating
- …synchronous: Communicating
- …wiki: Communicating
- community of practice: How to Welcome Newcomers
- competent practitioner: Thinking
- …documentation needs: Communicating
- Comprehensive TeX Archive Network (CTAN): Tooling
- …diagram: Software Design
- concrete examples: Thinking
- …difficult of debugging: Debugging
- CONDUCT file: Starting, Intellectual Property
- …layered: Software Design
- …parameters: Research
- …allocating work: Teams
- conflict (in Git): Using Git On Your Own
- …repeating: Using Git Together
- conflict (interpersonal): Managing Conflict
- …escalating: Managing Conflict
- …handling: Managing Conflict
- confounding variable: Research Methods
- console: Tooling
- continuous integration: Automation, Process
- …GitHub Actions: Automation
- …Travis CI: Automation
- contrarian (why not to be): Teams
- CONTRIBUTING file: The Important Stuff, Starting
- control group: Research Methods
- controlled experiments: Research Methods
- Conway's Law: Teams
- copyright: Intellectual Property
- …code: Testing
- …path: Testing
- Creative Commons: Intellectual Property
- …CC-BY license: Intellectual Property
- …CC0 license: Intellectual Property
- …no commercial use: Intellectual Property
- …no derivative works: Intellectual Property
- …share-alike: Intellectual Property
- crunch mode: The Important Stuff
- …use in testing: Testing
- cultural fit (as unconscious bias): Fair Play
- cutting corners: Process
- CVS (version control): Using Git On Your Own
- dark matter developer: Research Methods
- data mining: Research Methods
- data structure diagrams: Software Design
- dead code: Research
- …breakpoint: Debugging
- …single-stepping: Debugging
- …concurrent systems: Debugging
- …importance of good habits: Debugging
- …rubber duck: How to Make Yourself Comfortable
- …symbolic debugger: Debugging
- …why schools don't teach: Debugging
- defensive programming: Error Handling, Debugging
- delta debugging: Debugging
- demotivation: Thinking
- design by contract: Software Design
- design for test: Testing
- …model-view-controller: Testing
- development process: Process
- DevOps: Automation
- diagnostic power (of formative assessment): Thinking
- …conceptual architecture: Software Design
- …data structure: Software Design
- …entity-relationship: Software Design
- …physical architecture: Software Design
- …use-case map: Software Design
- …workflow: Software Design
- dictionary attack: Security
- …for activity logs: Security
- …of issues: Communicating
- discovery-based learning: Thinking
- discrimination: Fair Play
- Docker: Tooling
- documentation generator: Tooling
- …JSDoc: Tooling
- …as communication: Communicating
- …embedded: Communicating
- …for competent practitioners: Communicating
- …for experts: Communicating
- …for novices: Communicating
- …what to include: Communicating
- doi2bib: Introduction
- Don't Repeat Yourself: Software Design
- double blind experiments: Research Methods
- dual coding: Thinking
- dumpster diving: Security
- Dunning-Kruger effect: Teams
- dynamic analysis: Tooling
- …Valgrind: Tooling
- dynamic typing: Tooling, Research
- easy mode (as a metaphor for privilege): Fair Play
- …Emacs: Tooling
- …Notepad: Tooling
- effort-importance grid: The Important Stuff
- …helping triage: Process
- Eiffel: Software Design
- elaboration: Thinking
- Elbakyan, Alexander: Introduction
- elevator pitch: Starting, Software Design
- Emacs: Tooling
- email (for team communication): Communicating
- …filters: Communicating
- …use in testing: Testing
- engineering tradition in computing: Research Methods
- entity-relationship diagram: Software Design
- …internationalizing: Error Handling
- …writing helpful: Error Handling
- …common: Debugging
- …external: Error Handling
- …internal: Error Handling
- …misperception of frequency: Debugging
- …root cause analysis: Research
- ESLint: Automation
- Evans, Julia: Communicating, Fair Play
- Excel: Research Methods
- exception: Error Handling
- …handling: Error Handling
- …raise: Error Handling
- …under-used and abused: Research
- …when to check: Error Handling
- exfiltrate: Security
- expected result (in unit test): Testing
- experimenter bias: Research Methods
- expert: Software Design, Thinking
- expert blind spot: Thinking
- …code comprehension: Software Design
- …documentation needs: Communicating
- external error: Error Handling
- extraneous load: Thinking
- extrinsic motivation: Thinking
- failure: Debugging
- fairness: Fair Play
- FAQ: Communicating
- fault: Debugging
- feature boxing: Process
- feature creep (danger of): Teams
- feature decomposition: Teams
- feedback loops: Process
- final report: Wrapping Up
- …use in software design: Software Design
- fixture (in unit test): Testing
- …difficulty of testing: Testing
- Flon's Axiom: Research Methods
- flow: The Important Stuff, Testing, Wrapping Up
- …abstract interpretation: Research
- …actual: Research
- Ford, Henry: The Important Stuff
- formative assessment: Thinking
- functional decomposition: Teams
- fuzz testing: Testing, Debugging
- …generational: Tooling
- Gender Decoder: Fair Play
- GenderMag: Fair Play
- General Data Protection Regulation (GDPR): Security
- generational garbage collection: Tooling
- germane load: Thinking
- Gilliam, Terry: How to be a Good Research Partner
- Git: Using Git On Your Own
- …basic commands: Using Git On Your Own
- …branch: Using Git On Your Own
- …branch names: Using Git On Your Own
- …cloning project: Using Git On Your Own
- …comments: Using Git Together
- …commit: Using Git On Your Own
- …commit ID: Using Git On Your Own
- …commit message: Using Git On Your Own, Using Git Together
- …configuring: Using Git On Your Own
- …conflict: Using Git On Your Own
- …creating project: Using Git On Your Own
- …difference between add and commit: Using Git On Your Own
- …graphical interface: Using Git On Your Own
- …HEAD: Using Git On Your Own
- …history: Using Git On Your Own
- …ignoring files: Using Git On Your Own
- …interface (indistinguishable from hoax): Using Git On Your Own, Using Git Together
- …merge: Using Git On Your Own
- …post-commit hook: Automation
- …pre-commit hook: Automation
- …pull request: Using Git Together
- …reasons for popularity: Using Git On Your Own
- …rebase; rebasing (in version control): Using Git On Your Own
- …recovering old files: Using Git On Your Own
- …remote: Using Git On Your Own
- …saving changes remotely: Using Git On Your Own
- …showing status: Using Git On Your Own
- …viewing differences: Using Git On Your Own
- …workflow: Using Git On Your Own
- GitHub Actions: Automation
- GitHub Pages: Communicating
- GitLab: Using Git On Your Own
- GNU Public License (GPL): Intellectual Property
- Goal-Question-Metric: Research
- Goodhart's Law: Debugging, Research
- …unfair hiring practices: Fair Play
- governance: The Important Stuff, How to Welcome Newcomers
- Graf, David: Introduction
- Grand Perspective: Tooling
- GUI designer: Tooling
- harassment: Conclusion
- Hippocratic License: Intellectual Property
- hiring process: Fair Play
- …Automattic: Fair Play
- …healthy: Fair Play
- …mistakes: Fair Play
- history of computing: Teams
- hitchhiker: Teams, Managing Conflict
- Homebrew: Tooling
- Hoye, Mike: Fair Play
- human rights: Intellectual Property
- humanist tradition in computing: Research Methods
- hypercorrection effect: Thinking
- IDE: Using Git On Your Own, Tooling
- …console: Tooling
- …in browser: Tooling
- …under-used and abused: Research
- …VS Code: Tooling
- implicit bias: Fair Play
- …use in testing: Testing
- inequality: Conclusion
- insider threat: Security
- …inevitable use of: Communicating
- institutional priorities: Fair Play
- intellectual property: Intellectual Property
- …copyright: Intellectual Property
- …patent: Intellectual Property
- …trade secret: Intellectual Property
- …trademark: Intellectual Property
- interleaving: Thinking
- internal error: Error Handling
- internship: Starting
- interruption bingo (in meetings): The Important Stuff
- intimate threat: Security
- intrinsic load: Thinking
- intrinsic motivation: Thinking
- introspection: Thinking
- issue: Communicating
- issue tracker: The Important Stuff, Communicating
- …as course deliverable: Wrapping Up
- …helping triage: Communicating, Process
- …Jira: Communicating
- …milestones: Communicating
- …classifying: Communicating
- …description of: Communicating
- …fields: Communicating
- …good titles: Communicating
- …timestamps: Communicating
- Java: Tooling, Research
- …build manager: Automation
- …style checker: Automation
- JavaScript: Tooling
- …style checker: Automation
- Jekyll: Communicating
- Jira (issue tracker): Communicating
- JSDoc: Tooling
- just-in-time compiler: Tooling
- Kaplan-Moss, Jacob: Communicating
- Kendzior, Sarah: How to Change the World
- LaTeX: Wrapping Up
- learned helplessness: Thinking
- learner persona: Introduction, Thinking
- learning strategies: Thinking
- …concrete examples: Thinking
- …dual coding: Thinking
- …elaboration: Thinking
- …interleaving: Thinking
- …retrieval practice: Thinking
- …spaced practice: Thinking
- learning styles: Thinking
- legitimate peripheral participation: How to Welcome Newcomers
- Lehrer, Tom: Research Methods
- lending privilege: Fair Play
- LibreOffice: Wrapping Up
- LICENSE file: Starting, Intellectual Property
- …software: Intellectual Property
- …why not to write your own: Intellectual Property
- linter: Automation
- Linux: Tooling
- …toxic leadership: Tooling
- logging: Error Handling
- …during debugging: Debugging
- …for security: Security, Error Handling
- …levels: Error Handling
- …output format: Error Handling
- …rotating files: Error Handling
- long-term memory: Thinking
- Lua: Software Design
- MacOS: Tooling
- macro: Security
- major version number: Wrapping Up
- Make: Automation
- …pattern rule: Automation
- …shortcomings: Automation
- Markdown: Communicating
- …for final report: Wrapping Up
- marketing: Wrapping Up
- Martha's Rules: The Important Stuff
- mathematical tradition in computing: Research Methods
- MathML: Wrapping Up
- MATLAB: Research Methods
- meetings: The Important Stuff
- meetings (online): The Important Stuff
- …discussion: The Important Stuff
- …extra rules for post mortems: Wrapping Up
- …interruption bingo: The Important Stuff
- …status: The Important Stuff
- …three sticky notes: The Important Stuff
- Mencken, H.L.: How to be a Good Research Partner
- mental health: Teams
- mental model: Communicating, Thinking
- …Git: Using Git On Your Own
- mentoring: Thinking
- Mercurial (version control): Using Git On Your Own
- merge (in Git): Using Git On Your Own
- microphone: How to Make Yourself Comfortable
- microservice: Software Design
- Microsoft Project: Tooling
- Microsoft Visual Studio Code: Tooling
- Microsoft Word: Wrapping Up
- milestone (in issue tracker): Communicating
- minor version number: Wrapping Up
- minutes (of meetings): The Important Stuff
- MIT License: Intellectual Property
- mock object: Testing, Debugging
- …of software development: Software Design
- model-view-controller architecture: Testing
- …testing: Testing
- …Alloy: Tooling
- …TLA+: Tooling
- modular decomposition: Teams
- …extrinsic: Thinking
- …intrinsic: Thinking
- …self-efficacy: Thinking
- multitasking: The Important Stuff
- Myers-Briggs Type Indicator: Research, Thinking
- negative results (failure to publish): Research Methods
- neurodivergence: The Important Stuff
- neurodivergence (stigma associated with): The Important Stuff
- neurotypical: The Important Stuff, Thinking
- …package.json file: Automation, Tooling
- non-disclosure agreement: Intellectual Property
- …abuse of: Security
- not invented here syndrome: Software Design
- note-taking (as a learning strategy): Thinking
- Notepad: Tooling
- novice: Software Design, Thinking
- …code comprehension: Software Design
- …documentation needs: Communicating
- NPM: Tooling
- NPMS: Tooling
- onboarding checklist: Onboarding Checklist
- open offices (evils of): The Important Stuff
- Open Source Initiative: Intellectual Property
- Open-Closed Principle: Software Design
- …importance of: Fair Play
- overwork: The Important Stuff
- package manager: Tooling
- …APT: Tooling
- …Homebrew: Tooling
- …NPM: Tooling
- …package ratings: Tooling
- …pip: Tooling
- package manifest: Automation
- …as course deliverable: Wrapping Up
- …building: Software Design
- packaging: Software Design
- pair programming: Process
- …effect of personality: Research
- paradox of tolerance: Fair Play
- patch (software): Wrapping Up
- patent: Intellectual Property
- path coverage: Testing
- peer evaluation: Teams
- PEP8: Research
- …importance of written criteria for: Fair Play
- …manual: Testing
- Perl: Tooling, Research
- persuasion: How to Talk People Into Things
- Petrov, Andrey: How to Hand Over and Move On
- phishing: Security
- …diagram: Software Design
- pip: Tooling
- placebo: Research Methods
- PLoS: Introduction
- …for IDE: Tooling
- post mortem: Wrapping Up
- post-commit hook: Automation
- post-condition: Software Design
- …strengthening: Software Design
- Pratchett, Terry: Error Handling
- pre-commit hook: Automation
- pre-condition: Software Design
- …weakening: Software Design
- pre-registration of experiments: Research Methods
- …waterfall: Process
- Proctorio (invasive surveillance): Fair Play
- product manager: Process
- productivity: The Important Stuff
- …comparative: Research
- …SPACE framework: Research
- profiler: Testing
- …happiness: Research
- programming in the large: Software Design
- …compiled: Tooling
- …dynamically typed: Tooling
- …ease of learning: Tooling
- …interpreted: Tooling
- …statically typed: Tooling
- …innate ability: Research
- …characteristics of: Starting
- project manager: Process
- …standard files: Starting
- …learning styles: Thinking
- …Myers-Briggs Type Indicator: Research
- pull request: Using Git Together
- …serial number: Using Git Together
- Python: Tooling, Research, Research Methods
- …PEP8 style guide: Research
- …style checker: Automation
- qualitative methods: Research Methods
- quasi-experiment: Research Methods
- Quorum: Tooling
- R (programming language): Research Methods
- radical candor (as bullshit): Fair Play
- radicalization: Conclusion
- raise exception: Error Handling
- Rake: Automation
- reading code: Debugging, Research
- …effect of variable names: Research
- …eye tracking studies: Research
- …fMRI studies: Research
- README file: The Important Stuff, Starting
- refactoring: Tooling
- …for code review: Using Git Together
- remote (in Git): Using Git On Your Own
- …to your manager: Communicating
- repository (version control): Using Git On Your Own
- Representational State Transfer: Software Design
- reproducible example (reprex): Communicating, Debugging
- requirements error: Debugging
- REST: Software Design
- retrieval practice: Thinking
- Robinson, Evan: The Important Stuff
- rotating decomposition: Teams
- rubber duck debugging: How to Make Yourself Comfortable
- Ruby: Tooling, Research
- sanitizing data: Security
- Scalzi, John: Fair Play
- Schneier, Bruce: Security
- Sci-Hub: Introduction
- scientific tradition in computing: Research Methods
- Scottish verdict: Research
- Scratch: Thinking
- scriptability: Software Design
- Scrum: Process
- secure deletion tool: Security
- security theater: Security
- self-confidence (lack of): Teams
- self-efficacy: Thinking
- semantic versioning: Wrapping Up
- sense vote: The Important Stuff
- …support for alt-right sites: Fair Play
- short-term memory: Thinking
- …chunking: Thinking
- …limited capacity of: Thinking
- significance hacking: Research Methods
- single-stepping: Debugging
- Snakemake: Automation
- Snowden, Edward: Security
- social engineering: Security
- sociotechnical congruence: Teams
- …accessibility: Software Design
- …evolution: Software Design
- …influence of testability: Testing
- …role of diagrams: Software Design
- …scriptability: Software Design
- software license: Intellectual Property
- …BSD License: Intellectual Property
- …GNU Public License (GPL): Intellectual Property
- …Hippocratic License: Intellectual Property
- …MIT License: Intellectual Property
- …open: Intellectual Property
- …why to use the MIT License: Intellectual Property
- software patch: Wrapping Up
- …Bitbucket: Using Git On Your Own
- …communication tools: Communicating
- …GitHub: Using Git On Your Own
- …GitLab: Using Git On Your Own
- SPACE framework: Research
- spaced practice: Thinking
- spearphishing: Security
- sprint: Process
- SQL injection attack: Security
- Stack Overflow: Communicating
- stand-up meeting: Process
- standard project files: Starting
- static analysis: Automation
- static site generator: Communicating, Wrapping Up
- …Jekyll: Communicating
- static typing: Tooling, Research
- status meeting: The Important Stuff
- string I/O: Testing
- style checker: Automation
- …Black: Automation
- …Checkstyle: Automation
- …ESLint: Automation
- Subversion (version control): Using Git On Your Own
- surveillance: Conclusion
- symbolic debugger: Debugging
- Taylor & Francis: Introduction
- team contract: Teams
- …allocating work: Teams
- …benefits of diverse ability levels: Teams
- …dissolving: Managing Conflict
- …effect of having friends on: Teams
- …effective size of: Teams
- …isolating at-risk students: Teams
- …learning benefits of: Teams
- …selecting: Teams
- …taking schedules into account: Teams
- Tech Solidarity: Security
- technical debt: Communicating, Automation
- test framework: Testing
- test runner: Testing, Tooling
- test suite: Testing
- test-driven development: Process
- …influence on software design: Testing
- …casual: Security
- …insider: Security
- …intimate: Security
- three sticky notes (in meetings): The Important Stuff
- throw low, catch high: Error Handling
- ticketing system: Communicating
- time boxing: Process
- …of Git commit: Using Git On Your Own
- TLA+: Tooling
- tone policing: Teams
- …misperception of: Managing Conflict
- …rarity of: Managing Conflict
- trade secret: Intellectual Property
- trademark: Intellectual Property
- Travis CI: Automation
- treatment group: Research Methods
- triage: Process
- …using issue tracker: Communicating, Process
- Turbo Pascal: Tooling
- two-factor authentication: Security
- …effect on readability: Research
- …effectiveness at catching bugs: Research
- …use in software design: Software Design
- TypeScript: Tooling
- …dynamic: Tooling, Research
- …static: Tooling, Research
- Uber: Fair Play
- unconscious bias: Fair Play
- Unified Modeling Language: Software Design
- unit test: Testing
- …actual result: Testing
- …browser automation: Testing
- …code coverage: Testing
- …expected result: Testing
- …fixture: Testing
- …floating-point arithmetic: Testing
- …fuzzing: Testing
- …influence on software design: Testing
- …path coverage: Testing
- …performance: Testing
- …profiling: Testing
- …test framework: Testing
- …test suite: Testing
- …visualization: Testing
- Universal Declaration of Human Rights: Intellectual Property
- Up & Go: Fair Play
- use-case map: Software Design, Wrapping Up
- …use in software design: Software Design
- Valgrind: Tooling
- variable naming: Research
- …and build manager: Automation
- …centralized: Using Git On Your Own
- …collaboration: Using Git Together
- …CVS: Using Git On Your Own
- …decentralized: Using Git On Your Own
- …Git: Using Git On Your Own
- …inability to handle office documents: Wrapping Up
- …Mercurial: Using Git On Your Own
- …reasons to use: Using Git On Your Own
- …repository: Using Git On Your Own
- …Subversion: Using Git On Your Own
- …systems: Using Git On Your Own
- …using a shared repository: Using Git Together
- …using forked repositories: Using Git Together
- …when to commit: Using Git Together
- version numbers: Wrapping Up
- …build: Wrapping Up
- …major: Wrapping Up
- …minor: Wrapping Up
- …patch: Wrapping Up
- …semantic versioning: Wrapping Up
- …exiting: Using Git On Your Own
- virtual machine: Tooling
- virus scanner: Security
- Visual Basic: Software Design
- …difficulty of testing: Testing
- VS Code: Tooling
- Wales, Jimmy: How to be a Good Research Partner
- waste (in software development): The Important Stuff
- waterfall model: Process
- WebAIM WAVE: Software Design, Fair Play
- WEIRD: Research
- whiteboard coding questions: Fair Play
- wiki: Communicating
- Wikipedia: How to be a Good Research Partner
- Wilson, Robert: Software Design
- Windows: Tooling
- workflow (in Git): Using Git On Your Own
- workflow diagram: Software Design
- working memory: Thinking
- YubiKey: Security