From 56fa770e31baa572048ad7947019a7a43aa9387f Mon Sep 17 00:00:00 2001 From: Jet Hughes Date: Wed, 6 Apr 2022 20:58:52 +1200 Subject: [PATCH] auto update --- .obsidian/workspace | 18 +- content/_index.md | 29 --- content/notes/2 UML.md | 5 - .../201 Algorithms and data structures.md | 68 ------- content/notes/201 Information Systems.md | 51 ----- content/notes/202 Software development.md | 45 ----- .../notes/203 Human-Computer interaction.md | 69 ------- content/notes/Agile Development.md | 22 --- content/notes/All the light we cannot see.md | 21 -- content/notes/Anti govt protest china.md | 4 - .../notes/Approches to systems development.md | 13 -- content/notes/Assignment 3.md | 58 ------ content/notes/Behaviour Driven Development.md | 16 -- content/notes/Big theta.md | 18 -- content/notes/Birth of HCI.md | 122 ------------ .../Business Process Model and Notation.md | 25 --- content/notes/Business analyst.md | 22 --- content/notes/Business functions.md | 35 ---- content/notes/Business process model.md | 15 -- content/notes/Business process.md | 26 --- content/notes/CJK + Latex Support (测试).md | 40 ---- content/notes/Cheat Sheets.md | 3 - content/notes/Combined evals.md | 44 ----- content/notes/Consoles Terminals Shells.md | 39 ---- content/notes/Continuous Integration.md | 72 ------- content/notes/Daily notes.md | 0 .../notes/Dependencies among attributes.md | 179 ----------------- content/notes/Domain Driven Design.md | 43 ---- content/notes/Entity Relationship Diagrams.md | 46 ----- content/notes/Evaluating designs.md | 187 ------------------ content/notes/Extreme programming (XP).md | 35 ---- content/notes/Faking it Wizard of OZ.md | 58 ------ content/notes/Faking it video prototyping.md | 37 ---- content/notes/Git Cheat Sheet.md | 43 ---- content/notes/HCI Big Picture.md | 23 --- content/notes/Heuristic Evaluation.md | 120 ----------- .../notes/Heuristics Evaluation Assignment.md | 121 ------------ ... is safe enough for autonomous vehicles.md | 12 -- .../Integrated Development Environments.md | 86 -------- content/notes/Jet - Ohyay.md | 13 -- content/notes/Jet -Discord.md | 10 - content/notes/Lecture 07 Unit Testing.md | 69 ------- content/notes/Lecture 08 Debugging.md | 18 -- content/notes/Lecture 09 Documentation.md | 8 - .../Lecture 10 Continuous integration.md | 20 -- content/notes/Lecture 10 Design Heuristics.md | 23 --- .../notes/Lecture 10 Heaps and heap sort.md | 98 --------- .../notes/Lecture 10 OOP Concepts and UML.md | 19 -- content/notes/Lecture 11 Class diagrams.md | 149 -------------- .../Lecture 11 Continuous Integration 2.md | 85 -------- .../notes/Lecture 11 Design Heuristics 2.md | 59 ------ .../notes/Lecture 12 Design Heuristics 3.md | 139 ------------- ...ture 6 Business Functions and Use Cases.md | 30 --- ...cture 7 Business process modelling(BPM).md | 19 -- .../notes/Lecture 7 Personas and Scenarios.md | 48 ----- content/notes/Lecture 8 Business patterns.md | 8 - content/notes/Lecture 8 Merge sort 2.md | 108 ---------- .../notes/Lecture 8 Personas and Scenarios.md | 17 -- ...ture 9 Data Modelling and Normalisation.md | 17 -- ...toypes, Wizard of OZ, Video Prototyping.md | 32 --- .../Lecture 9 Stacks queues and heaps.md | 20 -- .../notes/Merge sort - divide and conquer.md | 91 --------- content/notes/Minimal spending tree.md | 7 - content/notes/Personas and Scenario.md | 59 ------ content/notes/Possible exam questions.md | 1 - content/notes/Predictive adaptive spectrum.md | 62 ------ content/notes/Priority queue.md | 8 - content/notes/Redundancy and Anomalies.md | 36 ---- content/notes/Requirements elicitation.md | 105 ---------- content/notes/Simulated Annealing.md | 0 content/notes/Stacks and queues.md | 10 - .../Storyboards mockups, paper prototypes.md | 51 ----- .../notes/Storyboards mockups, prototypes.md | 50 ----- content/notes/Systems analyst.md | 25 --- .../Systems development lifecycle (SDLC).md | 79 -------- content/notes/Test driven development.md | 6 - content/notes/Unified process (UP).md | 72 ------- content/notes/Union Find-Disjoint set.md | 168 ---------------- content/notes/Unit testing.md | 77 -------- content/notes/Use case diagrams.md | 101 ---------- content/notes/User Experience.md | 16 -- content/notes/Version Control Systems.md | 93 --------- content/notes/What is Usability.md | 43 ---- .../notes/analysis of recursive algorithms.md | 152 -------------- content/notes/assignment 1.md | 111 ----------- content/notes/big-o.md | 19 -- content/notes/books.md | 2 - content/notes/branch.md | 107 ---------- content/notes/config.md | 67 ------- content/notes/crocs.md | 19 -- content/notes/custom Domain.md | 17 -- content/notes/debugging.md | 59 ------ content/notes/developer.md | 23 --- content/notes/documentation.md | 61 ------ content/notes/editing.md | 69 ------- content/notes/ethics.md | 59 ------ ...cial recognition in US riots 2021-01-06.md | 6 - content/notes/finance.md | 6 - content/notes/git.md | 127 ------------ content/notes/hci.md | 9 - content/notes/heap.md | 19 -- content/notes/hosting.md | 84 -------- content/notes/ignore notes.md | 31 --- content/notes/images/github-actions.png | Bin 118756 -> 0 bytes content/notes/images/github-pages.png | Bin 231282 -> 0 bytes content/notes/images/google-domains.png | Bin 73570 -> 0 bytes content/notes/images/obsidian-settings.png | Bin 26089 -> 0 bytes content/notes/index.md | 13 -- content/notes/induction.md | 77 -------- content/notes/interviews.md | 79 -------- content/notes/models.md | 16 -- content/notes/needfinding.md | 69 ------- content/notes/normalisation.md | 27 --- content/notes/objects.md | 51 ----- content/notes/observation.md | 36 ---- content/notes/obsidian.md | 29 --- content/notes/options.md | 39 ---- content/notes/philosophy.md | 17 -- content/notes/preview changes.md | 38 ---- content/notes/prototyping.md | 46 ----- content/notes/requirements.md | 151 -------------- content/notes/scrum.md | 31 --- content/notes/setup.md | 58 ------ content/notes/shell.md | 15 -- content/notes/showcase.md | 17 -- content/notes/stakeholders.md | 31 --- content/notes/teamwork.md | 88 --------- content/notes/templates.md | 3 - content/notes/testing.md | 22 --- content/notes/uml.md | 107 ---------- content/notes/unix shell.md | 29 --- content/notes/usability.md | 7 - content/notes/wincomposes.md | 40 ---- 133 files changed, 12 insertions(+), 6210 deletions(-) delete mode 100644 content/notes/2 UML.md delete mode 100644 content/notes/201 Algorithms and data structures.md delete mode 100644 content/notes/201 Information Systems.md delete mode 100644 content/notes/202 Software development.md delete mode 100644 content/notes/203 Human-Computer interaction.md delete mode 100644 content/notes/Agile Development.md delete mode 100644 content/notes/All the light we cannot see.md delete mode 100644 content/notes/Anti govt protest china.md delete mode 100644 content/notes/Approches to systems development.md delete mode 100644 content/notes/Assignment 3.md delete mode 100644 content/notes/Behaviour Driven Development.md delete mode 100644 content/notes/Big theta.md delete mode 100644 content/notes/Birth of HCI.md delete mode 100644 content/notes/Business Process Model and Notation.md delete mode 100644 content/notes/Business analyst.md delete mode 100644 content/notes/Business functions.md delete mode 100644 content/notes/Business process model.md delete mode 100644 content/notes/Business process.md delete mode 100644 content/notes/CJK + Latex Support (测试).md delete mode 100644 content/notes/Cheat Sheets.md delete mode 100644 content/notes/Combined evals.md delete mode 100644 content/notes/Consoles Terminals Shells.md delete mode 100644 content/notes/Continuous Integration.md delete mode 100644 content/notes/Daily notes.md delete mode 100644 content/notes/Dependencies among attributes.md delete mode 100644 content/notes/Domain Driven Design.md delete mode 100644 content/notes/Entity Relationship Diagrams.md delete mode 100644 content/notes/Evaluating designs.md delete mode 100644 content/notes/Extreme programming (XP).md delete mode 100644 content/notes/Faking it Wizard of OZ.md delete mode 100644 content/notes/Faking it video prototyping.md delete mode 100644 content/notes/Git Cheat Sheet.md delete mode 100644 content/notes/HCI Big Picture.md delete mode 100644 content/notes/Heuristic Evaluation.md delete mode 100644 content/notes/Heuristics Evaluation Assignment.md delete mode 100644 content/notes/How is safe enough for autonomous vehicles.md delete mode 100644 content/notes/Integrated Development Environments.md delete mode 100644 content/notes/Jet - Ohyay.md delete mode 100644 content/notes/Jet -Discord.md delete mode 100644 content/notes/Lecture 07 Unit Testing.md delete mode 100644 content/notes/Lecture 08 Debugging.md delete mode 100644 content/notes/Lecture 09 Documentation.md delete mode 100644 content/notes/Lecture 10 Continuous integration.md delete mode 100644 content/notes/Lecture 10 Design Heuristics.md delete mode 100644 content/notes/Lecture 10 Heaps and heap sort.md delete mode 100644 content/notes/Lecture 10 OOP Concepts and UML.md delete mode 100644 content/notes/Lecture 11 Class diagrams.md delete mode 100644 content/notes/Lecture 11 Continuous Integration 2.md delete mode 100644 content/notes/Lecture 11 Design Heuristics 2.md delete mode 100644 content/notes/Lecture 12 Design Heuristics 3.md delete mode 100644 content/notes/Lecture 6 Business Functions and Use Cases.md delete mode 100644 content/notes/Lecture 7 Business process modelling(BPM).md delete mode 100644 content/notes/Lecture 7 Personas and Scenarios.md delete mode 100644 content/notes/Lecture 8 Business patterns.md delete mode 100644 content/notes/Lecture 8 Merge sort 2.md delete mode 100644 content/notes/Lecture 8 Personas and Scenarios.md delete mode 100644 content/notes/Lecture 9 Data Modelling and Normalisation.md delete mode 100644 content/notes/Lecture 9 Paper Protoypes, Wizard of OZ, Video Prototyping.md delete mode 100644 content/notes/Lecture 9 Stacks queues and heaps.md delete mode 100644 content/notes/Merge sort - divide and conquer.md delete mode 100644 content/notes/Minimal spending tree.md delete mode 100644 content/notes/Personas and Scenario.md delete mode 100644 content/notes/Possible exam questions.md delete mode 100644 content/notes/Predictive adaptive spectrum.md delete mode 100644 content/notes/Priority queue.md delete mode 100644 content/notes/Redundancy and Anomalies.md delete mode 100644 content/notes/Requirements elicitation.md delete mode 100644 content/notes/Simulated Annealing.md delete mode 100644 content/notes/Stacks and queues.md delete mode 100644 content/notes/Storyboards mockups, paper prototypes.md delete mode 100644 content/notes/Storyboards mockups, prototypes.md delete mode 100644 content/notes/Systems analyst.md delete mode 100644 content/notes/Systems development lifecycle (SDLC).md delete mode 100644 content/notes/Test driven development.md delete mode 100644 content/notes/Unified process (UP).md delete mode 100644 content/notes/Union Find-Disjoint set.md delete mode 100644 content/notes/Unit testing.md delete mode 100644 content/notes/Use case diagrams.md delete mode 100644 content/notes/User Experience.md delete mode 100644 content/notes/Version Control Systems.md delete mode 100644 content/notes/What is Usability.md delete mode 100644 content/notes/analysis of recursive algorithms.md delete mode 100644 content/notes/assignment 1.md delete mode 100644 content/notes/big-o.md delete mode 100644 content/notes/books.md delete mode 100644 content/notes/branch.md delete mode 100644 content/notes/config.md delete mode 100644 content/notes/crocs.md delete mode 100644 content/notes/custom Domain.md delete mode 100644 content/notes/debugging.md delete mode 100644 content/notes/developer.md delete mode 100644 content/notes/documentation.md delete mode 100644 content/notes/editing.md delete mode 100644 content/notes/ethics.md delete mode 100644 content/notes/facial recognition in US riots 2021-01-06.md delete mode 100644 content/notes/finance.md delete mode 100644 content/notes/git.md delete mode 100644 content/notes/hci.md delete mode 100644 content/notes/heap.md delete mode 100644 content/notes/hosting.md delete mode 100644 content/notes/ignore notes.md delete mode 100644 content/notes/images/github-actions.png delete mode 100644 content/notes/images/github-pages.png delete mode 100644 content/notes/images/google-domains.png delete mode 100644 content/notes/images/obsidian-settings.png delete mode 100644 content/notes/index.md delete mode 100644 content/notes/induction.md delete mode 100644 content/notes/interviews.md delete mode 100644 content/notes/models.md delete mode 100644 content/notes/needfinding.md delete mode 100644 content/notes/normalisation.md delete mode 100644 content/notes/objects.md delete mode 100644 content/notes/observation.md delete mode 100644 content/notes/obsidian.md delete mode 100644 content/notes/options.md delete mode 100644 content/notes/philosophy.md delete mode 100644 content/notes/preview changes.md delete mode 100644 content/notes/prototyping.md delete mode 100644 content/notes/requirements.md delete mode 100644 content/notes/scrum.md delete mode 100644 content/notes/setup.md delete mode 100644 content/notes/shell.md delete mode 100644 content/notes/showcase.md delete mode 100644 content/notes/stakeholders.md delete mode 100644 content/notes/teamwork.md delete mode 100644 content/notes/templates.md delete mode 100644 content/notes/testing.md delete mode 100644 content/notes/uml.md delete mode 100644 content/notes/unix shell.md delete mode 100644 content/notes/usability.md delete mode 100644 content/notes/wincomposes.md diff --git a/.obsidian/workspace b/.obsidian/workspace index 674e7535d..57f6a26f8 100644 --- a/.obsidian/workspace +++ b/.obsidian/workspace @@ -7,8 +7,11 @@ "id": "a12701fbd6d13db8", "type": "leaf", "state": { - "type": "empty", - "state": {} + "type": "markdown", + "state": { + "file": "content/_index.md", + "mode": "source" + } } } ], @@ -65,6 +68,7 @@ "state": { "type": "backlink", "state": { + "file": "content/_index.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -84,13 +88,15 @@ }, "active": "a12701fbd6d13db8", "lastOpenFiles": [ + "content/_index.md", + "content/notes/INDEX.md", + "content/notes/201 Information Systems.md", + "content/notes/Lecture 6 Business Functions and Use Cases.md", + "content/notes/Approches to systems development.md", "content/notes/analysis-of-recursive-algorithms.md", "content/notes/approches-to-systems-development.md", - "content/_index.md", "content/notes/troubleshooting.md", "notes/hosting.md", - "out/notes/201-information-systems.md", - "content/notes/index.md", - "content/203-human-computer-interaction.md" + "out/notes/201-information-systems.md" ] } \ No newline at end of file diff --git a/content/_index.md b/content/_index.md index 23487bdd7..e69de29bb 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,29 +0,0 @@ ---- -title: 🪴 Quartz 3.2 ---- - -[index](notes/index.md) - -Host your second brain and [digital garden](https://jzhao.xyz/posts/networked-thought) for free. Quartz features - -1. Extremely fast full-text search by pressing `Ctrl` + `k` -2. Customizable and hackable design based on Hugo -3. Automatically generated backlinks, link previews, and local graph -4. Built-in [ CJK + Latex Support](None) -5. Support for both Markdown Links and Wikilinks - -## Get Started -> 📚 [Setup your own digital garden using Quartz](notes/setup.md) - -Not convinced yet? Look at some [community digital gardens](notes/showcase.md) built with Quartz, or read about [why I made Quartz](notes/philosophy.md) to begin with. - -## Content Lists -If you prefer browsing the contents of this site through a list instead of a graph, you can find content lists here too: - -- [All Notes](/notes) -- [Setup-related Notes](/tags/setup) - -## Troubleshooting -- 🚧 [Troubleshooting and FAQ](notes/troubleshooting.md) -- 🐛 [Submit an Issue](https://github.com/jackyzha0/quartz/issues) -- 👀 [Discord Community](https://discord.gg/cRFFHYye7t) diff --git a/content/notes/2 UML.md b/content/notes/2 UML.md deleted file mode 100644 index b76d93080..000000000 --- a/content/notes/2 UML.md +++ /dev/null @@ -1,5 +0,0 @@ -# UML - - - - diff --git a/content/notes/201 Algorithms and data structures.md b/content/notes/201 Algorithms and data structures.md deleted file mode 100644 index d0b476603..000000000 --- a/content/notes/201 Algorithms and data structures.md +++ /dev/null @@ -1,68 +0,0 @@ -# COSC201 - Algorithms and Data Structures -## 1 Lectures -- [[Merge sort - divide and conquer]] -- [[Lecture 8 Merge sort 2]] -- [[Lecture 9 Stacks queues and heaps]] -- [[Lecture 10 Heaps and heap sort]] - -## 2 Notes -### 2.1 Algorithm Complexity -- [[Big-O]] -- [[Big theta]] -- [[Induction]] -- [[analysis of recursive algorithms]] - -### 2.2 Algorithms -- [[Minimal spending tree]] -- [[Union Find-Disjoint set]] -- -### 2.3 Fundamental Data structures -- [[Objects]] -- Stacks queues, List/arrays -- [[Union Find-Disjoint set]] -- Graphs and networks -- Priority queue (heap) - - Weighted - - Unweighted -- Trees (search and optimisation) -- Maps (link between 'keys' and 'values') -- Sets (Unstructured) (no repetition allowed) - -## 3 Assignments -[[assignment 1]] - -## 4 Information - -**Staff** - -Role | Name | Email | Location | Hours ------|------|-------|----------|-----| -Lectures | Michael Albert | michael.albert@otago.ac.nz | owheo g.52 | na | -Labs | Reuben Crimp | reuben.crimp@otago.ac.nz | owheo g.37a | na | - -**Resources** -[blackboard](https://blackboard.otago.ac.nz/webapps/blackboard/execute/modulepage/view?course_id=_45042_1&cmp_tab_id=_508507_1&mode=view+) -[intro to algorithms book](https://otago.hosted.exlibrisgroup.com/permalink/f/1ihp3dt/OTAGO_ALMA51297974690001891) - -**Assessment** -- Internal - - two asignments - - end of week 5 10% - - end of week 10 20% - - labs total 10% -- Exam - 60% - -**Course_plan** -- Extension and refinement of Big-O notation for algorithmic analysis. -- The union-find data structure (a case study) -- Merge sort -- Priority queues and heap sort -- Search trees and balancing -- Hashing and hash maps -- Graphs and graph algorithms (shortest paths, minimal spanning trees) -- String algorithms - - - - - diff --git a/content/notes/201 Information Systems.md b/content/notes/201 Information Systems.md deleted file mode 100644 index b10ad59f1..000000000 --- a/content/notes/201 Information Systems.md +++ /dev/null @@ -1,51 +0,0 @@ -# INFO 201 - Information Systems -## 1 Lectures -- [[Lecture 6 Business Functions and Use Cases]] -- [[Lecture 7 Business process modelling(BPM)]] -- [[Lecture 8 Business patterns]] -- [[Lecture 9 Data Modelling and Normalisation]] -- [[Lecture 10 OOP Concepts and UML]] -- [[Lecture 11 Class diagrams]] - -## 2 Notes -- [[Business analyst]] -- [[Systems analyst]] -- [[Developer]] -- [[Models]] -- [[Systems development lifecycle (SDLC)]] -- [[Agile Development]] -- [[Predictive adaptive spectrum]] -- [[Version Control Systems]] -- [[Requirements elicitation]] - - -### 2.1 Information - -**Staff** - -Role | Name | Email | Location | Hours ----------|----------------|-----------------------------------------------------------------|----------|------ -Lecures | Nigel stanger | [nigel.stanger@otago.ac.nz](mailto:nigel.stanger@otago.ac.nz) | OBS 340 | -Lectures | Daniel Costa | [danielcalencar@otago.ac.nz](mailto:danielcalencar@otago.ac.nz) | OBS 345 | -Labs | Chris Edwards | [chris.edwards@otago.ac.nz](mailto:chris.edwards@otago.ac.nz) | OBS 328 | -Labs | Mark George | [mark.george@otago.ac.nz](mailto:mark.george@otago.ac.nz) | OBS 332 | - -**Resources** -[Domain Driven Design with BDD](https://www.youtube.com/watch?v=Ju50D11EIoE) - -**Assessment** -Must pass at least 7 labs -Must get total of at least 40%. - -Grade Componentsh -- milestone 1 - 10% -- milestone 2 - 20% -- milestone 3 - 20% -- exam - 50% - -**Course_plan** - -![](https://i.imgur.com/q9MEwYL.png) - -![](https://i.imgur.com/lb9zKh7.png) - diff --git a/content/notes/202 Software development.md b/content/notes/202 Software development.md deleted file mode 100644 index eeec763d0..000000000 --- a/content/notes/202 Software development.md +++ /dev/null @@ -1,45 +0,0 @@ -# COSC 202 - Software development -## 1 Lectures -- [[Lecture 07 Unit Testing]] -- [[Lecture 08 Debugging]] -- [[Lecture 09 Documentation]] -- [[Lecture 10 Continuous integration]] -- [[Lecture 11 Continuous Integration 2]] - -## 2 Notes -- [[Consoles Terminals Shells]] -- [[Git]] -- [[Ethics]] -- [[Branch]] -- [[Integrated Development Environments]] - -## 3 Project -A non destructive image editor ANDIE -- [[CROCS]] -- [[Teamwork]] - -## 4 Information -**Staff -- David Eyers - Lectures -- Steven mills - Project -- Reuben Crimp - Labs -- Student demonstrators - -**Contact** -cosc202-staff@otago.ac.nz - -**Resources** -lab book -> https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf -https://www.youtube.com/channel/UCD8yeTczadqdARzQUp29PJw - -**Assessment** -20% x 2 group project -20% individual -40% exam - -**Course plan** -![](https://i.imgur.com/cbxjS0E.png) - -![](https://i.imgur.com/KwbGL6j.png) - - diff --git a/content/notes/203 Human-Computer interaction.md b/content/notes/203 Human-Computer interaction.md deleted file mode 100644 index 56d6ce45d..000000000 --- a/content/notes/203 Human-Computer interaction.md +++ /dev/null @@ -1,69 +0,0 @@ -# INFO203 - Human Computer Interaction -## 1 Notes -### 1.1 Lectures -- [[Lecture 7 Personas and Scenarios]] -- [[Lecture 8 Personas and Scenarios]] -- [[Lecture 9 Paper Protoypes, Wizard of OZ, Video Prototyping]] -- [[Lecture 10 Design Heuristics]] -- [[Lecture 11 Design Heuristics 2]] -- [[Lecture 12 Design Heuristics 3]] - -### 1.2 Videos -- [[Heuristic Evaluation]] -- [[Storyboards mockups, paper prototypes]] -- [[Faking it Wizard of OZ]] -- [[Faking it video prototyping]] - -### 1.3 Atomic -- [[HCI Big Picture]] -- [[Birth of HCI]] -- [[Prototyping]] -- [[Evaluating designs]] -- [[Needfinding]] -- [[Observation]] -- [[Interviews]] -- [[User Experience]] -- [[Usability]] -- [[HCI]] - -### 1.4 Assignments -- [[What is Usability]] -- [[Heuristics Evaluation Assignment]] -- [[Assignment 3]] - -### 1.5 Exam -[[Possible exam questions]] - -## 2 Information - -**Staff** - -Role | Name | Email | Location | Hours ------|------|-------|----------|------ -Lectures | Tobias Langlotz | [tobias.langlotz@otago.ac.nz](mailto:tobias.langlotz@otago.ac.nz) | OBS 713 | -Labs | Jonatan Sutton | [sutjo752@student.otago.ac.nz](mailto:sutjo752@student.otago.ac.nz) | | - -**Resources** -- [Course Outline](https://blackboard.otago.ac.nz/bbcswebdav/pid-2827486-dt-content-rid-17936119_1/courses/INFO203_S1DNIE_2022/INFO203%20Course%20Outline%281%29.pdf) -- [Stanford HCI Videos](https://blackboard.otago.ac.nz/webapps/blackboard/content/listContent.jsp?course_id=_45153_1&content_id=_2827496_1) -- [Lectures Slides](https://blackboard.otago.ac.nz/webapps/blackboard/content/listContent.jsp?course_id=_45153_1&content_id=_2827495_1) -- [Lab docs and assignments](https://blackboard.otago.ac.nz/webapps/blackboard/content/listContent.jsp?course_id=_45153_1&content_id=_2827497_1) -- mark weiser "Calm technology" - - -**Assessment** -Total > 50% -Exam > 40% - -- Usability analysis 5% -- Usability analysis 2 10% -- Prototype 35% -- Exam 50% - -**Course_plan - -![[Pasted image 20220301174404.png]] - -![[Pasted image 20220301174411.png]] - - diff --git a/content/notes/Agile Development.md b/content/notes/Agile Development.md deleted file mode 100644 index a272f4300..000000000 --- a/content/notes/Agile Development.md +++ /dev/null @@ -1,22 +0,0 @@ -tags: review - ---- -# Agile Development -> guilding philosphy to develop info systems in unkown, rapidly changing evnironments - -"Chaordic" - -[The agile manifesto](https://www.agilealliance.org/agile101/the-agile-manifesto) - -## 1 [[SCRUM]] -Development is split into many short (~30 day) "sprints" of intense focus where the entire team is involved - -## 2 [[Extreme programming (XP)]] -take current industry practices to the extreme - -## 3 [[Unified process (UP)]] -Interative and incremental architecture-centric which has four main phases -- inception -- elaboration -- construction -- transition \ No newline at end of file diff --git a/content/notes/All the light we cannot see.md b/content/notes/All the light we cannot see.md deleted file mode 100644 index 7611556c8..000000000 --- a/content/notes/All the light we cannot see.md +++ /dev/null @@ -1,21 +0,0 @@ -# All the light we cannot see -## Quotes - -The entropy of a closed system never decreases - -Sublimity: "the instant when on on ething is about to become something else. Day to night, catepillar to butterfly. Fawn to doe. Experiment to result. Boy to man" - -- - "Do you know what happens, etienne, " says madame manec from -the other side of the kitchen, "when you drop a frog in a pot of boiling -water?" - "You will tell us, I am sure." - "It jumps out. But do you what what happens when you put the -frog in a pot of cool water and then slowly bring it to a boil? You know -what happens then?" - Marie-Laure waits. The potatoes steam. - Madame Manec says, "The frog cooks." - -Science, my lad, is made up of mistakes, but the are mistakes which it is useful to make, because they lead little by little to the truth. - - diff --git a/content/notes/Anti govt protest china.md b/content/notes/Anti govt protest china.md deleted file mode 100644 index 6a661d6ff..000000000 --- a/content/notes/Anti govt protest china.md +++ /dev/null @@ -1,4 +0,0 @@ -# Anti govt protest China -China used facial recognition to identofy protesters - -these protesters used masks and toppled lamposts to thwart this infrastructure diff --git a/content/notes/Approches to systems development.md b/content/notes/Approches to systems development.md deleted file mode 100644 index cf47dd37d..000000000 --- a/content/notes/Approches to systems development.md +++ /dev/null @@ -1,13 +0,0 @@ -# Approches to systems development -## 1 traditional -regardless of the approach, the conecpot of the model is import for analysis design and modelling parrasigms - -### 1.1 system is a collection of process -function programming -processes interact with data -processes accept inputs and produce ouputs - -### 1.2 object oriented -system is a collection of objects -these objects interact with each other -and send and respond to messages \ No newline at end of file diff --git a/content/notes/Assignment 3.md b/content/notes/Assignment 3.md deleted file mode 100644 index fcb5380d1..000000000 --- a/content/notes/Assignment 3.md +++ /dev/null @@ -1,58 +0,0 @@ -[[203 Human-Computer interaction]] - -# Assignment 3 - -**Deadline: Friday 27th of May 2022, 5pm via Blackboard (35% of final mark)** - -## 1 Project: Prototypical Mobile App Development -### 1.1 Aim -- conecptual design and prototypical implementation of a application for mobile devices -- Usage of an iterative development model increasing the fidelity of the developed prototype -- Conduct brainstorming, develop personas and scenarios, create storyboard, create low fidelity prototypes (explore alternatives), informal evaluation, create high fidelity prototypes - -### 1.2 Deadlines -- Friday 8th of April: Email to Jonthan (sutjo752@student.otago.ac.nz) to indicate group/ indivdual work and preliminary topic idea -- Friday 27th of May: Final recorded presentation and additional material summarising the prototypical mobile App development - -### 1.3 Brainstorming: -- Explore user interface alternatives and compare against existing products similar to your app (or most similar apps) -- Document process: E.g. what are the different ideas, alternatives developed and existing solutions, what was the reason the choosing the winning idea - - Keep it short, make use of visual documentation (e.g. drawings, photos, Post-Its) and support it with text, mindmap(s) can me usefull to document brainstorming - - Documentation needs to provide evidence that you a) considered existing solutions (needfinding) and b) explored different alternatives - -### 1.4 Personas and Scenarios: -- Conceptually develop personas and scenarios (at least two) -- Document final personas (also considering different type of personas) and scenarios -- Keep it short and see examples in the lectures for guidance - -### 1.5 Storyboard: -- Develop a visual storyboard out of your scenario description -- See lecture on storyboards for tricks on developing a short and concise storyboard -- Digital storyboard or free hand sketch are both fine - -### 1.6 Low fidelity prototypes: -- Develop low fidelity prototypes for your envisioned app using techniques explained in the lecture (paper-based prototypes) -- We expect 6-10 “screens” that should be prototypically developed -- Explore alternatives for the interface and document all (photos are ok when using pen-based sketches) -- Consider and document the flow within the app (relation and pathways between different screens) - -### 1.7 Document design decisions / informal evaluation -- Which of the ideas from the different low fidelity prototypes did or did not work -- Document the identified issues by linking them to the design heuristics and mention the proposed solution(s) -- E.g. one aspect from one prototype worked better than in the alternative prototype because there was an issue with “Consistency”…. - -### 1.8 High fidelity prototype: -- Develop a high fidelity prototype from the knowledge gained with your low fidelity prototype -- Create the higher fidelity prototype by choosing a method (e.g. could be prototype toolkits such as Balsamiq, Adobe XD, …, some of them have a free trial period you are not expected to buy those, could be template based approaches using images of UI elements, …) -- Consider which interface elements you use because of size constraints within a mobile interface -- Outline the flow within the app (relation and pathways between different screens) -- Document using screenshots etc. - -### 1.9 Submission: -- ~7min presentation slides with max. 7 slides (Powerpoint, Keynote, or Pdf) summarising the key aspects of your prototypical development - - Professional look: Less text more graphics, illustrations, and other media material (video?) - - This presentation is no advertisement or sales pitch but a summary of the work you did with some key insights you learned along the way - - Record your presentation (slides and with audio, video optional), we recommend Zoom for doing this -- Submit the recording of your presentation -- Submit all material (e.g. more detailed storyboards, alternatives explored, paper-based prototypes not covered in the presentation, full high level prototypes) -- Deadline: Friday 27th of May 2022, 5pm via Blackboard (35% of final mark) diff --git a/content/notes/Behaviour Driven Development.md b/content/notes/Behaviour Driven Development.md deleted file mode 100644 index 26cccb816..000000000 --- a/content/notes/Behaviour Driven Development.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -aliases: BDD -sr-due: 2022-04-14 -sr-interval: 23 -sr-ease: 292 ---- -#review - -# Behaviour Driven Development -Models should be created with the users needs in mind. -Required bahaviour determines acceptance criteria -This is called Behaviour Driven Development [[BDD]] - -**Resources** -[Domain Driven Design with BDD](https://www.youtube.com/watch?v=Ju50D11EIoE) -[DDD videos](https://www.youtube.com/playlist?list=PLZBNtT95PIW3BPNYF5pYOi4MJjg_boXCG) \ No newline at end of file diff --git a/content/notes/Big theta.md b/content/notes/Big theta.md deleted file mode 100644 index 031c00305..000000000 --- a/content/notes/Big theta.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -sr-due: 2022-04-27 -sr-interval: 41 -sr-ease: 290 ---- -tags: #review - ---- - -### 0.1 Big-Θ ->Big theta means $f(n) = \Theta(g(n))$ if there are constants 0 < B < A such that for all sufficiently large n, ==$B × g(n) ≤ f(n) ≤ A × g(n)$== - -- Upper and lower bound -- $Θ$ says that $g(n)$ provides **upper** and **lower** bound for $f(n)$ - - "selection sort is $\Theta(n^2)$" -> the maximum number of operations will be bounded bothh above and below by some constant times $n^2$ -- $f(n) = \Theta(g(n))$ means that f and g have similar growth rates -- if $f(n) = \Theta(g(n))$ then the opposite is also true -- usually $f(n)$ is complex but $g(n)$ is very simple \ No newline at end of file diff --git a/content/notes/Birth of HCI.md b/content/notes/Birth of HCI.md deleted file mode 100644 index 850a2a6f8..000000000 --- a/content/notes/Birth of HCI.md +++ /dev/null @@ -1,122 +0,0 @@ -# Birth of HCI -ENIAC (one of the first programmable, electronic computers) 1946, and the first six programmers: Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Meltzer, Fran Bilas, and Ruth Lichterman - -![[Pasted image 20220309103217.png]] - - - -DEC PDP-8 and TI 980 (1960’s), PDP-8 is an octal computer (switches in three-bit configurations), TI 980 is a hexadecimal machine (4-bit configuration). Not interactive - -![[Pasted image 20220309103249.png]] - - - -Batch processing using punch cards, still not interactive (1950s -1970s) - -![[Pasted image 20220309103307.png]] - - - -IBM System/360 (mainframe computer in the 70s), Altair 8800 (one of the first home computers) - -![[Pasted image 20220309103339.png]] - - - -visicalc (Dan Bricklin 1979), and Apple II (1977) - -![[Pasted image 20220309103358.png]] - - - -Sutherland, Ivan Edward (January 1963). "Sketchpad: A man-machine graphical communication system, MIT press. - -![[Pasted image 20220309103425.png]] - - - -Sutherland, Ivan Edward (January 1963). "Sketchpad: A man-machine graphical communication system, MIT press. - -![[Pasted image 20220309103441.png]] - - - -1968 - “The Sword of Damocles” Sutherland, Ivan Edward (1968), “A head-mounted three dimensional display” - -![[Pasted image 20220309103500.png]] - - - -1968 - “The Sword of Damocles” Sutherland, Ivan Edward (1968), “A head-mounted three dimensional display” - -![[Pasted image 20220309103520.png]] - - - -1968 - “The Sword of Damocles” Sutherland, Ivan Edward (1968), “A head-mounted three dimensional display” - -![[Pasted image 20220309103543.png]] - - - -“The Mother of All Demos”, presented by Douglas Engelbart (1968) at (ACM/IEEE) Computer Society's Fall Joint Computer Conference See full demo: https://www.youtube.com/watch?v=yJDv-zdhzMY - -![[Pasted image 20220309103603.png]] -![[Pasted image 20220309103631.png]] - - - -“Dynabook” Alan C. Kay. (1972), “Personal Computer for Children of All Ages” - -![[Pasted image 20220309103706.png]] - - - -Apple Newton (1993) and Apple iPad (2010) - -![[Pasted image 20220309103724.png]] - - - -Graphical User Interface supporting “What You See Is What You Get” (WYSIWYG), the Desktop metaphor (files, folders, etc.), Xerox Parc/Xeroc Star - -![[Pasted image 20220309103738.png]] - - - -Graphical User Interface supporting “What You See Is What You Get” (WYSIWYG), the Desktop metaphor (files, folders, etc.), Xerox Parc/Xeroc Star - -![[Pasted image 20220309103752.png]] - - - -1992/93 - IBM Simon First smartphone Phone, pager, calculator, address book, fax machine, and e-mail device - -![[Pasted image 20220309103808.png]] - - - -Ramesh Raskar, Greg Welch, Matt Cutts, Adam Lake, Lev Stesin and Henry Fuchs (1998) "The Office of the Future : A Unified Approach to Image-Based Modeling and Spatially Immersive Displays," - -![[Pasted image 20220309103853.png]] - - - -1981 - Steve Manns’s “Wearable Computing” Start of a series of prototypes for wearable computing, cyborgs, and mediated reality (-> Google Glass) www.wearcam.org, www.eyetap.org - -![[Pasted image 20220309103916.png]] - - - -Nokia N95 (2007) and Apple iPhone (2007) - -![[Pasted image 20220309103944.png]] - - - -Major innovations in HCI (Myers 1998) - -![[Pasted image 20220309104007.png]] -![[Pasted image 20220309104015.png]] - - diff --git a/content/notes/Business Process Model and Notation.md b/content/notes/Business Process Model and Notation.md deleted file mode 100644 index 3be8ebd9b..000000000 --- a/content/notes/Business Process Model and Notation.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -aliases: BPMN ---- -# BPMN - Business Process Model and Notation -- graphical diagramming language -- free international vendor standard developed by the object management group -- shows only the order of activites - - when, not under what conditions -- do not: - - detail the activites - - describe how it is informed - -### 0.1 swimlanes -identify the business role for each activity - -### 0.2 Other features -- looping back -- types of branch gateway -- parallel execution -- collaboration with external entities (pools) -- executable if using the right infrastructure - -### 0.3 Examples -![[Pasted image 20220323113541.png]] -![[Pasted image 20220323113643.png]] \ No newline at end of file diff --git a/content/notes/Business analyst.md b/content/notes/Business analyst.md deleted file mode 100644 index 12a035c52..000000000 --- a/content/notes/Business analyst.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -sr-due: 2022-05-14 -sr-interval: 53 -sr-ease: 290 ---- -tags: #review - ---- -# Business anlayst -Gather, document, verify, record business requirements -- mostly works with people - not coding -- within context of business model and strategy - -Needs both business and ICT knowledge -- acts as bridge between mangement, user, and dev team -- understands integreation of ICT into business - -Needs good interpersonal skills -- uncooperative uers -- reluctant managers -- free spirited devs - diff --git a/content/notes/Business functions.md b/content/notes/Business functions.md deleted file mode 100644 index 7f573885a..000000000 --- a/content/notes/Business functions.md +++ /dev/null @@ -1,35 +0,0 @@ -# Business functions -- what the business ought to be doing -- _not_ - - who, how, stucture, tech - -each business function becomes a set of features within an info system - -## 1 Id business functions -- verb phrases - - id what the business ought to be doing ⇒ e.g., "accept payment from customer" - - id how => "we accept payments online banking and credit card" - - always ask "what is the objective" -- remove redundancies -- model the id'd functions as _use cases_ - -## 2 Use case -"A list of actions defining the interactions betweeen a role and a system to achiece a goal" -high level description of how people interact with a system - -story of how the business works - -should be: -- simple -- aimed at stakeholders -- understandable by non-tech people -- should use ubiquitous language -- also useful for system devs - -can use text (Cockburn, fowler) or diagrams (function catalog, UML case diagrams) - - - -## 3 UML -unified modeling language -- use case - class - state - activity - sequence - deployment etc \ No newline at end of file diff --git a/content/notes/Business process model.md b/content/notes/Business process model.md deleted file mode 100644 index b7ea9b9c8..000000000 --- a/content/notes/Business process model.md +++ /dev/null @@ -1,15 +0,0 @@ -# 3 Business process model -- graphical depiction fo one ormore business proccesses -- some variant of a flowchart -- many different approaches - - BPMN - - UML activity diagrams - - data flow diagrams DFDs - - good for security - - business process execution language BPEL - - prgramm how a proces with go - - can be executed - - subject oriented business process mangement (s-BPM) - - and many more -- may be execultable -- developed alongside data models (ERDs, class diagrams etc) \ No newline at end of file diff --git a/content/notes/Business process.md b/content/notes/Business process.md deleted file mode 100644 index 59b5a08f7..000000000 --- a/content/notes/Business process.md +++ /dev/null @@ -1,26 +0,0 @@ -# Business process -- A sequence of tasks or steps required to carry out a particular business function e.g.,: - - pocure new assets - - apply for leave - - process and orer - - enrol a student -- paper and or computer based processes -- processes can have sub-processes ⇒ nested hierarchy -- terminology - - business processes are also know as workflows - - activity usually means the same thing as tasl - - -### 0.1 example: processing an order -1. sales dept recieves and enters order into system - 1. system triugger automated credit check bu finance dept - 2. if credit not OK, STOP order -2. warhouse staff fulfill order - 1. check availability in warehouse - 2. if any item out of stick transfer to back order process - 3. pack items for shipping -3. finance dept generated invoice -4. send shipment and invoice to customer - - -e.g., www.otago.ac.nz/study/enrolment/index.html \ No newline at end of file diff --git a/content/notes/CJK + Latex Support (测试).md b/content/notes/CJK + Latex Support (测试).md deleted file mode 100644 index d6e4ae968..000000000 --- a/content/notes/CJK + Latex Support (测试).md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "CJK + Latex Support (测试)" ---- - -## Chinese, Japanese, Korean Support -几乎在我们意识到之前,我们已经离开了地面。 - -우리가 그것을 알기도 전에 우리는 땅을 떠났습니다. - -私たちがそれを知るほぼ前に、私たちは地面を離れていました。 - -## Latex - -Block math works with two dollar signs `$$...$$` - -$$f(x) = \int_{-\infty}^\infty - f\hat(\xi),e^{2 \pi i \xi x} - \,d\xi$$ - -Inline math also works with single dollar signs `$...$`. For example, Euler's identity but inline: $e^{i\pi} = 0$ - -Aligned equations work quite well: - -$$ -\begin{aligned} -a &= b + c \\ &= e + f \\ -\end{aligned} -$$ - -And matrices - -$$ -\begin{bmatrix} -1 & 2 & 3 \\ -a & b & c -\end{bmatrix} -$$ - -## RTL -More information on configuring RTL languages like Arabic in the [config](notes/config.md) page. diff --git a/content/notes/Cheat Sheets.md b/content/notes/Cheat Sheets.md deleted file mode 100644 index 79e7bb720..000000000 --- a/content/notes/Cheat Sheets.md +++ /dev/null @@ -1,3 +0,0 @@ - -[[Git Cheat Sheet]] -[[WinComposeS]] diff --git a/content/notes/Combined evals.md b/content/notes/Combined evals.md deleted file mode 100644 index 7a71b2165..000000000 --- a/content/notes/Combined evals.md +++ /dev/null @@ -1,44 +0,0 @@ -| Heuristic | Severity | Location | Issue | Recommendation | -|:-------------------------------------------------------------|:---------------------------|:----------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| visibility of system status | 3 | Call | The the close window button does not leave the meeting. It pops up the small view. If the user closes this window. The user still does not leave the meeting and there is not GUI | make closing the windows prompt the user if they want to leave the meeting | -| error prevention | 3 | Call | The application crahed when cadence tried to take a snapshot. Then I could still see him even though he didn't know he was still in the meeting | The snapshot feature should not cause a crash. And when the GUI closes, the user should leave the meeting | -| Recognition rather than recall | 3 | N/A | I do not know how to add somebody else as a contact. I found a way to share a link to my profile, but I don’t know how to use a link that was shared with me. | There should be clear and obvious steps on how to add a contact. If the person has no contacts then the buttons should be displayed more prominently. | -| Visibility of system status | 3 | Call | After Skype restarted from the snapshot button crash, the interface seemed like I wasn’t in a call: there was no call overlay, I couldn’t see or hear the other person, and the buttons prompted to start a call rather than stop it. However, my partner could actually see and hear me the whole time, without me knowing! | The application should always tell you when you are in a call. | -| User control and freedom | 3 | Private conversation | Logging out and logging in again permanently deletes the entire private conversation on your side without warning. | It should remember the conversation, or if this isn’t possible, it should warn you about the consequences before you log out. | -| Visibility of system status | 3 | Call | If a skype window is closed while in a audio or video call, you remain in the call, despite the app being closed. | Either have a warning that the app is closing but you will remain in the call, or have a warning that closing the app will terminate your connection to the call | -| Visibility of system status | 2 | Audio/video settings | It is not clear whether or not the microphone test is running | There should be a visible indicator showing that the microphon test is running | -| Visibility of system status | 2 | Screenshare | The only indicator that you are sharing your screen is the button changing from “start sharing” to “stop sharing”. It is easy to forget you are sharing, which could potentially cause huge embarrassment! | There should be a permanent indicator that is visible even while using other applications. | -| Help users recognise and recover from errors | 2 | Account creation | You cannot use a PNG image as a profile picture, only a JPEG image. | Allow PNG images too, or automatically convert them when the user tries to pick them. | -| Flexibility and efficiency of use | 2 | Audio/video settings | When adjusting your audio and videos settings the setting for your webcam is hidden | It should be moved up so the use doesn't have to scroll | -| recognition rather than recall | 2 | Call | After opening the sidebar during a call there is no indication of how to hide it | There should be a button to close the sidebar during a call | -| User control and freedom | 2 | Mini Viewer | When ‘minimising’ Skype into a mini-player while on video call, the icon for screen-share is visible, and easily confused with the ‘maximise’ button to return the screen to the normal viewer | Have the button for screen share clearer of its purpose, and have a resize option when in mini-player | -| Match between system and the real world | 2 | Contacts list | Contacts who have sent you a message are not displayed in the “chats” section until you send a message back. | Text chats should always be displayed in the text chats section. | -| consistency and standards | 2 | Call | When one participant enters together mode, it force all the participant into together mode. But the users must all individually leave together mode. | It should be made clear that this is how is works as this was unexpeted behaviour | -| Flexibility and efficiency of use | 2 | Call | To click the horizontal dot menu in the bottom left the user must mouse over the react button which opens a popup. This menu usually closes after the mouse is moved off but sometimes it stays | The react menu should be moved or the mouse over function should be fixed | -| User control and freedom | 2 | Call | My partner has the ability to use a custom background image, but I don’t have this feature on my end. | Everybody should have the feature! I don’t know why I don’t have it. | -| Match between system and the real world | 2 | Private conversation | There is a feature to start a private conversation. Does this imply that conversations are usually not private? | The application should describe what a private conversation means, and explain whatever the downsides are that mean that it can’t be the default option. | -| Aesthetic and minimalist design | 2 | Call | When switching applications, Skype opens a floating window to contain the call, which will overlap other applications. | This feature is helpful but there needs to be a way to permanently dismiss it so people can work while in a call. | -| Consistency and standards | 2 | N/A | Quitting and restarting the application caused me to be logged out. | It’s a program that is installed on my computer, so it makes sense to keep me logged in. | -| recognition rather than recall | 2 | Call | not clear how to exit together mode | Have some indicator of | -| User control and freedom | 2 | Text chat | You cannot send a message that starts with a slash. | You should be able to send messages starting with a slash. | -| Recognition rather than recall | 2 | General | The toolbar that typically runs along the top of the screen is only available/viewable on the app after pressing alt, and making any action outside of the toolbar removes it again | Have an option to toggle toolbar on/off, and/or make it clearer that alt engages the toolbar | -| Help and documentation | 2 | General | To get help with Skype, the toolbar has to be toggled or settings must be opened and navigated through to find the help section | Have a more easily accessible help button, perhaps near the notifications/create group .etc | -| Visibility of system status | 2 | Chat | When removing a message, it is not made clear whether it will remove the message for everyone, or just yourself | Clarify that removing the message removes it for all participants | -| Flexibility and efficiency of use | 2 | Chat | To view bookmarked messages the user must navigate through their own profile to the bookmarks tab, where all bookmarks from all chats are kept, unsorted | Have an option to view bookmarked chats from certain groups, or have sorting criteria (date, group etc) | -| Aesthetic and minimalist design | 1 | Profile | When trying to click on your profile, if the status symbol is clicked a dropdown menu appears that gives you the ability to set your status (active, away, DnD etc), but this option is already included in the main dropdown from clicking onto your profile | Remove the separate function to help mis-click prevention | -| Match between system and the real world | 1 | DnD popup | When entering Do Not Disturb, a pop-up notifies you that you will not receive notifications while this is on. The popup has three options to exit it, ‘OK’, ‘View Settings’, and ‘Don’t ask me again’ | Improve the wording. Instead of Don’t ask me again, have ‘don’t show me this again’ or something of the like | -| User coontrol and freedom | 1 | Mini floating window | There is no dedicated button to maximise the floating window | A dedicated button should be added to maximise the floating window | -| Match between system and the real world | 1 | New Group | When a new group is created, there are two options presented for adding people to the group. There is ‘invite’ and ‘add people’ as two separate options. One option is for adding people through a link, and one is for inviting contacts. However, the add people option also contains an option for adding via link. | Remove the invite option, as both are covered under add people. | -| Consistency and standards | 1 | General | Throughout the app, there are multiple different designs for the add members button. There are three different actions that can be taken to add members to a group, and they all have different icons | Generalise the icons so that they all follow the same design, that way they are recognisable throughout the application | -| user control and freedom | 1 | Audio and video settings| cadence cannot add a custom background | It should at least say why he cant | -| Flexibility and efficiency of use | 1 | Call | When a user is using multiple displays, even if the large skype window is visible the floating windows opens | The floating window should no open in this situation | -| Help and docmentation | 1 | Call | When in a call by yourself the record button is grayed out and not pressable. There is no indication as to why | On mousing ove the button it should say why it is grayed out | -| Aesthetic and minimalist design | 1 | Account creation | On one of the screens, the “continue” button must be clicked twice in order to continue. | The continue button should continue. | -| help and documentation | 1 | Chat | no information about what private mode is | more information should be iven to the user | -| Aesthetic and minimalist design | 1 | Top of the screen | Informational banners appear here and do not go away until they are interacted with. They do not display helpful information. Sometimes duplicates should appear. | The banners should go away when they are no longer relevant. | -| Match between system and the real world | 1 | Call | “Together mode” is poorly named and does not accurately indicate what it will do. | This feature could have a name like “background scene”, or tooltip text, or some other help mechanism. | -| Match between system and the real world | 1 | Polls | Somebody clicking or unclicking a poll option sends me a notification sound. These poll events contain little information on their own, so there’s no reason for them to notify immediately. | Do not notify for people clicking polls. | -| Match between system and the real world | 1 | Contacts list | There is a feature to “send a contact”, though this offers to send a person their own contact card. | Do not offer to send people their own contact cards. | -| Consistency and standards | 1 | Call | The “view” button has an inconsistent appearance. It activates a dropdown but looks like a functional button. | Add an arrow indicator to the button so that it matches the rest of the application’s conventions. | -| Consistency and standards | 1 | Polls | It’s not obvious that a poll option highlighted in blue indicates that you should clicked that option. | Poll options should be represented as traditional checkboxes, rather than weird coloured rectangles. This also makes it clear that you can click again to undo your vote, which is already a feature. | -| Consistency and standards | 1 | Main menu | There is an option to “download the app”. I am already using the desktop application. | The text should state “phone app” to contrast it from desktop app. | \ No newline at end of file diff --git a/content/notes/Consoles Terminals Shells.md b/content/notes/Consoles Terminals Shells.md deleted file mode 100644 index 1d5347b08..000000000 --- a/content/notes/Consoles Terminals Shells.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -sr-due: 2022-04-10 -sr-interval: 27 -sr-ease: 270 ---- - -tags: #review - ---- - -# Consoles vs Terminals vs Shells -- consoles vs terminals/command line shells - - console -> io device which is part of a computer (physical terminal) - - console is the device: -> terminal is program inside that device - - terminal -> text input output environment (can be remote) - - windows terminal - - [[shell]] -> program which the terminal/console sends input to which sends command to the OS - - [[unix shell]] - - powershell - - cmd - - bash, fish, zsh, ksh, sh, tsch - -#### BREIF HISTORY -1. At first only main console -2. Then multiple terminals which allowed mulitple people to use one computer -3. Graphics support -4. Console + terminal merged -5. Virtual terminals -> no need for direct hardware control -> replaced by OS - -```mermaid - graph LR - MainConsole --> MultipleTerminals --> GraphicsSupport --> MergeConsole&Terminal --> VirtualTerminals -``` - ---- -resources: -[whats the differnce between a console a terminal and a shell](https://www.hanselman.com/blog/whats-the-difference-between-a-console-a-terminal-and-a-shell) - ---- \ No newline at end of file diff --git a/content/notes/Continuous Integration.md b/content/notes/Continuous Integration.md deleted file mode 100644 index 9669d10db..000000000 --- a/content/notes/Continuous Integration.md +++ /dev/null @@ -1,72 +0,0 @@ -# Continuous Integration -## 1 What is it -continuous --> is always happening -integration --> connecting software components - -inc ontrast to ad hoc, occasional integration: -- diverging component developmetnamy break integration -- repaiing software may be expensive - -supports 'aglile' software dev -- like test driven development, help catch issues early - -usually automated - -## 2 Purposes -- checking code syntax - - e.g., have CI compile the code and report errors - - (local devs compilaer may be different from remote) -- checking semantics of code -- building docs - - e.g., auto run javadoc -- running projects code tests - - auto run JUnit, and report fails - -## 3 Starting CI jobs -- from version control - - e.g., every commit triggered CI jobs to run - - starts on a push to server -- manually -- on a schedule - -## 4 Runs asnychronously -- dont require devs to wait for completion -- common to run locally as well as on consistent standard environment - - other timescales - - local checks as you commit - - checks as you type - - checks as you save - -## 5 Output -since CI is asynchronous, its feedback is also - -e.g., -- web badges showing status -- can send emails -- messaging platform - - e.g., slack, discord, teams - - webhooks etc - -git project websites usually provide logging interface, -will watch scripts in virtual terminal and capture output from CI scripts - -## 6 Github piplines -a pipeline has multiple _stages_ -- e.g., test, build, deploy -each stages has multiple _jobs_ -- e.g., JUnit, custom tests, etc - -## 7 Yaml -most Ci frameworks use YAML for their configuration -structured text based formats -- python-like format or ≈JSON - -## 8 configurationg from git repo -CI config often via file in git top-level directory -- CI is version managed - -Gitlab pipeling specs go into .gitlab-ci.yaml: -- shows command sequece to run for a jon, within a stage -- output from commands is stored for a subsequent viewing -- indicates what files 'artifacts' should be kept from jobs \ No newline at end of file diff --git a/content/notes/Daily notes.md b/content/notes/Daily notes.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/content/notes/Dependencies among attributes.md b/content/notes/Dependencies among attributes.md deleted file mode 100644 index 35aa5f761..000000000 --- a/content/notes/Dependencies among attributes.md +++ /dev/null @@ -1,179 +0,0 @@ -# 2 Dependencies among attributes -### 0.1 Functional Depenencies (FDs) -For any given value of attribute A there is _exactly one_ associated value of attribute B, then A _functionally determines_ B (loosely) - -This is the theoretical basis for normalisation, and uniqueness property of PK (A is unique with respect to B) - -- one to one -- Written as: A --> B -- Equivalently, "B is functionally dependent on A" -- Within a single relation only -- every attribute functionally dependent of primary key (PK) - -#### 0.1.1 Example 1 -- consdier a specific student ID e.g., 123346 -- this student ID is alwasys associated witha single studnet name (e.g., jane smith) -- even it the students name changes, that student ID will still be asociated with the name of only that on student -- _The value of studnet id dtermines the value of student name_ - -#### 0.1.2 Other examples -- student ID --> student name (but not vice versa) -- car registration --> car owner (but not vice versa) - - rego --> VIN - - VIN --> rego -- student ID --> name, semester address, mobile number -- car rego --> owener name -- IRD number + year --> tax payable -- product ID + order no --> quantity ordered - -#### 0.1.3 Anti examples -- student ID + name --> birth date (ovekill, partial dependency) -- home address --> student name -- name --> birth date - -e.g., -![](https://i.imgur.com/J0FzURg.png) -![](https://i.imgur.com/EMSOMmC.png) - - -### 0.2 Using Functional dependencies -To determine them: -- need detailed knowledge of thebusiness rules -- examine existing data sets - - not always practical when these are large or unknown - -Can be represented using funcitonal dependency diagrams (FDDs) - -Bottom up approach -- ERD is "top-down" -- FD best used as a design validation tool - -### 0.3 Types of functional dependencies -#### 0.3.1 Dependencies on more that one attribute -non primary attributes that are dependent on two or more attributes -always arise with composite PKs -e.g., -![](https://i.imgur.com/d4fUeRD.png) - -#### 0.3.2 Partial Dependency -Subset of left hand side determines right hand side -"extra attributes" - -e.g., -![](https://i.imgur.com/clpV0eU.png) -![Uploading file...mfewm]() - -#### 0.3.3 Transitive dependency - -e.g., -- part num determines supplier number -- supplier number determines supplier name -- part number determines supplier name - -BUT 3 is already implied by 1 & 2 --> redundant supplier names -![](https://i.imgur.com/VZbxVff.png) -![](https://i.imgur.com/df0D7Lc.png) - -### 0.4 Multivalued dependencies (MVDs) -if for any given value of attribute A there is a _set_ of associated values of attribute S, the a _Multidetermines_ S (loosely) - -- one to many -- written: A ↠ S -- equivalently, "S is multiply dependent on A" -- Generalistion of FDs: all FDs are MVDs, but not vice versa -- A is still unique with respect to S - -#### 0.4.1 Examples -![](https://i.imgur.com/938t9Kd.png) - -[[Normalisation]] - - - -# 2 Dependencies among attributes -### 2.1 Functional Depenencies (FDs) -For any given value of attribute A there is _exactly one_ associated value of attribute B, then A _functionally determines_ B (loosely) - -This is the theoretical basis for normalisation, and uniqueness property of PK (A is unique with respect to B) - -- one to one -- Written as: A --> B -- Equivalently, "B is functionally dependent on A" -- Within a single relation only -- every attribute functionally dependent of primary key (PK) - -#### 2.1.1 Example 1 -- consdier a specific student ID e.g., 123346 -- this student ID is alwasys associated witha single studnet name (e.g., jane smith) -- even it the students name changes, that student ID will still be asociated with the name of only that on student -- _The value of studnet id dtermines the value of student name_ - -#### 2.1.2 Other examples -- student ID --> student name (but not vice versa) -- car registration --> car owner (but not vice versa) - - rego --> VIN - - VIN --> rego -- student ID --> name, semester address, mobile number -- car rego --> owener name -- IRD number + year --> tax payable -- product ID + order no --> quantity ordered - -#### 2.1.3 Anti examples -- student ID + name --> birth date (ovekill, partial dependency) -- home address --> student name -- name --> birth date - -e.g., -![](https://i.imgur.com/J0FzURg.png) -![](https://i.imgur.com/EMSOMmC.png) - - -### 2.2 Using Functional dependencies -To determine them: -- need detailed knowledge of thebusiness rules -- examine existing data sets - - not always practical when these are large or unknown - -Can be represented using funcitonal dependency diagrams (FDDs) - -Bottom up approach -- ERD is "top-down" -- FD best used as a design validation tool - -### 2.3 Types of functional dependencies -#### 2.3.1 Dependencies on more that one attribute -non primary attributes that are dependent on two or more attributes -always arise with composite PKs -e.g., -![](https://i.imgur.com/d4fUeRD.png) - -#### 2.3.2 Partial Dependency -Subset of left hand side determines right hand side -"extra attributes" - -e.g., -![](https://i.imgur.com/clpV0eU.png) -![Uploading file...mfewm]() - -#### 2.3.3 Transitive dependency - -e.g., -- part num determines supplier number -- supplier number determines supplier name -- part number determines supplier name - -BUT 3 is already implied by 1 & 2 --> redundant supplier names -![](https://i.imgur.com/VZbxVff.png) -![](https://i.imgur.com/df0D7Lc.png) - -### 2.4 Multivalued dependencies (MVDs) -if for any given value of attribute A there is a _set_ of associated values of attribute S, the a _Multidetermines_ S (loosely) - -- one to many -- written: A ↠ S -- equivalently, "S is multiply dependent on A" -- Generalistion of FDs: all FDs are MVDs, but not vice versa -- A is still unique with respect to S - -#### 2.4.1 Examples -![](https://i.imgur.com/938t9Kd.png) \ No newline at end of file diff --git a/content/notes/Domain Driven Design.md b/content/notes/Domain Driven Design.md deleted file mode 100644 index 059a3a186..000000000 --- a/content/notes/Domain Driven Design.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -aliases: DDD -sr-due: 2022-04-12 -sr-interval: 19 -sr-ease: 272 ---- -#review -# Domain Driven Design - ->A method of designing software by designing models of the domain and creating software which conforms to those models - -Ubiquitous language -> The language a team agrees on to describe ideas in the problem domain -- This laguage becomes more and more refined as it is used -- This reduces misunderstandings - -Diagram: -```mermaid - flowchart LR - subgraph Tactical Design Tools - subgraph Service - direction TB - B(Project) - C(Layers) - D(Modules) - E(Design Patters) - F(OOP) - G(Classes) - H(Objects) - I(Exe, jar, zip) - end - end -``` - -``` mermaid - flowchart LR - subgraph Strategic Design Tools - direction LR - Domain-->Sub-Domain1-->Service1 - Domain-->Sub-Domain2-->Service2 - Domain-->Sub-Domain3-->Service3 - end - -``` \ No newline at end of file diff --git a/content/notes/Entity Relationship Diagrams.md b/content/notes/Entity Relationship Diagrams.md deleted file mode 100644 index e166ca71e..000000000 --- a/content/notes/Entity Relationship Diagrams.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -aliases: ERD, ERDs ---- -# Entity Relationship Diagrams -![[Pasted image 20220328165256.png]] - -cardinality -identifying vs non identifying relationship - -labels are important - but not always needed - -associative entity => changes many to many relationship with additional relationship - -## 1 subtypes -![[Pasted image 20220328165640.png]] -![[Pasted image 20220328165656.png]] - -uses: -- model mutual exclusivity -- better for modelling not for implementation - -## 2 parallel relationship -![[Pasted image 20220328165851.png]] - -could model as separate relationships via staff subtypes -not very common - -![[Pasted image 20220328165944.png]] -also an example of recursive many-to-many relationships - -## 3 recursive relationship -labels are critical -usually 1:M can be 1:1 or M:M -![[Pasted image 20220328200337.png]] - -## 4 dealing with data history -![[Pasted image 20220328200434.png]] - -could be many to many relationships:![[Pasted image 20220328200517.png]] - -so associative relationship: ![[Pasted image 20220328200536.png]] - - -what do we require: -- for the current point in time -- an histroical record how ⇒ must be selecetive to not use up to much space \ No newline at end of file diff --git a/content/notes/Evaluating designs.md b/content/notes/Evaluating designs.md deleted file mode 100644 index ce2981d40..000000000 --- a/content/notes/Evaluating designs.md +++ /dev/null @@ -1,187 +0,0 @@ ---- -sr-due: 2022-04-07 -sr-interval: 10 -sr-ease: 210 ---- - -tags: #review - ---- -#### Review questions -1. what are two of the five (PGRCW) isses to consider when evaluating designs -- precision and reliability - - are your evaulationg repeatable - - are they accurate -- generalizability - - do your findings apply to the real world -- realism - - do you results apply tot he real world -- comparison - - better than just "do you like it study" - -3. what are the two styles of evaluation. How do they differ -- ~~qualitative and quantitative~~ -- field and lab studies - -4. when would you use a qualitative methods and when would you use a quantitative method -- qualitative when comparing designs -- quantitative when evaluating a single design - -5. what are two stages of design and in each cycle which type of method should you use -- design stage qualitative -- implentation quantitative - -6. give a brief description of one method of evaluation. -- feedback from experts -- usbility studies -- observation -- simulation/maths -- surveys/focus groups -- comparitive experiments - ---- - -# Evaluating-designs -Why to evaluate using 'outside' people: -- how do we know if a [[Prototyping|prototype]] is good -- designer/developers are not 'fresh' -> they already have experience with the product -- designer/developers don't know what real users will do - -## Issues to consider -- Reliability/precision - - how accurate is your study? - - Is is reproducible -> if it was repeated, would you get the same result -- Generalizability - - Is your sample representative -- Realism - - Would observed behaviour also occur in the wild -- Comparison - - Shows how different options were recieved - - rather than a "people liked it" study -- work involved/efficiency - - How cost efficient are your methods - -## Factors to consider when choosing an evaluation method -- Stage in the cycle at which the evaluation is carried out -> (design / implementation) -- Style of evaluation -> (lab / field) -- Level of subjectivity or objectivity -- Type of measurement -> (qualitative / quantitative) -- Information provided -> (high-level / low-level) -- Immediacy of response -> (real-time / recollection of events) -- Level of interference implied -> (intrusiveness) -- Resources required -> (equipment, time, money, subjects, expertise, context) - -## Styles of evaluation -##### Laboratory Studies -- 1st step: Designer evaluates his/her UI -- Specialised equipment for testing available -- Undisturbed (can be a good or bad thing) -- Allows for well controlled experiments -- Substitute for dangerous or remote real-world locations -- Variations in manipulations possible / alternatives - -##### Field Studies -- Within the actual user’s working environment -- Observe the system in action -- Disturbance / interruptions (+/-) -- Long-term studies possible -- Bias: presence of observer and equipment -- Needs support / disturbs real workflow - -## Quantitative vs Qualitative methods -##### Quantitative Measures -- Usually numeric -- E.g. # of errors, time to complete a certain task, questionnaire with scales -- Can be (easily) analysed using statistical techniques -- Rather objective -- Most useful in comparing alternative designs -- Test hypotheses -- Confirm designs - -##### Qualitative Measures -- Non-numeric -- E.g. survey, interview, informal observation, heuristic evaluation -- Difficult to analyse, demands interpretation -- Rather subjective -- User’s overall reaction and understanding of design -- Generate hypotheses -- Find flaws - -## Stage in cycle -##### Design Stage -- Only concept (even if very detailed) exists -- More experts, less users involved -- Greatest pay-off: early error detection saves a lot of development money -- Rather qualitative measures (exceptions: detail alternatives; fundamental questions, ...) - -##### Implementation -- Artefact exists, sth. concrete to be tested -- More users, less experts involved -- Assures quality of product before or after deployment; bug detection -- Rather quantitative measures (exceptions: overall satisfaction, appeal, ...) - -## Methods -### Usability studies -- Bringing people in to test Product - - Usage setting is not ecologically valid - usage in real world can be different - - can have tester bias - testers are not the same as real users - - cant compare interfaces - - requires physical contact -### Surveys and focus groups -+ quicly get feedback from large number of responses -+ auto tally ressults -+ easy to compare different products -- responder bias -- Not accurate representation of real product -* e.g., ![[Pasted image 20220316130318.png]] -* Focus groups - * gathering groups of people to discuss an interface - * group setting can help or hinder - -### Feedback from experts -- [[Peer critique]] -- [[Dogfooding]] - - Using tools yourself -- [[Heuristic Evaluation]] - - structured feedback - -### Comparative experiments -- in lab, field, online -- short or long duration -- which option is better? -- what matters most? -- can see real usage -- more actionable - -### Participant observation -- observe what people do in the actual evironment -- usually more long term - - find things not present in short term studies -- [[Observation]] - -### Simulation and formal models -- more mathmatical quantitative -- useful if you have a theory to test -- often used for input techniques -- can test multiple alternatives quickly -- typically simulation is used in conjugtion with [[monte carlo optimisation]] - -## Query techniques -- [[Interviews]] -- questionnaires - - less flexible - - larger samples possible - - design of questionnaire is for expert only - - use of standard (proven) questionnaires recommended - - types of questions: - - general (age, gender) - - open ended - - scalar (e.g., likert-like scales) - - multiple choice - - ranking - -## Users -- users can come up with great ideas - - lead user -> need specific soluton that does not exist -> often make up their own solution - - extreme user -> use existing solution for it's intended purpose to an extreme degree - - typical user -> \ No newline at end of file diff --git a/content/notes/Extreme programming (XP).md b/content/notes/Extreme programming (XP).md deleted file mode 100644 index 38d239cff..000000000 --- a/content/notes/Extreme programming (XP).md +++ /dev/null @@ -1,35 +0,0 @@ ---- -sr-due: 2022-04-08 -sr-interval: 17 -sr-ease: 250 ---- - - -tags: #review - ---- - -# Extreme programming (XP) - -^e9fd09 - -take current industry practices to the extreme -- focus of proven industry practices -- combine them innovatively to get better results - -##### Values and principles -communication, simplicity, feedback, courage. -- Planning -> based on user stories -- Testing -> thorough testing at every step -- Pair programming -> watch, inspect, and trade off -- Simple designs -> based on agile modelling principles -- Refactoring -> redo and clean up as you go -- Collective code ownership -> egoless development, anyone can review and improve code -- Continuous integration -> grow the software continuously -- On-site customer -> get sign-off as you go -- System metaphor -> what should the final system look like? Small releases given to users frequently -- Forty-hour work week -> don’t overload the developers -- Coding standards -> follow industry standards for code - -##### Three ring project approach -![[Pasted image 20220308134047.png]] \ No newline at end of file diff --git a/content/notes/Faking it Wizard of OZ.md b/content/notes/Faking it Wizard of OZ.md deleted file mode 100644 index 51a91bb14..000000000 --- a/content/notes/Faking it Wizard of OZ.md +++ /dev/null @@ -1,58 +0,0 @@ -# Faking it Wizard of OZ - -making interactive app quickly with minimal code - -simulate interactive behaviour with human operators - -- make interactive app without much code - - front end interface - - remote wizard controls user interface - - makes sense with is faster/cheaper/easier than making the real thing -- get feedback from users people - - hi-fi users think its more real - - low-fi: more license to suggest changes - -## 1 making wizard protoypes -- find scenarios to protoypes -- create UI skeleton -- develop hooks for wizard input -- decide where and how the wizard will provide input - - remember not to fake stuff that it not feasible in real life -- rehearse wizard rile with colleague - -## 2 running wizard protoypes -- practivce with friend -- recruit users - -- two roles: - - facilitator ⇒ pprovides tasks and takes notes - - wizard ⇒ operaties interface - -- user feedback - - think aloud - - retrospective - - heuristic evaluation - -- debrief users - - -## 3 used throughout development -user can do less and less and the prototyp comes closer to realisation - -## 4 advatages -- fast -- variable -- more real than papar prototypes -- finds bugs and pronlems with design -- places user at center -- can envision challenging to built application -- ability to look foward and "use" tech that isn't created yet - - -## 5 Disadvatages -- simulations may misrepresent otherwire imperfect tech -- mya simulate techs that not not exist (and mnay never) -- require training and can be inconsistent -- playing the wizard can be exhausting -- some features are difficult to simulate -- may not be appropriate diff --git a/content/notes/Faking it video prototyping.md b/content/notes/Faking it video prototyping.md deleted file mode 100644 index d6c7c6135..000000000 --- a/content/notes/Faking it video prototyping.md +++ /dev/null @@ -1,37 +0,0 @@ -# Video prototyping - -## 1 benefits -- cheap and fast -- great communication -- can serve as spec for devs -- ties interface design to tasks - -## 2 fidelity -low-fi 2-5min brainstorm -mid-fi 1-4 paper prtotypes video -hi-fi slick +fancy for investors/management - -## 3 shows -- like a storyboard, the whole tasks - - motivvationa and success -- draw on tasks you've observed -- illustrate importand tasks -- help scope minimum viable poduct -- forces you to make design decisions in a new way - -## 4 steps -- outline (maybe use storyboards) -- fin to extemporize -- equiment - - a camera (not fancy needed) - - people - - realistic location -- focus on the message more than production values - -## 5 considerations -- silent(with title cards) or with audio - - audio can be finicky -- interface can be anything - - mockups, paper prototypes, code -- can show success and failure of interfaces an failure -- edit as little as possible (time consuming) \ No newline at end of file diff --git a/content/notes/Git Cheat Sheet.md b/content/notes/Git Cheat Sheet.md deleted file mode 100644 index ca90dbf90..000000000 --- a/content/notes/Git Cheat Sheet.md +++ /dev/null @@ -1,43 +0,0 @@ -#CheatSheet -# Git Cheat Sheet -#### 0.1.1 Commands - -- Clone -> create local copy of remote repo -- Commit -> save changes to local repo - - Packages logically related collection of changes and save the permanently is repos history - - Each commit should address single well defined task - - Commits should be small and regular - - Should contain a brief, informative, message - - one line -> <50 (commit needing more than this are likely too large) - - multi line -> <72 - - well defined, shared terminology - - consider what other devs need to know -- Stash -> temporarily store uncommited changes -- Push -> Upload changes from local repo to remote -- Pull -> Download and merge changes from remote repo into local repo (fetch + merge) -- Merge -> Merge changes from one brach into another - - merge when: - - pulling changes from remote into your repo - - merging from branch into main codebase - - Can merge any branch into any other branch - - good idea to regularly rebase specialised persistent branches to keep them in sync with the more general main codebase - - rebase topic branches before merging into main - - helps to deal with merge conflicts - - only branch is broken if you mess up - - can test for breakage before merging to main - - Merging is usually automatic - - sometimes merge algorithm can't resolve conflicting changes to the same code - - e.g., two devs change the same method at the same time - - conflict must then be manually resolved - - All VCS will check that your repo is up to date before pushing, and force you to push if not -- Tag -> name a particular commit e.g., for a release - -#### 0.1.2 Terms -- Head -> most recent commit on Current branch --[[Branch]] -> Split current dev path into two to work on e.g., a bug or a feature -- Repository -> Where the codebase/file are stored ^3b3a5d - - Contains meta-data about the previous vesions etc -- Merge commit -> commits which are derived from multiple parent commits -- Git tag -> e.g., v 1.0 - - cannot be move by commits - - record metadata \ No newline at end of file diff --git a/content/notes/HCI Big Picture.md b/content/notes/HCI Big Picture.md deleted file mode 100644 index 3570a0dcd..000000000 --- a/content/notes/HCI Big Picture.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sr-due: 2022-04-11 -sr-interval: 28 -sr-ease: 270 ---- -tags: #review - ---- -# HCI Big Picture - ->HCI is the cycle of design, implementation, evaluation of user interfaces - -![[Pasted image 20220301175640.png|300]] - ->"fail fast so you can succeed sooner" - -**Focus on people** - -Good design is good -Bad design costs lives, money, time -Bad design can be easily avoided using basic ideas like consistency and feedback - -Joy of good design: When interaction becomes "invisible" - intuitive** \ No newline at end of file diff --git a/content/notes/Heuristic Evaluation.md b/content/notes/Heuristic Evaluation.md deleted file mode 100644 index 4791a84af..000000000 --- a/content/notes/Heuristic Evaluation.md +++ /dev/null @@ -1,120 +0,0 @@ -# Heuristic evaluation ->"Heuristics are strategies derived from previous experiences with similar problems" -jacob nielsen and rolf molich - -help find usability problems -small set of 3-5 evaluators examine UI -independently check for compliance with usability principles -different evaluators will find different problems -evaluators only communicate afterwaards -findings are aggregated at the end - -![[Pasted image 20220322102933.png]] - -## 1 when? -- as part of need finding -> use experts to critique existing solutions -- before user testing -> identify minor issues before user testing -- before redesigning -> learn what works and what should change -- when you know there are problems but you need evidence -> "provide you with ammunition for design" -- before release -> smooth off rough edges - -## 2 What -### 2.1 Process -#### 2.1.1 Overview -Helps find problems in design -- 3-4 evaluators examine UI - - independent reviewers check for compliance with usability principles - - each evaluator will find different problems - - evaluators only communicate afterwards and the findings are aggregated -can perform on working UI or sketches - -#### 2.1.2 Phases -1. pre evaluation training ⇒ give evaluators needed domain knowledge and information on the scenario -2. evaluation ⇒ individuals evaluate then aggregate result - 1. first as individuals - 2. then sit all together and aggregate -3. Severity rating ⇒ determine how severe each problem is (priority). Can do first individually and then as a group -4. Debriefing ⇒ review with design team - -#### 2.1.3 Individual -dont look search for heuristics individually -just go through the app (like a user). If we find issues, we assign them to categories - -step through design several times -- examine details, flow, an architecture -- consult list of usability principles -- … and anything else that comes to mind - -which principles -- Nielsen's heuristics -- category specific heuristics - - e.g., design goals, competitive analysis, existing designs - -use violations for redesign/fix problems - -multiple evaluators because no one finds everything -some will always find more than others (Rule of thumb 5 evaluators find ~75% of problems) - -#### 2.1.4 Severity rating -- independently estimate after viewing -- allocate resources to fix problems -- estimate need for more usability tests - -0. not problem -1. cosmetic problem -2. minor usability problem -3. major -4. catastrophe - -#### 2.1.5 Debreifing -- with evaluators observers and dev team -- discuss general characteristics of UI -- suggest potential imporvements -- dev team estimate effort to fix -- brainstorm solutions - -### 2.2 Nielsen's ten heuristics -visibility of system status -match between system and world -user control and freedom -consistency and standards -error prevention -recognition rather than recall -flexibility and efficiency of use -aesthetic and minimalist design -help users recognize, diagnose, and recover from errors -help and documentation - -### 2.3 Heuristic evaluation vs user testting - -heuristics | user testing ------------------ | -------------- -faster | slower -1-2 hrs each | -results pre-interpreted | -^ done by experts | -less accurate | more acurate -does not take into account actual users | can find issues that experts might not have -value to alternate methods -^ find dfferent issues - - -![[Pasted image 20220316101636.png]] - - -### 2.4 Extra tips how to individual -- at least two passes each - - first get get feel for flow - - second to focus on specific elements -- if a system is "walk up and use" or evaluators are already domain expers ⇒ no assistance is needed - - otherwire might supply evaluators with scenarios -- each evaluators should list issues separately -- risk of repeating problematic aspect -- may not be possible to fix all problems -- where problems may be found - - single location in UI - - two or more locations that need to be compared - - problem with overall structure - - something is missing - - ambiguous with early prototypes - - sometimes .... \ No newline at end of file diff --git a/content/notes/Heuristics Evaluation Assignment.md b/content/notes/Heuristics Evaluation Assignment.md deleted file mode 100644 index 4aa535d19..000000000 --- a/content/notes/Heuristics Evaluation Assignment.md +++ /dev/null @@ -1,121 +0,0 @@ -[[Jet - Ohyay]] -[[Jet -Discord]] -[[Combined evals]] -# Skype Heuristic Evaluation -Jet Hughes 9474308 - -Note: I did not recieve the Evaluation from Cadence until Thursday night and 5:52pm - -## 1 Abstract -The purpose of this evaluation was to uncover existing usability and functionality issues with the Skype app, so that it's usabilty can be improved. Heuristic Evaluations were carried out by three individuals according to Jakob Nielsen's ten design heuristics and a severity scale of 0 (not an issue) to 4 (usability catastrophe). - -Their tasks were to set up and carry out a meeting using the app, and to look out for violations of Neilsens ten heuristics. - -The key findings of this evaluation revealed that while the app is mostly usable, there are a few major issues that need to be fixed. - -## 2 Executive summary -![](https://i.imgur.com/hXWTS8G.png) -![](https://i.imgur.com/syuCmSz.png) -![](https://i.imgur.com/VmrZlby.png) - - -The skype app is one of the most used online messaging and video call desktop applications. It allows users to "make free video and one-to-one and group calls, send instant messges and share files with other people on Skype" (_What Is Skype? | Skype Support_, n.d.). - -In order to set up a meeting the user needed to press the Meet now button which is visible in many places. To add more participants the use can either call a group chat directly, or share a link to the meeting. - -In addition to many minor issues, the evaluators were able to find multiple major usability issues within the app. The three most severe issues were: - -**Finding 1: Visibility of system status** The windows OS close window button clooses skype without leaving the meeting. It opens the small floating window. This is not so bad, however, when the user closes the floating window, the user does still not leave the meeting, and is still visible to other users while having no indicator whatsoever that they are still in a call. This is a major issues as it is a privacy concern for the user. - -It is reccomended that when closing the main window using the windows OS close button, the user should be prompted to leave the meeting. - -**Finding 2: Error prevention and Visibility of system status** When Cadence tried to use the snapshot feature in a video call, the application GUI crashed. However, he was not kicked out of the meeting automatically, and I could still see and here him. Strangely, when he restarted the GUI, it did not show that he was in a meeting (I could still see him the the meeting). Then he called me while we were already in a meeting together (from my perspective). When I accepted his call, I was kicked out of my current meeting and added to the new one. - -It is stongly reccomended that this issue is fixed ASAP. The GUI needs to be properly linked to the calls. - -**Finding 3: Recognition rather than recall** Cadence was unable to find how to add a new contact. He was able to find a way to share a link to his profile. However In my GUI, I was very clear how to add a contact. The buttonw was displayed very prominently at the top of the contacts list. This seems to hint at an underlying issues that the GUI is not consistent across users. It is relevant to note that Cadence was using Linux and I windows. - -There are two recommendation here. Firstly, the linux app should be changed so that it is easy. Secondly, consistency across operating systems should be made taken into account. - -## 3 Acknowledgements -Group Members: -- Jet Hughes -- Cadence Ember -- Bradley Francis - -## 4 Appendix -### 4.1 Combined - -| Heuristic | Severity | Location | Issue | Recommendation | -|:-------------------------------------------------------------|:---------------------------|:----------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| visibility of system status | 3 | Call | The the close window button does not leave the meeting. It pops up the small view. If the user closes this window. The user still does not leave the meeting and there is not GUI | make closing the windows prompt the user if they want to leave the meeting | -| error prevention | 3 | Call | The application crahed when cadence tried to take a snapshot. Then I could still see him even though he didn't know he was still in the meeting | The snapshot feature should not cause a crash. And when the GUI closes, the user should leave the meeting | -| Recognition rather than recall | 3 | N/A | I do not know how to add somebody else as a contact. I found a way to share a link to my profile, but I don’t know how to use a link that was shared with me. | There should be clear and obvious steps on how to add a contact. If the person has no contacts then the buttons should be displayed more prominently. | -| Visibility of system status | 3 | Call | After Skype restarted from the snapshot button crash, the interface seemed like I wasn’t in a call: there was no call overlay, I couldn’t see or hear the other person, and the buttons prompted to start a call rather than stop it. However, my partner could actually see and hear me the whole time, without me knowing! | The application should always tell you when you are in a call. | -| User control and freedom | 3 | Private conversation | Logging out and logging in again permanently deletes the entire private conversation on your side without warning. | It should remember the conversation, or if this isn’t possible, it should warn you about the consequences before you log out. | -| Visibility of system status | 3 | Call | If a skype window is closed while in a audio or video call, you remain in the call, despite the app being closed. | Either have a warning that the app is closing but you will remain in the call, or have a warning that closing the app will terminate your connection to the call | -| Visibility of system status | 2 | Audio/video settings | It is not clear whether or not the microphone test is running | There should be a visible indicator showing that the microphon test is running | -| Visibility of system status | 2 | Screenshare | The only indicator that you are sharing your screen is the button changing from “start sharing” to “stop sharing”. It is easy to forget you are sharing, which could potentially cause huge embarrassment! | There should be a permanent indicator that is visible even while using other applications. | -| Help users recognise and recover from errors | 2 | Account creation | You cannot use a PNG image as a profile picture, only a JPEG image. | Allow PNG images too, or automatically convert them when the user tries to pick them. | -| Flexibility and efficiency of use | 2 | Audio/video settings | When adjusting your audio and videos settings the setting for your webcam is hidden | It should be moved up so the use doesn't have to scroll | -| recognition rather than recall | 2 | Call | After opening the sidebar during a call there is no indication of how to hide it | There should be a button to close the sidebar during a call | -| User control and freedom | 2 | Mini Viewer | When ‘minimising’ Skype into a mini-player while on video call, the icon for screen-share is visible, and easily confused with the ‘maximise’ button to return the screen to the normal viewer | Have the button for screen share clearer of its purpose, and have a resize option when in mini-player | -| Match between system and the real world | 2 | Contacts list | Contacts who have sent you a message are not displayed in the “chats” section until you send a message back. | Text chats should always be displayed in the text chats section. | -| consistency and standards | 2 | Call | When one participant enters together mode, it force all the participant into together mode. But the users must all individually leave together mode. | It should be made clear that this is how is works as this was unexpeted behaviour | -| Flexibility and efficiency of use | 2 | Call | To click the horizontal dot menu in the bottom left the user must mouse over the react button which opens a popup. This menu usually closes after the mouse is moved off but sometimes it stays | The react menu should be moved or the mouse over function should be fixed | -| User control and freedom | 2 | Call | My partner has the ability to use a custom background image, but I don’t have this feature on my end. | Everybody should have the feature! I don’t know why I don’t have it. | -| Match between system and the real world | 2 | Private conversation | There is a feature to start a private conversation. Does this imply that conversations are usually not private? | The application should describe what a private conversation means, and explain whatever the downsides are that mean that it can’t be the default option. | -| Aesthetic and minimalist design | 2 | Call | When switching applications, Skype opens a floating window to contain the call, which will overlap other applications. | This feature is helpful but there needs to be a way to permanently dismiss it so people can work while in a call. | -| Consistency and standards | 2 | N/A | Quitting and restarting the application caused me to be logged out. | It’s a program that is installed on my computer, so it makes sense to keep me logged in. | -| recognition rather than recall | 2 | Call | not clear how to exit together mode | Have some indicator of | -| User control and freedom | 2 | Text chat | You cannot send a message that starts with a slash. | You should be able to send messages starting with a slash. | -| Recognition rather than recall | 2 | General | The toolbar that typically runs along the top of the screen is only available/viewable on the app after pressing alt, and making any action outside of the toolbar removes it again | Have an option to toggle toolbar on/off, and/or make it clearer that alt engages the toolbar | -| Help and documentation | 2 | General | To get help with Skype, the toolbar has to be toggled or settings must be opened and navigated through to find the help section | Have a more easily accessible help button, perhaps near the notifications/create group .etc | -| Visibility of system status | 2 | Chat | When removing a message, it is not made clear whether it will remove the message for everyone, or just yourself | Clarify that removing the message removes it for all participants | -| Flexibility and efficiency of use | 2 | Chat | To view bookmarked messages the user must navigate through their own profile to the bookmarks tab, where all bookmarks from all chats are kept, unsorted | Have an option to view bookmarked chats from certain groups, or have sorting criteria (date, group etc) | -| Aesthetic and minimalist design | 1 | Profile | When trying to click on your profile, if the status symbol is clicked a dropdown menu appears that gives you the ability to set your status (active, away, DnD etc), but this option is already included in the main dropdown from clicking onto your profile | Remove the separate function to help mis-click prevention | -| Match between system and the real world | 1 | DnD popup | When entering Do Not Disturb, a pop-up notifies you that you will not receive notifications while this is on. The popup has three options to exit it, ‘OK’, ‘View Settings’, and ‘Don’t ask me again’ | Improve the wording. Instead of Don’t ask me again, have ‘don’t show me this again’ or something of the like | -| User coontrol and freedom | 1 | Mini floating window | There is no dedicated button to maximise the floating window | A dedicated button should be added to maximise the floating window | -| Match between system and the real world | 1 | New Group | When a new group is created, there are two options presented for adding people to the group. There is ‘invite’ and ‘add people’ as two separate options. One option is for adding people through a link, and one is for inviting contacts. However, the add people option also contains an option for adding via link. | Remove the invite option, as both are covered under add people. | -| Consistency and standards | 1 | General | Throughout the app, there are multiple different designs for the add members button. There are three different actions that can be taken to add members to a group, and they all have different icons | Generalise the icons so that they all follow the same design, that way they are recognisable throughout the application | -| user control and freedom | 1 | Audio and video settings| cadence cannot add a custom background | It should at least say why he cant | -| Flexibility and efficiency of use | 1 | Call | When a user is using multiple displays, even if the large skype window is visible the floating windows opens | The floating window should no open in this situation | -| Help and docmentation | 1 | Call | When in a call by yourself the record button is grayed out and not pressable. There is no indication as to why | On mousing ove the button it should say why it is grayed out | -| Aesthetic and minimalist design | 1 | Account creation | On one of the screens, the “continue” button must be clicked twice in order to continue. | The continue button should continue. | -| help and documentation | 1 | Chat | no information about what private mode is | more information should be iven to the user | -| Aesthetic and minimalist design | 1 | Top of the screen | Informational banners appear here and do not go away until they are interacted with. They do not display helpful information. Sometimes duplicates should appear. | The banners should go away when they are no longer relevant. | -| Match between system and the real world | 1 | Call | “Together mode” is poorly named and does not accurately indicate what it will do. | This feature could have a name like “background scene”, or tooltip text, or some other help mechanism. | -| Match between system and the real world | 1 | Polls | Somebody clicking or unclicking a poll option sends me a notification sound. These poll events contain little information on their own, so there’s no reason for them to notify immediately. | Do not notify for people clicking polls. | -| Match between system and the real world | 1 | Contacts list | There is a feature to “send a contact”, though this offers to send a person their own contact card. | Do not offer to send people their own contact cards. | -| Consistency and standards | 1 | Call | The “view” button has an inconsistent appearance. It activates a dropdown but looks like a functional button. | Add an arrow indicator to the button so that it matches the rest of the application’s conventions. | -| Consistency and standards | 1 | Polls | It’s not obvious that a poll option highlighted in blue indicates that you should clicked that option. | Poll options should be represented as traditional checkboxes, rather than weird coloured rectangles. This also makes it clear that you can click again to undo your vote, which is already a feature. | -| Consistency and standards | 1 | Main menu | There is an option to “download the app”. I am already using the desktop application. | The text should state “phone app” to contrast it from desktop app. | - -### 4.2 Single -#### 4.2.1 Bradley -![](https://i.imgur.com/bAw0htq.png) - -#### 4.2.2 Jet - -| Heuristic | Severity | Location | Description | Recommendation | -|:------------------------------------|:-----------------|:-----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------| -| Visibility of system status | 2 | Audio/video settings | It is not clear whether or not the test is running | There should be a visible indicator showing that the microphon test is running | -| Flexibility and efficiency of use | 2 | Audio/video settings | When adjusting your audio and videos settings the setting for your webcam is hidden | It should be moved up so the use doesn't have to scroll | -| User coontrol and freedom | 1 | Mini floating window | There is no dedicated button to maximise the floating window | A dedicated button should be added to maximise the floating window | -| Flexibility and efficiency of use | 2 | Video call | To click the horizontal dot menu in the bottom left the user must mouse over the react button which opens a popup. This menu usually closes after the mouse is moved off but sometimes it stays | The react menu should be moved or the mouse over function should be fixed | -| Flexibility and efficiency of use | 1 | Video call | When a user is using multiple displays, even if the large skype window is visible the floating windows opens | The floating window should no open in this situation | -| Help and docmentation | 1 | Video call | When in a call by yourself the record button is grayed out and not pressable. There is no indication as to why | On mousing ove the button it should say why it is grayed out | -| recognition rather than recall | 2 | Video call | After opening the sidebar during a call there is no indication of how to hide it | There should be a button to close the sidebar during a call | -| recognition rather than recall | 2 | Video Call | not clear how to exit together mode | Have some indicator of | -| visibility of system status | 3 | Video Call | The the close window button does not leave the meeting. It pops up the small view. If the user closes this window. The user still does not leave the meeting and there is not GUI | make closing the windows prompt the user if they want to leave the meeting | -| error prevention | 3 | Video Call | The application crahed when cadence tried to take a snapshot. Then I could still see him even though he didn't know he was still in the meeting | when the GUI closes, the user should leave the meeting | -| consistency and standards | 2 | Video Call | When one participant enters together mode, it force all the participant into together mode. But the users must all individually leave together mode. | It should be made clear that this is how is works as this was unexpeted behaviour | -| user control and freedom | 1 | Video call | cadence cannot add a custom background | It should at least say why he cant | -| help and documentation | 1 | Video call | | | -| help and documentation | 1 | Chat | no information about what private mode is | more information should be iven to the user | - -#### 4.2.3 Cadence -![](https://i.imgur.com/BX9c1ZV.png) - -## 5 References -_What is Skype? | Skype Support_. (n.d.). Microsoft. Retrieved April 1, 2022, from https://support.skype.com/en/faq/fa6/what-is-skype \ No newline at end of file diff --git a/content/notes/How is safe enough for autonomous vehicles.md b/content/notes/How is safe enough for autonomous vehicles.md deleted file mode 100644 index a24003752..000000000 --- a/content/notes/How is safe enough for autonomous vehicles.md +++ /dev/null @@ -1,12 +0,0 @@ -# Case study 3 Autonomous vehicles -- How safe is safe enough? - - its impossible to be perfect - - discalimer about driving assistant in teslas - - - -Not driving youself massively reduces reaction time - -Allow user to set ethical bias of their vehicles AI - - -![[Pasted image 20220310114053.png]] \ No newline at end of file diff --git a/content/notes/Integrated Development Environments.md b/content/notes/Integrated Development Environments.md deleted file mode 100644 index 77640b4de..000000000 --- a/content/notes/Integrated Development Environments.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -aliases: IDE, IDEs, Integrated Development Environment, Integrated Development Environments -sr-due: 2022-04-28 -sr-interval: 36 -sr-ease: 300 ---- -#### Review Questions -1. How is a source code editor different from an IDE - - ---- -#review -# Integrated Development Environments - -## Source code editors -- editor applications to help software development -- provide features that help editing code - - auto indent, bracket matching, syntax hl, auto completion, rapid navigation - - run/test code - -## Integrated dev env -- allow you to remain within one application when carrying out software development work - - can edit source files - - can compile source files - - can run debugger - - integrates version management -- some attach tools to running applications - -### LSP - syntax highlighting -- allows IDE's to communicate with a "language enging" -- ides dont need - -shift from syntac to semantics -e.g., -- vs code chck file on opening - - lsp reports type mismatches -- rich editor functionality - - autocompletion with appropriate context - - information displayed on mouse hover - - jumping to definitions on mouse hover - - safe refactoring -> better than blind search and replace - - diagnosticso -> e.g., display results of unit tests within editor - -### Navigation -- within files - - bracket matching - - block folding -- multi file - - multiple files at the same time - - rapidly jump between files - - search across all files -- collaboration e.g., live sharing - -### Modern IDEs -- microsoft - - vscode -> free open source, highly popular - - visual studio -> integrates mobile and cloud development -- java enivronments - - eclipse - early leader in java, supports other languages - - netbeans -> also includes web dev tooling -- jetbrains -> IntelliJ IDEA, pycharm, phpstorm -- google's android studio -> official android IDE -- apple's Xcode -> free, macOS/iOS focus - -## Early programming -- dedicated machines - - punched card programmer: separate machine from computer than reads cards -- punched cards recore code and or data in binary - - grid of positions, each representing a binary digit (bit) - - each position in punches out, or not -- analgogue electronic devices where you phsyicall wire things up - - gaining interest now for use in machine learning - -### Bootstrapping -- already built tools can be used to builder better tools for building better tools etc. -- e.g., first assembler was made in maching code. But after that they could use the assember to make a better assembler - -### Early dev environments -- command line based - - text based terminals - - command shell is the running application -- Can use terminal to drive interactive languages - - can edit, store software code - - can compile cose and run resulting executables -- it is still practical to do software development this way - - vim etc \ No newline at end of file diff --git a/content/notes/Jet - Ohyay.md b/content/notes/Jet - Ohyay.md deleted file mode 100644 index c43991f5f..000000000 --- a/content/notes/Jet - Ohyay.md +++ /dev/null @@ -1,13 +0,0 @@ -# ohyay -| Heuristic | Severity | Location | Description | Recommendation | -|-|-|-|-|-| -| aesthetic and minimalist design | 1 | General | User interface is ugly | Should be made to look better | -| flexibility and efficieny of use | 2 | In a room | not clear to find where to sign out | Should add a button to sign out from within a room | -| visibility of system status | 1 | In a room | There is not indication about which rooms you should be using | Should be able to restrict users to only enter certain rooms | -| user control and freedom | 2 | In the cafe | There is no way to change, mute, or adjust he volume of the music | A button/group of button should be added for this | -| flexibility and effieciency of use | 1 | In a room | The buttons for mute, video, share screen etc which are usually (in most video call apps) in the bottom middle of the screen are instead spread out in the top corners | Move them to the bottom middle of the screen | -| recognition vs recall | 2 | In a room | The icon to show and hide the left side bar is not clear | This icon should be changed to be more recogniseable | -| aesthetic and minimalist design | 1 | In the cafe | When at a table in the cafe almost a quater of the screen i taken up by a button to go leave the table | Should be made smaller | -| flexibility and efficiency of use | 1 | Posting a Question | The checkbox to make a question anonymous is very small and the text is not clickable | The text should be made clickable or the checkbox should be made larger | -| recognition vs recall | 1 | In a room | The '+1' icon next to questions is not clearly clickable | Should be made to look more like a clickable button | -| error prevention | 3 | In a room | The pop out button below the step to mic button opens a windows which is completely broken ![](https://i.imgur.com/HIx9CIy.png)| Needs to be fixed or removed | \ No newline at end of file diff --git a/content/notes/Jet -Discord.md b/content/notes/Jet -Discord.md deleted file mode 100644 index 491762e4b..000000000 --- a/content/notes/Jet -Discord.md +++ /dev/null @@ -1,10 +0,0 @@ -# Discord -| Heuristic | Severity | Location | Description | Recommendation | -|-|-|-|-|-| -| visibility of system status | 1 | In a server | Noise suppresion off icon does not make it clear that noise suppresion is off | Should be made more clear | -| flexibility and efficiency of use | 2 | In a server | Not clear where to join calls for new users | Should have a short tutorial which shows this the first time a user enters a server | -| recognition rather than recall | 1 | In a server | Unclear what the "01 25" icon next to the voice channel means ![](https://i.imgur.com/IRx8BkO.png)| should have description on mouse over | -| user control and freedom | 2 | Inbox | No option to close all mentions in inbox | Should add a button to close all mention in inbox | -| flexibility and efficiency of use | 1 | Chat | No bracket (or * _ ~ { ) matching | Should be added | -| user control and freedom | 1 | Chat | No way to customise slash commands | Should be added | -| help and documentation | 3 | Settings | No search bar | A search bar should be addeed | \ No newline at end of file diff --git a/content/notes/Lecture 07 Unit Testing.md b/content/notes/Lecture 07 Unit Testing.md deleted file mode 100644 index 6b0c90b0f..000000000 --- a/content/notes/Lecture 07 Unit Testing.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -sr-due: 2022-04-29 -sr-interval: 26 -sr-ease: 270 ---- - -#review - -# LO's -- undnerstand that testing is useful for detecting bugs -- contrast different types of testting -- descrive the principle of test driven development -- explain how unit tests ar developed -- indicate how languages integreate unit test support -- apppreiciate limitation of software testing - -# Lecture 07 Unit Testing - -### 0.1 [[Testing]] -1. why is testing needed - -2. what are three types of testing - -3. what are some limitations of testing - -### 0.2 [[Test driven development]] -1. what is testing driven development - -### 0.3 [[Unit testing]] -1. Breifly describe unit testing - -2. What is a testing environment. Why is it useful - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/notes/Lecture 08 Debugging.md b/content/notes/Lecture 08 Debugging.md deleted file mode 100644 index 581d9dcc9..000000000 --- a/content/notes/Lecture 08 Debugging.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -sr-due: 2022-04-09 -sr-interval: 8 -sr-ease: 250 ---- -#review - ---- -1. what is a bug -2. debuggers vs debugging -3. common approaches -4. debug symbols -5. debugger operations -6. breakpoint and watch points -7. why technical faults are not always your fault ![[Pasted image 20220329142230.png]] - -# Lecture 8 debugging -[[Debugging]] \ No newline at end of file diff --git a/content/notes/Lecture 09 Documentation.md b/content/notes/Lecture 09 Documentation.md deleted file mode 100644 index 19346994d..000000000 --- a/content/notes/Lecture 09 Documentation.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -sr-due: 2022-04-08 -sr-interval: 8 -sr-ease: 250 ---- -#review -# Lecture 09 Documentation -[[Documentation]] \ No newline at end of file diff --git a/content/notes/Lecture 10 Continuous integration.md b/content/notes/Lecture 10 Continuous integration.md deleted file mode 100644 index 0bd34e032..000000000 --- a/content/notes/Lecture 10 Continuous integration.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -sr-due: 2022-04-11 -sr-interval: 8 -sr-ease: 250 ---- -#review - ---- - -1. explain the term continuous integration -2. describe different purposes for CI -3. indicate how CI jobs are usually triggered -4. understand implications of CI running asynchronously -5. Exlplain how to manage output from CI jobs -6. describe role of stages and jobs within gitlab pipelines -7. indicate how CI specifications are stored - - -# Lecture 10 -[[Continuous Integration]] \ No newline at end of file diff --git a/content/notes/Lecture 10 Design Heuristics.md b/content/notes/Lecture 10 Design Heuristics.md deleted file mode 100644 index f299c95c0..000000000 --- a/content/notes/Lecture 10 Design Heuristics.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sr-due: 2022-04-13 -sr-interval: 10 -sr-ease: 250 ---- -#review - ---- -# Lecture 10 Prototyping and Design Heuristics - -## 1 Wizard of OZ -[[Faking it Wizard of OZ]] -simulating machine behavior with human operators - -## 2 Video prototyping -[[Faking it video prototyping]] - -## 3 Creating and comparing alternatives -create multiple ideas in parallel rather than one after the other -![[Pasted image 20220330105813.png]] -![[Pasted image 20220330110050.png]] - -## 4 Design heuristics diff --git a/content/notes/Lecture 10 Heaps and heap sort.md b/content/notes/Lecture 10 Heaps and heap sort.md deleted file mode 100644 index 0ae40cf73..000000000 --- a/content/notes/Lecture 10 Heaps and heap sort.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -sr-due: 2022-04-08 -sr-interval: 3 -sr-ease: 250 ---- -#review - ---- -# Lecture 10 Heaps and heap sort -## 1 Overview -[[Heap]] - -## 2 Operations -### 2.1 Add element -Assumptions -- access first vacant position -- set (or find) the value $H.q$ stored in any (occupied) position $q$ -- access parent of any given position -- identify when we're at the root -(all in constant time) - -Outcome: Change $H$ by adding x to it, while maintaining the heap conditions - -``` -p <- first vacancy, H.p <- x -while p is not the root and H.parent(p) < H.p do - swap H.parent(p) and H.p - p <- parent(p) -end while - -``` - -### 2.2 Remove the maximum -Outcome: Change H by removing its maximum (i.e., root) value wile maintaining the heap conditions - -``` -v <- H.root -set H.root to be the value stored in the last occupied position -p <- root - -while p has children - if the largest value, H.c of a child of p is greater than H.p then - swap H.c and H.p, p <-c - else - Break - end if -end while - -return v - -``` - - -### 2.3 Complexity -In addition, we move along a branch from an added element up to the root, fixing violations as we go - -In removal, we move from the root down through some branch until all violations are fixed (can only occur if node has children) - -So both loops do most Ο(lg n) - -### 2.4 Storage -![](https://i.imgur.com/04qVrGQ.png#invert) - - - Array -- root at position 0 and children at 1 and 2 -- children of 1 to in 3 and 4, children of 2 go in 5 and 6 - -- first vacant pos --> heap[n] -- value at pos q --> heap[q] -- get parent of q --> parent(q) = (q-1)/2 -- get children of q --> (2 * q) ± 2 -- identify if q is root --> q == 0 - -### 2.5 Implementation - -Use java.util.PriorityQueue - -## 3 Heap Sort -In place and ϴ(n lg n) - -- start with array -- using itself as a heap, add the elements one at a time until all been added -- Then remove them one at a time - the largest elements gets removed first and the place where is needs to be put gets freed from the map - -## 4 Heap vs Merge -heap --> in place, ϴ(n lg n) -merge --> not in place, Ο(n lg n) - -Merge is preferred because - -- MS can take advantage of partially sorted data (hence ϴ() vs Ο()) -- MS memory accesses are good fast -- overwrites allow for optimizations that swaps do not - -extra memory cost of merge sort is negligible - -∴ Merge sort is faster - diff --git a/content/notes/Lecture 10 OOP Concepts and UML.md b/content/notes/Lecture 10 OOP Concepts and UML.md deleted file mode 100644 index 5c925f4be..000000000 --- a/content/notes/Lecture 10 OOP Concepts and UML.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sr-due: 2022-04-10 -sr-interval: 7 -sr-ease: 250 ---- -#review - ---- -1. what is the concept of encapsulation and how is it enforced for objects -2. how does and object refernce differ from a relational foreign key -3. give an example of how difference UML diagram types can be linked when modelling a system - -# Lecture 10 OOP concepts and UML -[[Objects]] - -[[2 UML]] - - - diff --git a/content/notes/Lecture 11 Class diagrams.md b/content/notes/Lecture 11 Class diagrams.md deleted file mode 100644 index cf56d5eef..000000000 --- a/content/notes/Lecture 11 Class diagrams.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -sr-due: 2022-04-08 -sr-interval: 3 -sr-ease: 250 ---- -#review - -# Revision questions -1. What is the purpose of stereotypes in UML? -2. What is multiplicity and how is it represented on associations between classes? Provide a drawn example which uses an association between two classes. -3. How are role names used for associations between classes and when should you use them? -4. Discuss the issues that arise around the use of composition in the context of “cart-like” entities. -5. Describe the relationship between role names and navigability in a class diagram. -6. Explain the difference bewteen a domain class diagram and a system class diagram. - ---- -# Lecture 11 Class Diagrams -e.g., ![](https://i.imgur.com/rFmUs5r.png) -![](https://i.imgur.com/1kO9BDk.png) - - -## 1 Stereotypes -add further meaning to fields and methods -- e.g., << unique >>, << abstrat >>, << interface >>, - -## 2 Packages -group classes together -break system to logical chunks -package diagram, a class diagram with nothing but packages - -![](https://i.imgur.com/UiXZeha.png) - -## 3 Associations -UML anaglogue of ERD relationsips -- multiplicity -- realtionshpa nd role names - -PlUS -- naviagability --> instances of one class can pass messages to instances of another -- several differnt types, e.g., composition, aggregation, associateive classes - -### 3.1 multuplicity -![](https://i.imgur.com/1dSergW.png) -![](https://i.imgur.com/4TKsBKd.png) - -ERDsd effectively only do zero one many -UML can to any non negative integer -default is 1 - -### 3.2 association names -![](https://i.imgur.com/btif86K.png) - -- usuallya verb phrase like "assings", "manages", "enrols in" ... -- more useful is conpetual level diagrams -- optional arrow head () - -### 3.3 Role names -![](https://i.imgur.com/3HEG9yN.png) - -At conceptual level, indicates role of class in association. - -At implementation level: -- implies a field in class at opposite end -- should include visibility -- closely related to navigability - -### 3.4 Navigability -![](https://i.imgur.com/beoNmcQ.png) - -specifies whether we can "navigate from one end of an association to another" -affects how we code access paths between objects - -e.g., -- loan instance can see loanitem instances it contains via private field items -- a loanitem instance can't see loan instance that contains it -- must alwasy include relevant role names -- no arrows = two arrows = bidirectional - -#### 3.4.1 why not always bidirectional - -- more complex code --> many references/collections to manage -- navigation paths are not all equally important - - e.g., "what items are in this loan" vs "what loans does this item appear in" - - determined by requrements and typical usage -- some classes are more "central" - - usually at the "one" end of accociations - - often represent transactional entities e.g., loan, sale, order - - navigability readiates outwards from them - -there are exceptions as always e.g., patron <-> item - - -### 3.5 Aggregation -![](https://i.imgur.com/FI21bfD.png) - -one class is made up of one or more other classes -container and content instances _can_ exist separately -usually implied by multiplicity and navigability - -e.g., -- computer is made u of several components -- library catalogue is made up of many items - - -### 3.6 Composition -![](https://i.imgur.com/2ryJXSM.png) - -stonger form of aggregation -container and content _cannot_ exist separately -usually implied by multiplicity and navigability - -e.g., -- building contains many rooms -- loan includes several items - -- coicident lifetime -- multiplicity at least 1 at both ends -- deleting an containter must also delete all associated contents -- creating a container should also create some contents - - -### 3.7 Associative classes -![](https://i.imgur.com/Rq91xGx.png) -![](https://i.imgur.com/zzOlLV1.png) - -- used for conceptual design -- similar to associative entities - - many to many relationship with additional independent fields - - resolved into class at implementation level - -### 3.8 Specialisation generalisation -![](https://i.imgur.com/kfI2YSe.png) - -class inheritance -- e.g., book and disc are subclasses of (specialise) Item -- inherit all public fields and methods of superclass -- can add their own fields and methods -- Compare with specialisation of actors and use cases - -## 4 Domain class model\ -![](https://i.imgur.com/JFHQOFA.png) - -only modles the associations among concepts from problem domain - -can be at conceptual level or implementation level - -## 5 System class model -![](https://i.imgur.com/KsQuCd5.png) -Models associations among domain objects and system components; implementation level only diff --git a/content/notes/Lecture 11 Continuous Integration 2.md b/content/notes/Lecture 11 Continuous Integration 2.md deleted file mode 100644 index 2cfd122c0..000000000 --- a/content/notes/Lecture 11 Continuous Integration 2.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -sr-due: 2022-04-07 -sr-interval: 3 -sr-ease: 250 ---- -#review - ---- -\ -1. apprecitae that gitlab is a xomplex software -2. Understand where CI jobs scripts get run -3. explain why reposityory servers can host websites -4. Understandhow gitblab dternmimines awhen a CI script failed -5. Describe a way in which CI scrupts scan handle secrets -6. OUtline uses of local git hook scripts - -# Lecture 11 Continuous Integration 2 - -Ci runs pipellines defined in .gitlab-ci.yaml asynchronously - -ci usually tets abd buiolds your prokects - -runs on a repo server -- usuially persistent, internet accessible - -## 1 Gitlab overall architecture -![](https://i.imgur.com/whU7QoF.png) : not in exam -- many different services used - -## 2 Gitlab runners -run CI scripts -- gitlab.com is a cloud computing service -- allows elf hosting which is what CS does - - altitude is a gitlab instance at CS - - servers to host runners that run CI scripts - - servers that host websites, e.g., cspages.otago.nz -- Gitlab can invoke runners that you host - - e.g., to use a particular GPU, or other hardware you have - - GItlab runner itself is a small program written in Go - -### 2.1 Runner architecture - -- runs jobs - - on isolated infrastructure - - ... to maintain secrity -- that is set up on demand - - ... handle load variation -- suits cloud computing - -RHS shows GitLab.com's CI hosting - uses google cloud - -![](https://i.imgur.com/02eqv7A.png) - -![](https://i.imgur.com/RaeYc1I.png) : not in exam - -## 3 How CI chagned website hosting - -- need to share stifacts produced by CI jobs - - using the web to share artefacts is ideal - - so now most repo servers also host websites - - these are static websites: all content is fixed -- CI can run static website generators (SSGs) - - git repo contains source code of website - - CI pipelines transforms souce code into HTML fiels - - HTML files then hosted as a website by repo sever - -e.g., https://cosc202.cspages.otago.ac.nz - - -## 4 Debugging CI scripts - -- first ensure config files YAML is valid - - vuilt in gitlab editor checks YAML as you type -- commands runfrom shell that fail return an exit code - - most unix shells sotre exit code of previous commands in $ - - So if variable $? (return code of prevous command) is non-zero, the previous command failed -- Git lab considers CI job as failed if any command fails - - your shell scripting can choose to hide this exit code - - e.g., `if command supposed to fail; then true; else true; fi` - - Complex scripting? Beste to put script in a file and run it from CI - -## 5 Secrets used by CI scripts -![](https://i.imgur.com/XtCap0P.png) -![](https://i.imgur.com/W2xBi4d.png) diff --git a/content/notes/Lecture 11 Design Heuristics 2.md b/content/notes/Lecture 11 Design Heuristics 2.md deleted file mode 100644 index 5a991b665..000000000 --- a/content/notes/Lecture 11 Design Heuristics 2.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -sr-due: 2022-04-08 -sr-interval: 3 -sr-ease: 250 ---- -#review - ---- - -# Lecture 11 Design Heuristics 2 - -## 1 Show system status -- show system stats - -- feedback depends on response time - - <1s just show outcome - - ~1s feedback that activity is underway - - >>1s show fractional progress time - -- 0.1 seconds --> feels instantaneusly -- 1 second --> about the limit for flow to be uinteruippted -- 10 seeconds --> the limit for keeping users attention - -when: -- when action is requried -- show storage space -- making changes -- next steps --> user input required -- completion --> some task has finished - -![](https://i.imgur.com/QzHRh9Z.png) - -## 2 familiar metaphors and language -![](https://i.imgur.com/sdNv98E.png) -![](https://i.imgur.com/IbIBK5t.png) - -imitating familiar real life - -Categories -- good - - ![](https://i.imgur.com/7wRRBii.png) -- bad - - ![](https://i.imgur.com/vDKOuOo.png) - -## 3 user freedom and control - -wan tt ogive th user the feelin thtey can freelyi explore the app -and the freeodm to control i it - -- general flow -- undo/redo - -e.g., ![](https://i.imgur.com/zF5LDVx.png) -e.g., ![](https://i.imgur.com/eqfs1D6.png) - - - - - diff --git a/content/notes/Lecture 12 Design Heuristics 3.md b/content/notes/Lecture 12 Design Heuristics 3.md deleted file mode 100644 index 9a6ec4da3..000000000 --- a/content/notes/Lecture 12 Design Heuristics 3.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -sr-due: 2022-04-15 -sr-interval: 9 -sr-ease: 270 ---- -#review - ---- - -# Lecture 12 Design Heuristics 3 -## 1 Consistency and standards - -![](https://i.imgur.com/H8rlxo7.png) - -good and bad -- standards (user interface guidelines) are always chaning - -differ between platforms -evolve over time - -e.g., menus - -![](https://i.imgur.com/IfaMADw.png) -![](https://i.imgur.com/HqYzadh.png) - -general look of webpages evolves over time - -### 1.1 Naming and teminology - -![](https://i.imgur.com/3PwEOmn.png) - -this is bad -you can ask users which categories they understand/know about - -### 1.2 Data loss -![](https://i.imgur.com/23IxWiN.png) - -standard to minimise loss - -## 2 Error Prevention - -### 2.1 Bad input - -![](https://i.imgur.com/54tVH7B.png) - -correct human errors -auto completion - -### 2.2 helpful constraints - -![](https://i.imgur.com/n4HT5L9.png) - -### 2.3 Suggestions and autocorrection - -![](https://i.imgur.com/c2l9MWy.png) - -heavily abused by industry -- they can influence suggestions - -### 2.4 Forgiving formatting - -![](https://i.imgur.com/ldZUMer.png) - -- reduce errors -- - -## 3 recognition over recall - -### 3.1 avoid codes - -![](https://i.imgur.com/B8sJxd6.png) - -### 3.2 Recognition with previews or icons - -![](https://i.imgur.com/UBmJl6Y.png) - -### 3.3 use icons that promote recognition - -![](https://i.imgur.com/adjt5nv.png) - -## 4 Flexibility and efficiency - -### 4.1 Choices - -![](https://i.imgur.com/lUBB7EN.png#invert) -![](https://i.imgur.com/1OaTaPg.png#invert) -![](https://i.imgur.com/8KaFDme.png#invert) - -something with immediate effect can use switch -![](https://i.imgur.com/COR8E7w.png#invert) - -![](https://i.imgur.com/EQbB1Ep.png#invert) -![](https://i.imgur.com/QhFssbP.png#invert) -![](https://i.imgur.com/PG2Iu9a.png#invert) - -good defaults - -![](https://i.imgur.com/pj5Ztij.png) - -4.2 shortcuts and advanced options - -![](https://i.imgur.com/0OG7qRx.png) - -ambient information - -![](https://i.imgur.com/s2zyIws.png) - -proactivity - -![](https://i.imgur.com/gmDLWMO.png) -![](https://i.imgur.com/Izu8bQX.png) -![](https://i.imgur.com/hiGeXW3.png) - -## 5 aesthetic and minimalistic design - -![](https://i.imgur.com/Oywxwgq.png) -![](https://i.imgur.com/xgfgEtm.png) - -signal to noise - -![](https://i.imgur.com/6bLaHS6.png) -![](https://i.imgur.com/qF21SST.png) - - - - - - - - - - - - - - - - - diff --git a/content/notes/Lecture 6 Business Functions and Use Cases.md b/content/notes/Lecture 6 Business Functions and Use Cases.md deleted file mode 100644 index 1269f3870..000000000 --- a/content/notes/Lecture 6 Business Functions and Use Cases.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -sr-due: 2022-05-04 -sr-interval: 30 -sr-ease: 250 ---- - -#review -https://blackboard.otago.ac.nz/bbcswebdav/pid-2884153-dt-content-rid-18204846_1/courses/INFO201_S1DNIE_2022/lecture_06_slides.pdf - ----- -# Lecture 06 - Business functions and use cases -[[Approches to systems development]] -1. What are the two main approaches to systems development and how do they differ - -[[Business functions]] -2. What are business functions - -3. What is a use case - -4. What is a use case diagram used for - -[[Use case diagrams]] - - -- dependencies - - includes - - excludes - - requries - -what is the difference between requries and indludes \ No newline at end of file diff --git a/content/notes/Lecture 7 Business process modelling(BPM).md b/content/notes/Lecture 7 Business process modelling(BPM).md deleted file mode 100644 index b4eceee6e..000000000 --- a/content/notes/Lecture 7 Business process modelling(BPM).md +++ /dev/null @@ -1,19 +0,0 @@ ---- -aliases: BPMN -sr-due: 2022-04-25 -sr-interval: 24 -sr-ease: 250 ---- -#review - -# 1 Lecture 07 Business process modelling -## 1 LO's -understand core onepts realted to business process mondelling -learn about commonly used business process modelling notations -understand the elemeents of a UML activity diagram - -1. What is a business process -- [[Business process]] -- [[Business process model]] -- [[Business Process Model and Notation]] -- [[UML]] \ No newline at end of file diff --git a/content/notes/Lecture 7 Personas and Scenarios.md b/content/notes/Lecture 7 Personas and Scenarios.md deleted file mode 100644 index ac92b72c0..000000000 --- a/content/notes/Lecture 7 Personas and Scenarios.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -sr-due: 2022-04-21 -sr-interval: 20 -sr-ease: 250 ---- - -#review - ---- -# Lecture 7 Heuristic Evaluation -[[Heuristic Evaluation]] - -## 1 Review Questions -2. Briefly describe the high level process of a heuristic evaluation - -3. What are the four phases of a heuristic evaluations - -4. Breifly describe the process of an individual during a heuristic evaluation - -5. Name 3 of nielsens ten heuristics (VMUCERFA HH) - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/notes/Lecture 8 Business patterns.md b/content/notes/Lecture 8 Business patterns.md deleted file mode 100644 index 1474b380c..000000000 --- a/content/notes/Lecture 8 Business patterns.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -sr-due: 2022-04-07 -sr-interval: 7 -sr-ease: 250 ---- -#review -# Lecture 8 Business Patterns -[[Entity Relationship Diagrams]] \ No newline at end of file diff --git a/content/notes/Lecture 8 Merge sort 2.md b/content/notes/Lecture 8 Merge sort 2.md deleted file mode 100644 index 0d56b734e..000000000 --- a/content/notes/Lecture 8 Merge sort 2.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -sr-due: 2022-04-06 -sr-interval: 8 -sr-ease: 270 ---- -# 1 #review ---- -# Lecture 8 mergesort 2 -recall definition of merge sort -- pre ⇒ split -- rec ⇒ sort pieces -- post ⇒ merge - -## 1 Complexity -no counters -pre and post pahses are constant and ϴ(n) - -so M(n) = ϴ(n) + 2 * M(n/2) - -does this even help. what if n is odd - -pretend ϴ(n) is $C \times n$ - -$$ -\begin{align*} -M(n) &= C \times n+2 \times M(n/2) \\ -&= C \times n+2 \times (C \times (n/2) + 2 \times M(n/4))\\ -&= C \times (2n) + 4 \times M(n/4) \\ -&= C \times (2n) + 4 \times (C \times (n/4)) + 2 \times M(n/8))\\ -&= C \times (3n) + 8 \times M(n/8)\\ \\ -&= C \times (kn) + 2^k \times M(n/2^k) -\end{align*} -$$ - -ends when we find base case -when we get to $n/2^k = 1$ -we could split earlier. -the work done base case is (bounded by) some constatn D -so if $k$ is large enough that $n/2^k$ is a base case, we get - -$$ -M(n) = C \times (kn) + 2^k \times D -$$ - -how big is $k$ - -$k <=lg(n)$ - -so: -$$ -M(n) ≤ C \times (n lg(n)) + D(n) = ϴ(n lg(n)) -$$ - -which is true - -> In a divide and consiwer algo wher pre and pst processign work are Ο(n) and the division is into parts of size at least n for some contatn c > 0 tge total time complexity is Ο(n lg n) and generally ϴ(n log n) - -## 2 Variations of mergesort - -unite and conquer - -5 | 8 | 2 | 3 | 4 | 1 | 7 | 6 - -5 8 | 2 3 | 1 4 | 6 7 - -2 3 5 8 | 1 4 6 7 - -1 2 3 4 5 6 7 8 - -```java - public static void mergeSort(int[] a) { - int blockSize = 1; - while(blockSize < a.length) { - int lo = 0; - while (lo + blockSize < a.length) { - int hi = lo + 2*blockSize; - if (hi > a.length) hi = a.length; - merge(a, lo, lo + blockSize, hi); - lo = hi; - } - blockSize *=2; - } - } - -``` - -outer loop is executed lg n times, where n is the length of a - -inner loop proceeds until we find a block that "runs out of elements" - -inner loop is having 2 x blocksize added each time, to runs most n/2 x blocksize - -inside inner is call to merge which is ϴ(blocksize) - - -### 2.1 complexity from bottom up -$n$ is the numbe of elemetns in a -outer loop is executed - -![[Pasted image 20220329114859.png#invert]] - -### 2.2 improvments -some arrays have sections that are already sorted - -you canm - -### 2.3 timsort -used by python java rust etc \ No newline at end of file diff --git a/content/notes/Lecture 8 Personas and Scenarios.md b/content/notes/Lecture 8 Personas and Scenarios.md deleted file mode 100644 index 7094aca55..000000000 --- a/content/notes/Lecture 8 Personas and Scenarios.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sr-due: 2022-04-05 -sr-interval: 8 -sr-ease: 250 ---- - -#review -# Lecture 08 Personas and scenarios - -[[Personas and Scenario]] -[[Storyboards mockups, prototypes]] - - - - - - diff --git a/content/notes/Lecture 9 Data Modelling and Normalisation.md b/content/notes/Lecture 9 Data Modelling and Normalisation.md deleted file mode 100644 index df13518be..000000000 --- a/content/notes/Lecture 9 Data Modelling and Normalisation.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -number headings: auto, first-level 2, max 6, 1.1 -sr-due: 2022-04-10 -sr-interval: 7 -sr-ease: 250 ---- - -#review - ---- -# Lecture 9 Data Modelling and Normalisation - -[[Redundancy and Anomalies]] - -[[Dependencies among attributes]] - -[[Normalisation]] \ No newline at end of file diff --git a/content/notes/Lecture 9 Paper Protoypes, Wizard of OZ, Video Prototyping.md b/content/notes/Lecture 9 Paper Protoypes, Wizard of OZ, Video Prototyping.md deleted file mode 100644 index 197172d2f..000000000 --- a/content/notes/Lecture 9 Paper Protoypes, Wizard of OZ, Video Prototyping.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -sr-due: 2022-04-08 -sr-interval: 7 -sr-ease: 270 ---- -#review -___ - -# Lecture 9 Paper prototypes, Wizard of OZ, Video prototyping - -[[Faking it video prototyping]] -[[Faking it Wizard of OZ]] -[[Storyboards mockups, paper prototypes]] - -## 1 Paper prototypes -used for exploring design in early stage -- brainstorming - - e.g.,![[Pasted image 20220329102144.png]] -- refinement of design and communicating ideas - - e.g., ![[Pasted image 20220329102358.png]] ![[Pasted image 20220329102549.png]] ![[Pasted image 20220329102735.png]] -- evaluating interfaces - -### 1.1 examples of prev 203 work -![[Pasted image 20220329102855.png]] - - -## 2 Digital prototypes - -### 2.1 past 203 -![[Pasted image 20220329104459.png]] -![[Pasted image 20220329104612.png]] -![[Pasted image 20220329104617.png]] diff --git a/content/notes/Lecture 9 Stacks queues and heaps.md b/content/notes/Lecture 9 Stacks queues and heaps.md deleted file mode 100644 index 475532eb9..000000000 --- a/content/notes/Lecture 9 Stacks queues and heaps.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -sr-due: 2022-04-14 -sr-interval: 11 -sr-ease: 250 ---- -#review - ---- -# Lecture 9 Stacks queues heaps -give a brief description of a heap? - -what is the difference between and stack and a queue? - -how is a priority queue different from regular queue? - -[[Stacks and queues]] - -[[Priority queue]] - -[[Heap]] \ No newline at end of file diff --git a/content/notes/Merge sort - divide and conquer.md b/content/notes/Merge sort - divide and conquer.md deleted file mode 100644 index 42a38f8f4..000000000 --- a/content/notes/Merge sort - divide and conquer.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -sr-due: 2022-04-26 -sr-interval: 23 -sr-ease: 250 ---- - -#review -# Divide and conquer -1. pre ⇒ break apartinto two or more smaller problems whose size add up to at most n -2. Rec ⇒ solve those problems recursively -3. post ⇒ combine solutions into a solution of the original problem - -## 1 quicksort -pre ⇒ select pivot and split the array -rec ⇒ apply quicksort to the partitions -post ⇒ not much - -designeds when sorting inplace was important -works best of primitive types as they can be stored in the fastest memory location -- memory access can be localised and the comparisions are direct -- those advantages are limited when sorting objects of reference type -- i that case each element of the array is just a reference to where the object really is -- so there are no local access advantages - -# Mergesort -a variant of a divide and conquer sorting array -pre ⇒ split array into two pieces of nearly equal size, -rec ⇒ sort the pieces, -post ⇒ merge the pieces - -## 2 Merge -take the two lowest values -place the lowest of the two in the next place in the sorted array - -## 3 Implementation -given: a and b are sorted arrays. m in an array whose sixe is the sum fo their sizes -desired outcome: the elements of a and b have been copoed into m in sorted order - -- maiain indices, ai, bi, and mi of the active location in a b and m -- if both ai and bi represent actual indices of a and b, find the one which points to the lesser value (break ties in favour of a) copy that vale into m at mi and increment mi and whichever of ai or bi was used for the copy. -- once one of ai and bi is out of range, copy the rest of the other array into the remainder of m - -```java -public static int[] merge (int[] a int[] b){ - int[] m = new int[a.length + b.length] - int ai = 0, bi = 0, mi = 0; - - while(ai < a.length && bi < b.length) { - if(a[ai] <= b[bi]) m[mi++] = a[ai++]; - else m[mi++] = b[bi++] - } - - while (ai < a.length) m[mi++] = a[ai++]; - while (bi < b.length) m[mi++] = a[bi++]; - - return m; -} -``` - -```java - public static void mergeSort(int[] a){ - mergeSort(a, 0, a.length); - } - - public static void mergeSort(int[] a, int lo, int hi){ - if(hi - lo <= 1) return; - int mid = (hi + lo)/2; - mergeSort(a, lo, mid); - mergeSort(a, mid, hi); - merge(a, lo, mid, hi); - } - - public static void merge(int[] a, int lo, int mid, int hi){ - int[] t = new int [hi-lo]; - //adjust code from 'merge' here so that the part of a from lo to mid, and the part of a from mid to hi are merged into t - System.arraycopy(t, 0, a, lo, hi-lo) //copy back into a - - } - - -``` - -## 4 Complexity -n is the length of a plus the length of b -no obvious counter controlled loop -key ⇒ in each of the three loops mi in incremented by one. - -∴ the total number of loop bodies executed is always n -since each loop has a constant amount of work -∴ so total cost is **ϴ(n)** - diff --git a/content/notes/Minimal spending tree.md b/content/notes/Minimal spending tree.md deleted file mode 100644 index eef13950c..000000000 --- a/content/notes/Minimal spending tree.md +++ /dev/null @@ -1,7 +0,0 @@ -# Minimal Spending tree -Algorithm to connect up every part of the network to every other part of the network at minimal possible cost. Where the cost of connecting each pair is known. - -#### data -hybrid version of priority queue -disjoint set - diff --git a/content/notes/Personas and Scenario.md b/content/notes/Personas and Scenario.md deleted file mode 100644 index 57d7da7d5..000000000 --- a/content/notes/Personas and Scenario.md +++ /dev/null @@ -1,59 +0,0 @@ -# Personas -THe goals of a personas is their expectation of an end condition -- not features, functions, taskss, activities - -A tool to documnet who the users are. -- what are they trying to accomplish -- ![[Pasted image 20220323100944.png]] - -a methodology to identofy and think about our users and how they use the software. -we want to avoid not thinking about the users -make sure memebers of development dont have different ideas of the users - -### Goals -1. Experience goals -how they feel when using the product -e.g., ⇒ dell users want function but apple users want "that fancy apple product" - -2. End goals -their motivaations for performing the task / intentded outcome - - -3. Life goals -Why they want to accomplish end goals /long term desires/self-image - - -### Behavioural variables - -- activities ⇒ what the user does, frequency and volume -- attitudes ⇒ how the uers thinks about the product domian and knowledge -- aptitudes ⇒ what education and trainging the user has -- motivations - - why the user is engaged in the product domain -- skills - - -![[Pasted image 20220323102054.png]] -![[Pasted image 20220323102200.png]] - -### Persona types -- Primary persona ⇒ **Only one per interface** -- secondary ⇒ mostly satisfied with interface for primary persona -- supplemental - - completely represent by a combination of - - e.g., - - customer - - buys the product but does not necessarily use it - - served - - affected by the use of the product but does not use it (e.g., patient for a hospital software) -- negative - - person the product is not being made for - -## Scenario - -> concise, narrative description of one or more personas using a product to achieve one or more specific goals - -have a good story to tell -![[Pasted image 20220323103237.png]] -![[Pasted image 20220323103420.png]] -![[Pasted image 20220323103428.png]] \ No newline at end of file diff --git a/content/notes/Possible exam questions.md b/content/notes/Possible exam questions.md deleted file mode 100644 index d2f131c35..000000000 --- a/content/notes/Possible exam questions.md +++ /dev/null @@ -1 +0,0 @@ -give example of quantitative measure of ussability -> # of errors, time to complete a task, questionnaire with scales diff --git a/content/notes/Predictive adaptive spectrum.md b/content/notes/Predictive adaptive spectrum.md deleted file mode 100644 index aceb83574..000000000 --- a/content/notes/Predictive adaptive spectrum.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -sr-due: 2022-04-18 -sr-interval: 27 -sr-ease: 252 ---- - -## Review Questions -1. what is a predictive swd methodology - 1. one that is not flexible, rigid, not incremental, has well defined requirements and is planned in advance - 2. low techincal risk - -2. what is an adaptive swd methodology - 1. not planned in advance, more flexible, incremental - 2. high technical risk - -3. what is meant by the waterfall and the modified water fall methodology - 1. waterfall methodology is when there are a set of steps for the development life cycle and each one "flows" into the next with no returnig to previous steps - -4. Within an adaptive methodology, what are: - 1. iterations - - one cycle of the steps - 1. incremental development - - when projects are completed in a series of interations - 2. walking skeleton - - when development begins by creating a bare bones (similar to mvp) structure - -___ - -tags: #review -# Predictive adaptive spectrum - -## Predictive -- panned project in advance -- requirements well defined -- low technical risk - -#### waterfall -- "water fall" -assumes phases are completed sequentially (no overlap or iteration) -![[Pasted image 20220308131314.png|500]] -- modified water fall - slightly less rigid verision of "waterfall" which allows some overlap -![[Pasted image 20220308131532.png|500]] - - -## Adaptive -- more flexible, changes as you go. cannot be planned in advance -- requirements uncertain -- high techinal risk - -e.g., -![[Pasted image 20220308132052.png|500]] - -#### Iterations -"micro projects" - -#### Incremental development -complete projects in small iterations -"growing" a system - -#### Walking skeleton -complete structure is built with bare bones functionality -further functionality added iteratively -similar to minimum viable product (MVP) \ No newline at end of file diff --git a/content/notes/Priority queue.md b/content/notes/Priority queue.md deleted file mode 100644 index ffad68f47..000000000 --- a/content/notes/Priority queue.md +++ /dev/null @@ -1,8 +0,0 @@ -# Priority queue -- A dynamic linear data type that supports addition and removal on entrie -- each entry hase a value and a priority (key) -- removal returns the item with the greatest priority - -### 0.1 Implementation -1. stoes items and priorities in an array. Add at the end ϴ(1), remove by finding the maximum and exchaning with the end element ϴ(n) -2. stores items and their priorities in an array (or list) in sorted order. now removal is ϴ(1) bu addition in Ο(n) \ No newline at end of file diff --git a/content/notes/Redundancy and Anomalies.md b/content/notes/Redundancy and Anomalies.md deleted file mode 100644 index fd6b95d64..000000000 --- a/content/notes/Redundancy and Anomalies.md +++ /dev/null @@ -1,36 +0,0 @@ -# 1 Redundancy and Anomalies -### 0.1 Redundancy -when values are stored repetitively in database relations -- usually in poorly designed relations -- - potential for anomalous data to be stored -e.g., ![](https://i.imgur.com/8RdSNZt.png) - -#### 0.1.1 How it arises -- ad hoc database - - flat file - - spreadsheet (no contraints) -- Poor database design - - poor analysis - - poorly designed ERDs (not thinkiing properly about the relationships) -- modifications to existing systems - - "bolting on" new attributes - - schema evolution over time - -### 0.2 Anomalies -#### 0.2.1 Update anomaly -An anomaly that occurs follows an UPDATE operation -e.g., -![](https://i.imgur.com/fBMd8W3.png) - -#### 0.2.2 Delete anomaly -An anomly that occurs following a DELETE operation -e.g., -![](https://i.imgur.com/fUGVR98.png) -![](https://i.imgur.com/yp6KdYg.png) - -#### 0.2.3 Insert anomaly -An anomly that occurs following a INSERT operation -e.g., -![](https://i.imgur.com/hM1VlGs.png) -![](https://i.imgur.com/SkdKTLP.png) -Causes the process of putting johnson in system is delayed \ No newline at end of file diff --git a/content/notes/Requirements elicitation.md b/content/notes/Requirements elicitation.md deleted file mode 100644 index 5880bcab3..000000000 --- a/content/notes/Requirements elicitation.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -sr-due: 2022-04-15 -sr-interval: 24 -sr-ease: 274 ---- -#### Review questions -1. what is the purpose of requirements elicitation - -2. how are models used in requirements elicitation - -3. give a brief description of two of the the 6 main methods of requirement elicitation - - -___ - -#review -# Requirements elicitation - -## Themes -busines opeations and processes -> _what do you do_ -performance of operations -> _how do you do it, what steps do you follow, how could these steps change_ -information need for performance of operations -> _what info do you use, what inputs do you use, what outputs do you produce_ - -Be careful to find a balance between review of the old system and discovery of new requirements - -## Use of [[Models]] -- Models are the primary output of requirements phase -- learn more by modelling domain from new perspectives -- abstraction reduces complexxity -- need to document details - - to remember stuff - - for future maintenance/enhancement -- used to communicate with [[stakeholders]] and other devs - -## Methods -- Review existing material - - get inital understanding - - use as guidelines for [[Interviews]] etc. - - be cautious of existing material - - e.g., - - internal -> traning modules, job descriptions, forms, mission statement etc - - external -> trade publication, best practives, standards etc. - - ![[Pasted image 20220315132940.png]] -- [[Interviews]] - - e.g., - - ![[Pasted image 20220315133134.png]] - - ![[Pasted image 20220315133326.png]] -- [[Observation]] - - beware observaion bias - - document using workflow diagrams - - not necessary to observe all processes at same level of detail - - e.g., Apprentice [[Needfinding#^4453ee]] -- [[Prototyping]] - - to test and evolve concepts - - to evaluate "look and feel" - - focus of accomplishing single objective - - built quickly using [[Integrated Development Environments|IDE]] (drag and drop features etc) and/or RAD frameworks -- [[Questionnaire]] - - Limited information can be gained - - Inital insight into business - - not suited for gathering detail information - - focus of closed-ended questions with simple direct answers - - e.g., ![[Pasted image 20220315134147.png]] -- Research existing vendor solutions - - take advantage of existing tools/software - - can avoid mistakes and save time and money - - help users generate new ideas about how to best perform business functions - - often cheaper and less risky to buy a solution than to build it - - risky to purchase this before requirements are known - - its best to wait until reqs are thoroughly investigated - -## Validating requirements -- make sure gathred information is correct -- structured walk through - - effective way to implement quality control - - verify and validate sys reqs - - review finding from investigators - - review of models based on findings -- PM responsible for system quality -- schedule review after doc creation -- review conducted by experienced analyst and [[stakeholders]], presented by analyst - -## Use in [[Agile Development]] -reqs should be decoupled -- as inpependent as possible -- id which reqs to inplement not to implement them - -every iteratio includes a requirements collection and prioritisation activity -- important requirements are implemented next -- less important are held for later iterations or not at all - -Scrum: product backlog -UP: inception and elaboration phases -XP: user stories - -## Pain points -- users - - unable to articulate reqs - - ignorant of relevant tech - - reluctant to discuss reqs - - may contradict or disagree with other -- language terminology barriers between analyst and user -- often need multiple user sources to fully understand a req -- analyst lacks skills -- personality issues, e.g., analyst too assertive or abrasive \ No newline at end of file diff --git a/content/notes/Simulated Annealing.md b/content/notes/Simulated Annealing.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/content/notes/Stacks and queues.md b/content/notes/Stacks and queues.md deleted file mode 100644 index eb6ced7d9..000000000 --- a/content/notes/Stacks and queues.md +++ /dev/null @@ -1,10 +0,0 @@ -# Stacks and queues -Dynamic linear data types (interface) -- an abstraction of a collection of data organised "in a line" which supprts addition of new elements and the removal of (some) old elements -- e.g., stacks and queues -- the difference in the removal operation - - stacks ⇒ (pop) LIFO - - queues ⇒ (remove, offer, pull) FIFO -- representation - - array (preffered because of memory management) - - linked list (seems more natural) \ No newline at end of file diff --git a/content/notes/Storyboards mockups, paper prototypes.md b/content/notes/Storyboards mockups, paper prototypes.md deleted file mode 100644 index 3077ecd70..000000000 --- a/content/notes/Storyboards mockups, paper prototypes.md +++ /dev/null @@ -1,51 +0,0 @@ -# Storyboard mockups prototypes - -Fidelity will increase over time.![[Pasted image 20220329090249.png]] - -## Storyboarding -focus on the **task** -communicate flow -not about pretty pictures -use timelimits ≈10 mins - -### shows -- settings - - people - - environment - - task -- sequence - - steps - - what leads a user to use the app - - what task -- satisfaction - - why do they use the app - - what do they accomplish - - what needs does the system fill - -### Benefits -- holistic focus -- avoids commitment to an interface -- helps get stakeholders onthe same page - -### Examples -![[Pasted image 20220329090341.png]] - - -## Paper prototyping -mockup of UI on computer -![[Pasted image 20220329090827.png]] - -### tips -- store materials in one place -- work quickly -- complex parts of interfaces can be verbally roleplayed -- backgrounds can be used to contain protoypes and provide context -- you can mix and match hardware and software -- when appropraite include matching OS elements - -- get users to add to the design -- get stakeholders incolved - - -## Digital mockups -![[Pasted image 20220329091417.png]] \ No newline at end of file diff --git a/content/notes/Storyboards mockups, prototypes.md b/content/notes/Storyboards mockups, prototypes.md deleted file mode 100644 index 9c3be399a..000000000 --- a/content/notes/Storyboards mockups, prototypes.md +++ /dev/null @@ -1,50 +0,0 @@ -# Storyboards mockups, prototypes -## 1 storyboards -mockup of user scenarios - -problem with sketches -- hard to capture dynamics of interation over times= -- captures user interface not user behaviour - -a good storyboard should tell a story -short and concise -low fidelity -not about pretty picures. ⇒ about communicating ideas -![[Pasted image 20220323104205.png]] -![[Pasted image 20220323104240.png]] -![[Pasted image 20220323104453.png]] - -## 2 pros -+ holistic focus ⇒ helps emphasoze how an interface accopmlishes a task -+ avoid commitment to a particular UI -+ helps get all the stakeholders on the same page in terms of the goal - -## 3 Tips -tell a story -![[Pasted image 20220323104649.png]] -- base it off the scenario - -play with the angle/perspectives -![[Pasted image 20220323104748.png]] -![[Pasted image 20220323104900.png]] - -simplify and develop vocabulary/you own style -![[Pasted image 20220323104937.png]] - -using tracing and templates -![[Pasted image 20220323105040.png]] - - - -- setting - - people - - environment - - task being done -- sequence - - what steps - - what leads someone to the app - - task task -- satisfaction - - what is the users motivation - - what does it enable people to accomplish - - what need does the system fill \ No newline at end of file diff --git a/content/notes/Systems analyst.md b/content/notes/Systems analyst.md deleted file mode 100644 index 91401fd11..000000000 --- a/content/notes/Systems analyst.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sr-due: 2022-05-18 -sr-interval: 50 -sr-ease: 310 ---- - - tags: #review - ---- -# Systems Analyst -## Role -- design transform modify evaluate systems -- find alternative solutions to problems - - off the shelf vs customised vs bespoke - - cost-benefit analysis -- translate natural language requirements into techical designs -- monitor implementation to ensure desired result is achieved - -## Skills -- logical thinking and problem solving -- good understanding of coding, databases, networks etc -- good understanding of business - - -![[Pasted image 20220301172014.png]] \ No newline at end of file diff --git a/content/notes/Systems development lifecycle (SDLC).md b/content/notes/Systems development lifecycle (SDLC).md deleted file mode 100644 index 30d47d78b..000000000 --- a/content/notes/Systems development lifecycle (SDLC).md +++ /dev/null @@ -1,79 +0,0 @@ ---- -sr-due: 2022-04-13 -sr-interval: 28 -sr-ease: 270 -aliases: SDLC ---- - -tags: #review -#### Review Questions - -1. How can business process re-engineering be used in the analysis phase and what benefits can it provide? -bpr can be used in the analysis phase to simplify the processes relevant to the project. The benefits it provides include: SImpler requirements, better understanding of domain - - ---- -![[Pasted image 20220301172155.png]] -# SDLC -Provides overall framework for managing the systems -There are many methodologies to help guide us through this cycle -Each methodology sits on the [[Predictive adaptive spectrum]] -A very common methodology at the moment is [[Agile Development]] - -## Phases -### Analysis -^2d7976 -- Lots of communication with [[Stakeholders]] -- Gather detailed information -- define system requirements -- prioritise requirements (what is risky, what brings value to business) -> increase proability of success -- develop UI dialogs ([[Prototyping]] where the user can interact with the system) -- evaluate requirments -- review reccomendations with management - -## Business process re-engineering -method of organising company -- streamline processes to be efficient and efffective -- question basic assumptions - -use ICT to help with BPR - -sys analyst may find opportunites to improve processes -- any project can include components of BPR - -simpler business processes -> simpler requirements -> simpler system - -## Requirements -- [[Requirements]] -- [[Requirements elicitation]] -- Something the system should do -- Some constraint the system should have -- Can be functional or non functional -- Good requirements prevent failure - -## SDLC Variations -- different terminology -- change focus on people -- change speed of development - - [[Prototyping]] - - Rapid application development (RAD) - -## Failure -main goal: Avoid project failure -- complete fail implies nothing delivered -- Types of fail - - cost overruns - - sw quality issues - - missed deadlines - - unhappy [[stakeholders]] - -Suprisingly very common with large projects - -reasons for fail: -![[Pasted image 20220301172507.png|300]] -![[Pasted image 20220310160839.png|300]] - - -**coding rarely causes problems** -![[Pasted image 20220310161009.png|300]] - diff --git a/content/notes/Test driven development.md b/content/notes/Test driven development.md deleted file mode 100644 index 5ba1d0d5e..000000000 --- a/content/notes/Test driven development.md +++ /dev/null @@ -1,6 +0,0 @@ -# Test driven development -tests are developed before the code -are a spec of what the code should do -first they fail ⇒ as you develop, they pass -+ quantifiable progress of code -> tests are not always bug free \ No newline at end of file diff --git a/content/notes/Unified process (UP).md b/content/notes/Unified process (UP).md deleted file mode 100644 index e0d504a06..000000000 --- a/content/notes/Unified process (UP).md +++ /dev/null @@ -1,72 +0,0 @@ ---- -sr-due: 2022-04-11 -sr-interval: 20 -sr-ease: 250 ---- - -tags: #review -resources: https://www.sciencedirect.com/topics/computer-science/unified-process -https://doi.org/10.1016/B978-0-12-805476-5.00002-2 -#### Review questions -1. give a brief description of UP -UP is an iterative and incremental develoopment process - -2. Give a brief description of each of the four phases of UP - 1. inception - 2. elaboration - 3. constuction - 4. transition - -------------------------------------------------------- -# Unified process (UP) -oop development -uses UML for modelling -four phase life cycle -- inception -- elaboration -- construction -- transition - -![[Pasted image 20220308132944.png]] -![[Pasted image 20220308133325.png]] -![[Pasted image 20220322172120.png]] - -##### best practices -- develop iteratively -- define and mange system requirements - - effectively managing changes in requirements -- use component architectures -- create visual models (UML) -- verify quality -- Control changes - -##### Values and principles -Values: -- **individuals and interactions** over processes and tools -- **working software** over comprehensive documentation -- **customer collaboration** over contract negotiation -- **responding to change** over following a plan - -Twelve modelling principles: - -> Build only necessary models that are useful and at the right level of detail - -- Software is your primary goal — don’t get distracted by -documentation or models. -- The next effort is your secondary goal — be aware of next -step versions or revisions. -- Minimise modelling — only build what helps move the project -forward. -- Embrace change, change incrementally — take small steps -that keep you on track and that can be reversed if necessary. -- Model with a purpose — to understand and communicate. -- Build multiple models — look at problems from different -perspectives. -- Build high-quality models and get feedback — from [[stakeholders]], other developers. -- Focus on content, not representation — always focus on stakeholder needs; informal hand-drawn models are often fine. -- Communicate and learn from each other. -- Know your models and how to use them. -- Adapt to specific project needs. -- Maximise stakeholder ROI. - -![[Pasted image 20220308132628.png]] \ No newline at end of file diff --git a/content/notes/Union Find-Disjoint set.md b/content/notes/Union Find-Disjoint set.md deleted file mode 100644 index 473eee83e..000000000 --- a/content/notes/Union Find-Disjoint set.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -sr-due: 2022-04-17 -sr-interval: 30 -sr-ease: 270 ---- - -tags: #review - ---- -# 1 Union Find/Disjoint set -## 1 Example -- We have 12 'objects' -- *Some* pairs have been connected -- Nodes with a sequence of edges between them form a group - - e.g., 0 5, 2, 1 4 6 9, 3 8 10 11, 7 -![](https://i.imgur.com/9iRxZoh.png) -- Groups with no connecting edges are *disjoint* sets - -## 2 Requirements -- Make(n) - make a set of n vertices with no edges between them -- Union(x, y) - connect x and y by an edge (merge their two groups) - - y becomes the representative node for the whole group - - e,g,. Union(2, 1) - - now : 0 5 2 1 4 6 9 3 8 10 11 7 - - the representative node of the new group is 1 - - the number of groups is always : n - number of union operations between elements of different groups -- Find(x) Find and return a representative of the group the x belongs to. - - If x and y are in the same group then Find(x) == Find(y) - - - -## 3 Implementation -### 3.1 UF 1 -```java - int[] reps; - public void make(int n){ - reps = new int[n]; - for(int = 0; i < n; i++) reps[i] = i; - } - - public int find(int x){ - return reps[x]; - } - - public void union(int x, int y){ - rx = reps[x] - ry = reps[y] - for i = 0 to n-1 - if reps[i] = rx then - reps[i] = ry - end if - end for - } -`````` - - Operation | Cost | reason --------------|------| -- - make | $\Theta(n)$ | filling n place of an array - find(x) | $\Theta(1)$ | find value in array is constant - union(x, y) | $\Theta(n)$ | When x and y's rep are different, the whole array must be examined - -Total possible number of union calls where x and y's rep are different is n-1 -So the Total possible cost of all union calls is $\theta(n^2)$ - -### 3.2 UF 2 -``` java - int[] reps; - public void make(int n){ - reps = new int[n]; - for(int = 0; i < n; i++) reps[i] = i; - } - - public int find(int x){ - if(reps[x]==x) return x; - return find(reps[x]); - } - - public void union(int x, int y){ - reps[find(x)] = find(y); - } -``` - -Operation | Cost | reason --------------|------| -- - make | $\Theta(n)$ | filling n place of an array - find(x) | $\Theta(n)$ | need to look through chain nodes for representative - union(x, y) | $\Theta(n)$ | bounded by two calls to find - -Total possible number of union calls where x and y's rep are different is n-1 -So the Total possible cost of all union calls is $\theta(n^2)$ - -### 3.3 UF 3 -For each rep, let its rank be the length of the longest chain of local reps that reaches it -When union(x,y) make the rep with the larger rank the rep of the other -If equal ranks -> make the second the rep of the first - -``` java - int[] reps; - int[] rank; - public void make(int n){ - reps = new int[n]; - rank = new int[n]; - for(int = 0; i < n; i++) reps[i] = i; - } - - public int find(int x){ - if(reps[x]==x) return x; - return find(reps[x]); - } - - public void union(int x, int y){ - rootUnion(find(x), find(y)) - } - - //x and y are known to be representatives - private void rootUnion(x, y){ - if(rank[x] > rank[y]){ - reps[y] = x; - } else if (rank[y] > rank[x]){ - reps[x] = y; - } else { //rank[x] == rank[y] - reps[x] = y; - rank[y] ++; - } - } -``` - -Operation | Cost | reason -------------|------| -- - make | $\Theta(n)$ | filling n place of an array - find(x) | $\Theta(lg\ n)$ | rank is bounded by $lg\ n$ - union(x, y) | $\Theta(lg\ n)$ | bounded by two calls to find - -Total possible number of union calls where x and y's rep are different is n-1 -So the Total possible cost of all union calls is $\theta(n^2)$ - -trade off means this requires an extra $\theta(n)$ space - -#### 3.3.1 Min size of set of rank k -for k = 0 -> size must be at least 1 -for k = 1 -> size must be at least 2 - -for larger k -> the set must have been formed by the union of two sets of rank k-1. So its size must be at least twice the min size of a set of rank k-1 - ---> min size of set of rank k is $2^k$ - -#theorem ->a set of rank k must contain at least $2^k$ elements - - - -$\therefore$ The maximum rank of an element is $\log_2(n)$ -> $lg(n)$ - -since the time for $Find$ is big-$\theta$ of the rank of the representative found we get $O(lg n)$ bounds for both find and union - -^we used $O$ not $\theta$ because we dont know that the worst case will always occur. -If could happen that the sequence of Union operations does not create a rank that is as big as i could be - -^this is an example of a semi-formal proof by [[Induction]] - -### 3.4 UF 4 -Change find so it implements [[path compression]] to "flatten" the chains - -```java - if (x != reps[x]) { - reps[x] = find(reps[x]); - } - return reps[x]; -``` diff --git a/content/notes/Unit testing.md b/content/notes/Unit testing.md deleted file mode 100644 index f3f25fcc1..000000000 --- a/content/notes/Unit testing.md +++ /dev/null @@ -1,77 +0,0 @@ -# Unit testing -- divide code into units ⇒ test those units - -- consider appropriate scale - - depends on type of code project as well as language - - object oriented: classes? methods? - - procedural: functions? modules? - -- test each unit independently - - frequently - - often after each commit/push - - can run tests if parallel - - may need to build environment in which tests run - -### 0.1 supports useful principles -can support complementary work by team members -early discovery of problems -can help with documentation and specification -- unit tests can be a form of executable specification -- helps team members understand requirements - -### 0.2 Test environment -consider code that interacts with a database -- you cant let that code write to a real database -- but you want to check that writes were performed - -common solution is to create a fake database -- class that mocs database operations -- can also test error handling by returning error codes - -mock up the database with a pretend model that returns fixed results to query -- be careful not to mock up data base incorrectly - -can be a pre-recorded interaction - -### 0.3 Test life cycle -- set up test environment -- run test code -- check results -- aggregate results into test summary - -simple test: run method ⇒ check value -tests may chack that code fails appropriately -- crash when expected -- exceptions are generated - -### 0.4 Language support -language may have bilt in testing support -- e.g., Go and Rust have command line tools to run tests - -External tools can often work well too -- e.g., java code annotations can mark tests -- java ignores most annotations, but testing tools (JUnit) can use them -- annotations are symbols that begin with @ in source code - -we want to distinguish between tests and normal code -- also should support for sqapping in/out mocking code - -### 0.5 JUnit -test classes have a particular filename pattern -annotate test methods with @Test -other annotations -- @BeforeAll and @BeforeEach (and after) -- @RepeatedTest - -JUnit 5 also supports dynamically generated tests - -### 0.6 TestNG -based off JUnit and fixes some it it's problems -- provides control over threading - - run tests in parallel - - also tests for parallelism bugs - - multithreaded code i hard to debug -- data driven testing -- also - - integration testing - - end to end testing \ No newline at end of file diff --git a/content/notes/Use case diagrams.md b/content/notes/Use case diagrams.md deleted file mode 100644 index 589e04d78..000000000 --- a/content/notes/Use case diagrams.md +++ /dev/null @@ -1,101 +0,0 @@ -# Use case diagrams -- specifies the participants (actors) and the relationships between them -- high level view of what a system does (not how) and who uses it -- represent users perspective of a system -- used mainly in requirements specification and early system dev -- effectively a todo list - -## 1 pros -+ informal,flexible, easy to construct -+ easily understood - + improve communication between users and developers - + can be used to confirm requirements -+ provide overview -+ link analysis to design -+ can be used to inform subsequent dev tasks - + derive test cases - + prioritise imlementation tasks - + help clarify new feature requests or bug reports - -## 2 Notation - -### 2.1 Actor -- roles that people have when interacting with the system -- external systems or hardware that are essential to system operation -![[Pasted image 20220320224458.png]] - -### 2.2 Use case -- discrete unit of system functionality -- activity from perpective of an actor -- can be abstract or focused -- say nothing about flow or behaviour -- map to ⇒ menu items, forms, reports, etc -![[Pasted image 20220320224329.png]] - -### 2.3 Association -- relationship (interaction) between actor and use casel -- actor can be associated with more than one use case -- use case can be associated with more than one actor -- ![[Pasted image 20220320224618.png]] - -### 2.4 Specialisation/generalisation -- actors and use cases can be orgainsed into special/general hierachies - - acotrs can be specialisations of another actor - - same for use cases - - mutually exclusive - - similar to inheritance -![[Pasted image 20220320224736.png]] - -### 2.5 Dependency - - occur between use cases - - one case extends the behaviour of another - - one case includes the behabiour of another - - one case requires the behaviour of another - - read in direction of arrow - - indicate opportunities for reuse of functionality -![[Pasted image 20220320224908.png]] - -#### 2.5.1 Extends dependency -- use cases can have optional, subordinate tasks -- useful with specialised actors -![[Pasted image 20220320225018.png]] - - -#### 2.5.2 Includes dependency -- use cases that have mandatory, subordinate tasks -- does not indicate sequence, only that they must happen -![[Pasted image 20220320225129.png]] - -#### 2.5.3 Requires dependency -- mandatory, _independent_ tasks, that must be completed first -- forces sequence -- use sparingly -![[Pasted image 20220320225301.png]] - -## 3 development of use case diagrams -organise related use case diagrms itno use case model -- have have multiple levels of detail -- group related diagrams into packages - -### 3.1 example methods -- user goal technique ⇒ simple -- event decompositition technique ⇒ more comprehensive - -### 3.2 top down -identify actors ⇒ identify use cases ⇒ detail use cases - - who will enter and/or recience information - - what other systems will interact with the system -- prioritise use cases -- further develop use case, starting with highest priority -- structure overall use case model - -> **avoid specifying the sequence** - -### 3.3 bottom up -create scenario ⇒ generalise scenario ⇒ organise use case model - -## 4 Examples -![[Pasted image 20220320225922.png|300]] -![[Pasted image 20220320225932.png|300]] -![[Pasted image 20220320230001.png|300]] -![[Pasted image 20220320230009.png|300]] \ No newline at end of file diff --git a/content/notes/User Experience.md b/content/notes/User Experience.md deleted file mode 100644 index c020d4d53..000000000 --- a/content/notes/User Experience.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -sr-due: 2022-05-01 -sr-interval: 37 -sr-ease: 290 ---- - - tags: #review - ---- -# User experience -> "encompasses all aspects of the end users interaction with the company, its services, and its products" - Jakob Nielsen and Don Normann - -Marketing, branding, etc. - -![[Pasted image 20220302103456.png|1/2]] - diff --git a/content/notes/Version Control Systems.md b/content/notes/Version Control Systems.md deleted file mode 100644 index 26d5471b2..000000000 --- a/content/notes/Version Control Systems.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -sr-due: 2022-04-30 -sr-interval: 39 -sr-ease: 270 ---- -#### 0.1.1 Review questions - -1. what are the main goals of VCSs - -2. describe the three types of version control system - -3. what is forking. Why is it useful - ---- -tags: #review -resources: https://www.youtube.com/watch?v=Yc8sCSeMhi4 - -# VCSs -VCSs (version control systems) Are systems to keep track of changes to a set of files -E.g., [[Git]] - -## 1 Goals -- allow collaboration -- track changes -- restoring previous versions -- finding out origins of issues -- backups -- not restrict workflow - -## 2 Terms -[[Git Cheat Sheet]] - -## 3 Discipline -- Pull/Push Regularly -- Use topic/features branches to keep main clean -- Dont use -f - -## 4 Types -### 4.1 Centralised VCS -- Data is stored in one single central location -- Access is remote -- Checkout can block other devs - -```mermaid - graph TD - subgraph Centralised Repo - Boris-. commit .->R((Repository))-- checkout -->Boris - R-- checkout -->Doris-. commmit .->R - R-- checkout -->Dennis-. commmit .->R - end -``` - -### 4.2 Distributed VCS - -![](https://i.imgur.com/IVXAaFF.png) - - -- Data is stored on every access point -- Good - - more robust -> each dev has a backup - - Don't need internet -- Bad - - Hard to keep track of "main" files - -### 4.3 Distributed + Centralised -- Main files are stored on central repo -- Each user also has their own copy locally - -![](https://i.imgur.com/BxC8Tiq.png) - -## 5 Sensitive information -- Passwords and other credentials among other things -- Data should be stored as encrypted blobs - - [BlackBox](https://github.com/StackExchange/blackbox) - -## 6 Forking -- Cloning into a new remote repo in your account -- Allows community to contribute to projects without giving them write access to the original repo -- Process - - Create a fork of a project - - Make Changes - - Pull request to merge fork back into project - - Admins of project can acccept modify or reject pull request - -## 7 software dev needs file wrangling -many copies of a project's source code files needed: - -- facilitating different developers private code experiments -- working on fixing bugs in code -- developing new features -- reviewing code changes -- managing releases of sofware products - - using [[Git]] \ No newline at end of file diff --git a/content/notes/What is Usability.md b/content/notes/What is Usability.md deleted file mode 100644 index fbbb02f50..000000000 --- a/content/notes/What is Usability.md +++ /dev/null @@ -1,43 +0,0 @@ -Jet Hughes 9474308 - - -## 1.1 Blackboard -![[Pasted image 20220317125811.png|300]] -The first example of bad usability is in blackboard. Blackboard is a "web based virtual learning environment and learning management system". The issue occurs with the menu in the top right (shown below) when the window in which the user is viewing the page is smaller (either on a mobile device or a shrunk down desktop Browser). - -![[Pasted image 20220310211739.png|300]] - -The issue is that the menu gets hidden behind the main page when the window is smaller (shown below) -This means that when the user is using black board in a small browser window, they are unable to navigate between their courses in the intended way. This is an example of bad usability because it prevents the user from being able to use the product for its intended purpose. It is not effective, efficient nor satisfactory. - - -## 1.2 Sky go -![[Pasted image 20220310212758.png|150]] - -The second example is an issue with the web application sky go. Sky go is a television streaming service. It allows users to watch on demand or live Sky TV with just an internet connection. There is a usability issue with the sign in screen on desktop browsers, which may also affect mobile and other platforms. In particular, with the error messages. On some plans, users are only allowed to use the account on one device at a time. When logging in, if another user is already signed in on another device, the login will fail. In such an event, the error message displayed alerts the user that their username or password are incorrect, not that another user is logged in. - -This is an example of bad usability due to uninformative error messages. In this example, the user does not know the reason why there are unable to login. In my case, it led to me resetting the password multiple times before I realized what the actual error was. - - -## 1.3 Udisc -![[Pasted image 20220317145732.png|150]] -My third example is of the Mobile App Udisc. Udisc is a disc golf scoring app. The problem with this app occurs when in the "select players" phase of creating a new round scorecard. The user can choose to add existing players, or they can create a new player using the icon in the top right of the page. The issue is that after adding a new player and returning to the select players screen, the new player is not visible. To make the new player visible, the user somehow reload the page, without a reload button. One way is to switch from the 'frequent' tab to the 'recent' or the 'all' tab. This will reload the page and the added player will appear in all tabs. - -It was hard to show this with just screenshots, so I recorded a GIF and uploaded to Imgur [https://i.imgur.com/VuXshdZ.gif](https://i.imgur.com/VuXshdZ.gif) - - -## 1.4 Epomaker -![[Pasted image 20220315113752.png|300]] -My final example of bad usability is the Epomaker website. This is a mechanical keyboard ecommerce site. On loading the create an account page, a cookies pop obscured behind the floating 'rewards' button appears. The final line of the message and the bottom left portion of the pop-up is not visible. When I saw this, I thought there might be an option to configure my cookie settings hidden behind the floating button. I didn't want to allow the site to use cookie's that weren't strictly necessary. So I just ignored the pop-up and finished creating my account while the pop-up was obscuring the bottom left of the page. This is bad usability because the pop blocked me from being able to create an account as easily as I could have. - - -## 1.5 NZ Herald -Finally I have an example of a web app that is usable, but has a bad user experience. This app is NZ Herald. Upon loading the page, the user is faced with a screen that is at least 75% advertisements. The app still has good usability as the user can easily scroll down which hides most of the ads, so there are only the strips on the sides. However, the initial loading page is crammed full of advertisements. This bombardment of ads makes the site appear unprofessional, and untrustworthy, despite the "website of the year" stub. This degradation of trust contributes to a bad user experience, despite the overall usability. - -On entry: -![[Pasted image 20220318141434.png|300]] -![[Pasted image 20220318141839.png|300]] - - -After scrolling down -![[Pasted image 20220318144803.png|300]] diff --git a/content/notes/analysis of recursive algorithms.md b/content/notes/analysis of recursive algorithms.md deleted file mode 100644 index 6ef627830..000000000 --- a/content/notes/analysis of recursive algorithms.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -aliases: Proof by induction, induction -sr-due: 2022-05-02 -sr-interval: 29 -sr-ease: 250 ---- -#review -## 1 Review Questions -Do one practice problem - -### 1.1 MaxNum -``` - maxNum = -1 - for num in numbers - if num < maxNum then - maxNum = num; - end - end -``` - -parameter n is length of the array of number - -we will prove that, for every non-negative integer n, the maximum time to find the max num is Ο(n) - -for n = 1 this is true because the maximum number is always the first number we check -for n =2 this is true because the maximum number is always on of the first two numbers we check - -for any n >0, assuming this is true for all n-1, this is true at n because the maximum amount of number to check is never greater than n - -∴ by induction, the time comnplexity is Ο(n) - -___ - -# Analysis of recursion algorithms -- induction and recursion are linked -- inductive approach is esential for understanding time-complexity of resursive algorithms - -## 2 Proof by induction -[[Induction]] -Find a (positive integer) _parameter_ that gets smaller in all recursive calls -Prove inductively that "for all values of the parameter, the result computed is correct" -To do that: -- check correctness is all non-recursive cases -- check correctness in recursive cases assuming correcness in the recursive calls - -## 3 Examples -### 3.1 Quicksort -[[divide and conquer]] algorithm -sorts a range in an array (a group of elements between some lower index, $lo$ inclusive and some upper index $hi$ exclusive) as follows: -- If length of range $(hi - lo)$ is at most 1 -> do nothing -- otherwise, choose a pivot p (e.g., the element at $lo$) and: - - place all items less that p in positions $lo$ to $lo +r$ - - place all items >= p in positions $lo +r+1$ to $hi$ - - place p in position $lo+r$ - - call quicksort on the ranges $lo$ to $lo + r$ and $lo+r+1$ to $hi$ - -#### 3.1.1 Proof -parameter is $hi - lo$ - -the parameter gets smaller in all recusive call because we always remove the element $p$ so, even if it is the smallest or largest element of the range ,,the recursive call has a range of size at most $hi - lo - 1$ - -the non-recursive case is correct because if we have 1 or fewer elements in a range they are already sorted - -in the recirsive case, since all the elements before $p$ are smaller than it and we assume they get sorted correctly be quicksort, and the same happens for the elements larger than p, we will get a correctly sorted array - - -### 3.2 Fibonacci 1 -```python - def fib(n) - if n <= 1 - return 1 - return fib(n-1) + fib(n-2) -``` - -line 1 -> always executed -line 2 -> executed if n<=1 -line 4 -> executed if n>1, cost equal to cost of callling fib(n-1), fib(n-2), and some constant cost for the addition and return - -#### 3.2.1 Cost bounds/Proof -if we let T(n) denote the time required for evaluating fib(n) using this algorithm this analysis gives: - ->## $T(0) = T(1) = C$ ->## $T(n) = D + T(n-1) + T(n-2)$ - -where c and d are some positive (non-zero) constants. - -- this shows that T(n) grows at least as quick as fib(n) -- even if $D=0$ we'd get $T(n) = C \times fib(n)$ -- growth rates are the same $\therefore$ exponential (at least $1.6^n$) and far too slow - -> A recurive algorithm that makes two or more recurive calls with parameter values close to the original will generally have exponential time complexity - -### 3.3 Fibonacci 2 -```python - def fibPair() - if n == 1 - return 1, 1 - a,b = fibpair(n-1) - return b, a+b -``` -line 1 -> always executed some constant cost -line 2-> executed if n=1, some constant cost -line 4-> executed if n>1, cost equal to cost of calling fibPair(n-1) -line 5 -> executed if n>1, some constant cost - -#### 3.3.1 Proof -it's true for $n-1 by design$ -If it's true at n-1 then the result of computing fibpair(n) is: - -$(f_{n-1}, f_{n-1} + f_{n-1}) = (f_{n-1}, f_n)$ - -which is what we want - -#### 3.3.2 Cost bounds -if we let P(n) denote the time required for evaluating fib(n) using this algorithm this analysis gives: - -$P(1) = C$ -$P(n) = P(n-1) + D\ for\ n>1$ - -where $C$ and $D$ are some positive (non-zero) constants. - - - Claim: $P(n) = C + D(n-1)$ - -By induction: -it's true for n = 1 since, - -$P(1) = C$ -$C+D\times(1-1)=C$ - -suppose that it's true for n-1. Then it's true for n as well because - -$P(n) = P(n-1) + D$ -$\ \ \ \ \ \ \ \ \ = C+D\times(n-2)+D$ -$\ \ \ \ \ \ \ \ \ = C+D\times(n-1)$ - -$\therefore$ By induction it's true for all $n>=1$ - - - -$P(n)$ is the time for evaluating $fibPair(n)$ using this algorithm. This analysis gives: - -$P(1) = C$ -$P(n) = P(n-1) +D$ - -where C and D are some positive constants - -#theorem -> ## $P(n) = C+D\times(n-1)$ -> in particular, $P(n) = \theta(n)$ - -> A recursive algorithm that make one recurive call with a smaller value and a constant amount of additional work will have at most linear time complexity diff --git a/content/notes/assignment 1.md b/content/notes/assignment 1.md deleted file mode 100644 index 13d74e963..000000000 --- a/content/notes/assignment 1.md +++ /dev/null @@ -1,111 +0,0 @@ -# COSC201 Assignment 1: Counting the seas - -## 1 Due : 11:59 p.m. Friday, April 1, 2022 -[[9474308Hughes]] -## 2 Introduction - -Imagine a square world consisting of cells each of which is either land or water. A -computational cartographer’s paradise if you will. Anyhow, it turns out that a number -of such worlds exist of varying sizes and varying proportions of land to water. Your -continuing mission has been to search out these strange worlds and count how many -distinct bodies of water there are on each of them. - -Here’s a world that you discovered recently – its dimensions are 8 × 8 and it has only -14 land cells. - -![[Pasted image 20220314221111.png]] - -Obviously, in this world there is only one giant sea. On the other hand, another world -with a 10 × 10 grid was also recently discovered: - -![[Pasted image 20220314221121.png]] - -This world is dominated by land, and there are 10 seas. You may disagree, and think -there are 15 seas, but water cells are considered to be part of the same sea if they meet -along an edge **or** at a corner. - -Exploration is a complicated and expensive business and the thoughts of your superiors -have turned to simulation – that is, to creating imaginary worlds of this type in order -to try and understand how the number of seas changes depending on the size of the -underlying grid and the ratio of water to land. - -### 2.1 Raw materials - -You will be provided with a number of Java classes. These include: - -- All the union-find implementations we’ve looked at. -- A classMap.javathat represents maps of the type we’re interested in. This class includes a number of convenience methods for various tasks. For instance: - - indexing the cells of a map from 0 in the top left corner and then increasing from left to right and top to bottom (so, in the 10 × 10 grid the first row contains cells 0 to 9, the second 10 to 19, the third 20 to 29, and so on); - - recognising the type of each cell (by index or coordinates); - - identifying all the neighbours of a given cell (by index). - -Using these classes, you are asked to produce some more code and to conduct and -report on some experiments. - - -### 2.2 Code submission (5 points) - -The code you submit for this assignment will be a single class calledMapAnalyser. -Skeleton code for that class will be provided and its Javadoc will specify the require- -ments in detail. However, these and the required underlying algorithms are also dis- -cussed briefly below. - -MapAnalyser(Map m) - -The constructor for aMapAnalyserrequires aMapinstance. All of its methods refer to -this underlyingMap. - -countSeas() - -This method returns an integer which is the total number of seas of the underlyingMap. -To compute this number you must be able to identify the seas, i.e., which water cells -belong to the same seas. This is exactly the kind of task that the union-find framework -is designed for. - -Specifically, given a map you can initialise aUnionFindinstance whose size is the -total number of cells in the map. Then, you can iterate once over the cells of the map – -whenever you find a water cell, you can do a union operation between it and its water -neighbours. At the end of this process, two water cells belong to the same sea if and -only if they are in same set of the partition (i.e., if and only if they have the samefind -value). - -There are a number of options about how to use this idea to count seas (you can do it -as you construct the final state of the union-find instance, or after you have done so). -The choice is up to you. - -seaSize(int r, int c) - -This method just returns the total number of cells belonging to the same sea as the cell -in rowrand columnc. If this cell is land rather than water it should just return the -value 0. - -### 2.3 Written submission (5 points - -Please submit the answers to the following questions as a single **PDF** document with -filename of the form314159Pi.pdfwhere 314159 is replaced by your ID number -andPiis replaced by your surname. There are no formal requirements for the format -of your submission, but presentation, spelling and grammar are all important elements -which will account for roughly 40% of the marks for this part of the assignment. - -The written answers to questions one and two could be a couple of paragraphs each -(or a bit longer) along with supporting data. A single paragraph (and possibly some -pseudocode) is enough to answer question three. - -1. The efficiency of the various union-find instances affects how large a square map - can be analysed. A reasonable length of time for a single computation might be - something on the order of a second. Conduct experiments usingUF1,UF2,UF3, - andUF4to determine rough values for that limit on the hardware you are us- - ing when the probability of a cell being water is 0. 5. Describe those experiments - (including the number of repetitions) and report on their results (a table or chart - would be appropriate). Comment briefly on whether the outcomes match our the- - oretical discussions of the four different algorithms and how changing the water - probability might affect their performance. -2. Consider 10 × 10 , 100 × 100 , and 1000 × 1000 maps. Conduct experiments to - try and determine the proportion of water needed on each so that on average - there are two or fewer seas. Describe those experiments (including the number of - repetitions - this should be large enough that you have confidence in the results - you’re claiming) and report on their results. -3. Suppose that we also wanted to count the islands. How would you do that - and - what changes to the code might be needed? - - diff --git a/content/notes/big-o.md b/content/notes/big-o.md deleted file mode 100644 index d5d1a6eea..000000000 --- a/content/notes/big-o.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sr-due: 2022-06-01 -sr-interval: 62 -sr-ease: 271 ---- -tags: #review - ---- -# Big-O ->Big O means $f(n) = O(g(n))$ if there is some constant $A > 0$ such that for all sufficiently large n, $f(n) ≤ A × g(n).$ - -- Big O provides *upper bounds* only. (usually on worst case runtimes) - - sometimes cost will be much less - - does not take special cases into account - - upper bound -- $O$ says that $g(n)$ provides an upper bound for $f(n)$ - - "Insertion sort is $O(n^2)$" -> the maximum number of basic operations in never more than some constanct times $n^2$ -- if $f(n) =O(g(n))$ then the opposite is also true -- usually $f(n)$ is complex but $g(n)$ is very simple diff --git a/content/notes/books.md b/content/notes/books.md deleted file mode 100644 index 14e599fcb..000000000 --- a/content/notes/books.md +++ /dev/null @@ -1,2 +0,0 @@ -# Books -[[All the light we cannot see]] \ No newline at end of file diff --git a/content/notes/branch.md b/content/notes/branch.md deleted file mode 100644 index c36e94d5e..000000000 --- a/content/notes/branch.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -sr-due: 2022-04-10 -sr-interval: 13 -sr-ease: 210 ---- -#### 0.1.1 Review Questions -1. name and describe two methodologies for using branches. Acronym for methodologies -> (GOOF) - - gitflow - - very structured - - uses a set of branches each with a specific purpose - - On the main branch - - focused on not creating new branches - - smaller self-contained commits are better - - Off the main branch - - most work occurs on a branch - - Feature branches - - each features has it's own branch which is merged and ~~deleted~~ can be worked on after completion -1. what is the difference between a topic/feature branch and a persistent branch - - feature branch - - used for a fixed term task such as a bug or a feature - - persistent branch - - branch that exists for the lifetime of the project - -2. what is continuous intergration - ---- - -#review - -# Branch -Split current dev path into two to work on e.g., a bug or a feature - -![Books](Books.md) - -## 1 Overview -- allows users to work independently -- development continues independently along each branch - - can easily switch between branches - - can push a branch without affecting others - - branches can be merged back into the original - - always at least one main branch (usually master, main, trunk) - -## 2 Default branch -used to be called master -now called main - -## 3 Methodologies -### 3.1 Working on the main branch -focuses on not creating branches -- over time long branches become difficult to merge -- smaller, self-contained changes are encouraged -- focus on main code objective, avoiding side-experiments - -sometimes this is not possible -- complex bugs or features need branches - -pair programming -- e.g., vs code allows multiple developers to work on the same code at the same time. - -### 3.2 Working off the main branch -- branches can be shared with teams - - still isolated commits from the main branch -- more commits can be added to a branch _after_ it has been merged - -### 3.3 Feature branching -all new features are developed in a separate branch -merging to the branch "adds" that feature -after a feature is added, it call still be added to using the same branch - -### 3.4 Gitflow -viewed as ovecomplicated -a set of shell scripts helps it be used -highly structured - -e.g., -- main branch -> branch has commit for release versions -- develop branch -> branch is where development occurs -- feature branch -> branches branch off development branch -- release branch -> branch polishes for release -- hotfix -> branches of main branch thence into develop - - - -## 4 continuous integration -- [CI vs feature branch](https://www.youtube.com/watch?v=v4lijkq6Myfc) - - [cl vs feature branch](https://www.youtube.com/watch?v=IXQEi1O5!OI) - -## 5 Topic/feature branch -- created for a specific purpose .e.g, bug/feature - - can pull from remote without marge conflicts (should be only one person working on branch) - - the more short-lived branches are the less likely there are to be merge conflicts with main - -## 6 Persistent branch -- long term branch that exists for the lifetime of the project -- e.g., - - release branches - - release v1, start on v2 - - security flaw in v1, needs to be fixed - - v2 not finished yet - - create branch at last v1 commit and fix there - - also fix in v2 (if applicable) - - v1 branch will last until v2 is released - - specialsed versions of code base - - e.g., to support specific platforms or hardware - - e.g., to support feaures for a specific customer - - features for this specilised version on go on that branch - - keeps specialised code out of main codebase \ No newline at end of file diff --git a/content/notes/config.md b/content/notes/config.md deleted file mode 100644 index d04b1528d..000000000 --- a/content/notes/config.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "Configuration" -tags: -- setup ---- - -## Configuration -Quartz is designed to be extremely configurable. You can find the bulk of the configuration scattered throughout the repository depending on how in-depth you'd like to get. - -The majority of configuration can be be found under `data/config.yaml`. An annotated example configuration is shown below. - -```yaml -name: Your name here! # Shows in the footer -enableToc: true # Whether to show a Table of Contents -enableLinkPreview: true # whether to render card previews for links -description: Page description to show to search engines -page_title: Quartz Example Page # Default Page Title - -links: # Links to show in footer - - link_name: Twitter - link: https://twitter.com/_jzhao - - link_name: Github - link: https://github.com/jackyzha0 -``` - -### Graph View -To customize the Interactive Graph view, you can poke around `data/graphConfig.yaml`. - -```yaml -enableLegend: false # automatically generate a legend -enableDrag: true # allow dragging nodes in the graph -enableZoom: true # allow zooming and panning the graph -depth: -1 # how many neighbours of the current node to show (-1 is all nodes) -paths: # colour specific nodes path off of their path - - /moc: "#4388cc" -``` - - -## Styling -Want to go even more in-depth? You can add custom CSS styling and change existing colours through editing `assets/styles/custom.scss`. If you'd like to target specific parts of the site, you can add ids and classes to the HTML partials in `/layouts/partials`. - -### Partials -Partials are what dictate what actually gets rendered to the page. Want to change how pages are styled and structured? You can edit the appropriate layout in `/layouts`. - -For example, the structure of the home page can be edited through `/layouts/index.html`. To customize the footer, you can edit `/layouts/partials/footer.html` - -More info about partials on [Hugo's website.](https://gohugo.io/templates/partials/) - -Still having problems? Checkout our [FAQ and Troubleshooting guide](notes/troubleshooting.md). - -## Multilingual -[CJK + Latex Support (测试)](notes/CJK%20+%20Latex%20Support%20(测试).md) comes out of the box with Quartz. - -Want to support languages that read from right-to-left (like Arabic)? Hugo (and by proxy, Quartz) supports this natively. - -Follow the steps [Hugo provides here](https://gohugo.io/content-management/multilingual/#configure-languages) and modify your `config.toml` - -For example: - -```toml -defaultContentLanguage = 'ar' -[languages] - [languages.ar] - languagedirection = 'rtl' - title = 'مدونتي' - weight = 1 -``` diff --git a/content/notes/crocs.md b/content/notes/crocs.md deleted file mode 100644 index 12756298d..000000000 --- a/content/notes/crocs.md +++ /dev/null @@ -1,19 +0,0 @@ -# CROCS - Communist republic of computer science -![[Pasted image 20220311100212.png]] ![[Pasted image 20220311100213.png]] - -## TODO -- [ ] Setup gitlab -- [ ] add webhooks -## Information -## Roles -- Riley -> Team Leader -- Arlo -> gulag Inspector -- Jet -> Food Rationer -- Will -> Worker Scum -- Brad -> Propaganda Distributor - -## Comms -Discord - -## Meeting time -Friday Afternoon \ No newline at end of file diff --git a/content/notes/custom Domain.md b/content/notes/custom Domain.md deleted file mode 100644 index 72cb466eb..000000000 --- a/content/notes/custom Domain.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Custom Domain" ---- - -### Registrar -This step is only applicable if you are using a **custom domain**! If you are using a `.github.io` domain, you can skip this step. - -For this last bit to take effect, you also need to create a CNAME record with the DNS provider you register your domain with (i.e. NameCheap, Google Domains). - -GitHub has some [documentation on this](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site), but the tldr; is to - -1. Go to your forked repository (`github.com//quartz`) settings page and go to the Pages tab. Under "Custom domain", type your custom domain, then click **Save**. -2. Go to your DNS Provider and create a CNAME record that points from your domain to ` steps one statement and steps into function calls -- step over --> a step that treats function calls as statement -- step out --> return to the instruction after the function call you're in -- continue --> go back to running code continuously - -### 4.2 controlling debugger execution -Can run normally --> debugger wil run when program crashes -Set Breakpoint --> debugger will stop program when/if that line is reached - - conditional breakpoints only suspend if a condition is true -Watch point --> program is suspended when some data changes (e.g., variables) - -## 5 debugging non imperative languages -e.g, spreadsheet (Dataflow programming) -- no breakpoints -- must step through _iterations of computations_ - -e.g., Equation -- break into smaller parts -- try 'compile' it in multiple ways - -e.g., Data base query (declarative programming) -- -reexpressign the query and comaring can be useful \ No newline at end of file diff --git a/content/notes/developer.md b/content/notes/developer.md deleted file mode 100644 index be0542ec8..000000000 --- a/content/notes/developer.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sr-due: 2022-05-13 -sr-interval: 46 -sr-ease: 290 ---- -tags: #review - ---- -# Developer -![[Pasted image 20220301172040.png]] - -## Role -- translate technical specs into code -- test code -- maintin system - - fix/locate bugs - - add/modify features - - test, test, test - -## Skills -- logical thinking and problem solving -- coding and testing, toolchains -- database, networking etc, (as necessary) diff --git a/content/notes/documentation.md b/content/notes/documentation.md deleted file mode 100644 index 5363d0705..000000000 --- a/content/notes/documentation.md +++ /dev/null @@ -1,61 +0,0 @@ -# Documentation -## 1 Who, what where -- Audience - - users - - other devs - - your team members - - anyone trying to understand you software - - your future self -- Locations - - source code - - project repo - - emebedding in program - - hosted separately -- User expectations - - evolving towards software that _facilitates experimentation_ - - No help docs => everything is self-explanatory - - high usability - - users familar with many abstractions - - e.g., touchscreens, menus, links -- API's - - for devs writing code to interact with your code - - typically coupled with docs - - entirely technical audience --> tool generated docs are okay - - not self explanatory - - used by devs unfamiliar with code base -- Project Docs - - meaningful commit msgs - - extra mangement with e.g., github - - issue tracking - - ensures relevant material is cross linked where possible - - can easily refer to source code -- Source code docs - - header comments - - software licencing - - support devs - - indicate code ownership - - in code comments on fields methods etc - - keep in sync with code changes - - descriptive variable/class/other names - -## 2 Built in language support -- basic - - syntax for code comments - - indicate that the compiler should ingnore - - also more advanced like python "doc strings" -- Structured comments and docs - - machine parseable comments - - e.g., javadocs, perl plain old docs - - creates a doc website - - uses annotations e.g., @author, @returns, @param -- Literate programming - - donald knuth suggestions (1984) - - source code should be primarily natural language documentation - - executable code snippetrs are included within the description - - tools are used to: - - tangle the code snippets - - weave out the documentation - - Modern implementations - - jupyter notebooks - - swift playgrounds - - r markdown \ No newline at end of file diff --git a/content/notes/editing.md b/content/notes/editing.md deleted file mode 100644 index c8cefa0cc..000000000 --- a/content/notes/editing.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Editing Content in Quartz" -tags: -- setup ---- - -## Editing -Quartz runs on top of [Hugo](https://gohugo.io/) so all notes are written in [Markdown](https://www.markdownguide.org/getting-started/). - -### Obsidian -I recommend using [Obsidian](http://obsidian.md/) as a way to edit and grow your digital garden. It comes with a really nice editor and graphical interface to preview all of your local files. - -This step is **highly recommended**. - -🔗 [How to setup your Obsidian Vault to work with Quartz](notes/obsidian.md) - -### Ignoring Files -Only want to publish a subset of all of your notes? Don't worry, Quartz makes this a simple two-step process. - -❌ [Excluding pages from being published](notes/ignore%20notes.md) - -### Folder Structure -Here's a rough overview of what's what. - -**All content in your garden can found in the `/content` folder.** To make edits, you can open any of the files and make changes directly and save it. You can organize content into any folder you'd like. - -**To edit the main home page, open `/content/_index.md`.* - -To create a link between notes in your garden, just create a normal link using Markdown pointing to the document in question. Please note that **all links should be relative to the root `/content` path**. - -```markdown -For example, I want to link this current document to `notes/config.md`. -[A link to the config page](notes/config.md) -``` - -Similarly, you can put local images anywhere in the `/content` folder. - -```markdown -Example image (source is in content/notes/images/example.png) -![Example Image](/content/notes/images/example.png) -``` - -### Front Matter -Hugo is picky when it comes to metadata for files. Make sure that your title is double-quoted and that you have a title defined at the top of your file like so. You can also add tags here as well. - -```markdown ---- -title: "Example Title" -tags: -- example-tag -enableToc: false # do not show a table of contents on this page ---- - -Rest of your content here... -``` - -## Previewing Changes -This step is purely optional and mostly for those who want to see the published version of their digital garden locally before opening it up to the internet. This is *highly recommended* but not required. - -👀 [Preview Quartz Changes](notes/preview%20changes.md) - -For those who like to live life more on the edge, viewing the garden through Obsidian gets you pretty close to the real thing. - -## Publishing Changes -Now that you know the basics of managing your digital garden using Quartz, you can publish it to the internet! - -🌍 [Hosting Quartz online!](notes/hosting.md) - -Having problems? Checkout our [FAQ and Troubleshooting guide](notes/troubleshooting.md). diff --git a/content/notes/ethics.md b/content/notes/ethics.md deleted file mode 100644 index b12428690..000000000 --- a/content/notes/ethics.md +++ /dev/null @@ -1,59 +0,0 @@ - - - -coded biases doco -# Ethics -## 1 Case studies -1. [[facial recognition in US riots 2021-01-06]] -2. [[Anti govt protest china]] -3. [[How is safe enough for autonomous vehicles]] - -### 1.1 Differences 1 vs 2 -Govt vs vigilante - -my judgements contain additionl context - e.g., pro-democratic vs anti - -world contains vast differences - how systems of laws work - extent of civil liberties afforded to individuals - -### 1.2 Discussion -When developing a technology you dont know what is could be used for - - - -## 2 Ethical handling of data -- Data moves very quickly due to computerised systems -- privacy act 2020 -- its unethical to ignore potential security problems - - df - -## 3 Ethical handling of bias and errors, e.g., in AI -- large datasets oftenb incdlude bias and errors - - to AI trained on these datasets with also be biased - - e.g., facial recognition trining overrepresenting white males -- ML algorithgms are often opqaue - - its not possible to understand how decisions are reached - - makes asessing suitability of AI for a use case difficult -- explainable AI -- attacks e.g., 'trapdoors' within ML training data - -## 4 False or misleading claims -- pressure to release can lead to false claims - - are features fully tested -- need to assess risks of bias -- e.g., AWS uptime information - - rumoured that service status colour is n management decision - - - -## 5 Your responsibility -- dont stay silent - -## 6 Professional reponsibilities -- comp science per se lacks profressional standards -- there are some prefessional bodies which encoede responsibilities - - ACM coc - - IEEE coc - - neither are specific to NZ -- Within NZ must consider treaty obligations diff --git a/content/notes/facial recognition in US riots 2021-01-06.md b/content/notes/facial recognition in US riots 2021-01-06.md deleted file mode 100644 index a92c96dc4..000000000 --- a/content/notes/facial recognition in US riots 2021-01-06.md +++ /dev/null @@ -1,6 +0,0 @@ -# Capital riots face recognition -capital riots occured on 2021-01-06 - -there was video from the riots which contained faces -- facial recognition acquired a pic of each person -- faces were uploaded to a website diff --git a/content/notes/finance.md b/content/notes/finance.md deleted file mode 100644 index e25211738..000000000 --- a/content/notes/finance.md +++ /dev/null @@ -1,6 +0,0 @@ -# Finance -## Trading -[[Options]] - -## Tech -[[Blockchain]] diff --git a/content/notes/git.md b/content/notes/git.md deleted file mode 100644 index 21727afe3..000000000 --- a/content/notes/git.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -sr-due: 2022-04-12 -sr-interval: 29 -sr-ease: 270 ---- - -tags: #review - ---- -# Git -Git is a tool to track changes to sets of files -It is the most used [[Version Control Systems|VCS] - -## Team git protocols -you can develop a team protocol for Git use - -e.g., -- agree to commit often -- know what branches are being used and why -- consider pair programming / live sharing -- try not to touch lots of files without signalling why -- agree who's going to edit files that maight not auto merge - -## web based repo access control -owner of repo chooses who can push to project -- maintainer -> cant remove data -- developer -> cant manage team -- reporter -> cant change codebase -- guest -> can view - -### open source collaboration -you want contributions from everyone -but you dont want to manage user-level control - --> pull/merge requests -unknown users can fork then add a feature/bug then do a merge request which can be reviewed - -## git repos -[[Git Cheat Sheet#^3b3a5d|Repositories]] maintain code history -can be conceptualised as a graph -```mermaid - graph RL - A[HEAD]-->1[MASTER]-->B((ab348b))-->C((hf33h3)) - C-->D((3hh39h)) - C-.Merge.->E((n3383b)) - 3[Branch]-->E - D-->H((kfj383)) - E-->G((gj4jf4)) - G-->H - H-->I((fjfj39)) - I-->2[Inital Commit] -``` -```mermaid - gitGraph: - checkout master - commit - commit - branch newbranch - checkout newbranch - commit - commit - checkout master - commit - merge newbranch - commit - commit -``` - -![[Pasted image 20220306103955.png|300]] -- nodes are commits -> immutable snapshots of the tracked files -- edges record how nodes emerged over time - - arrows can be read as "is derived from" - -git is a [[Version Control Systems#^98d838|Decentralised and Centralised VCS]] -- every team members has their own local copy of the repo -- git repos are often syned with a server: github, gitlab,etc - -## levels of complexity/Abstraction -```mermaid - graph TD - w(github gitlab from web browser)-->b(graphical ide's e.g., vscode)-->c(command line git)-->d(low level git plumbing commands)-->e(direct manipulation of records within repo's .git directory) - -``` - -## Limitations/pain points -not designed for broad usability -- bottom up design stems from its implementaion, -- rather than top down design from user interface -- thus, command naming and syntax can be unintuitive - -git is not suited to handling large data files -- git scans whole files to generate hash codes -- can use git lfs (large file support) to get around this - -flexibility of git can lead to high cognitive load -- e.g., many ways to get others' commits to your repo - -binary files e.g., JPEG images are treated as whole -- no differencing, no content merging - -some text files may not have stable line structure -- e.g., XML data can be reordered wihout changing so: - - git can auto merge when this is destructive - - git may get confused and force you to merge -- e.g., node package-lock.json -- you can turn of auto-merge if you are working with files that may be problematic - -## advantages -git repos' data structures are well designed -- clear in structure yet flexible and efficient - -few dependencies -- widely available -- free and open source - -community support around use of git is great -- eforts to get researches to use version control; -- github helped open source software flourish by making it easy for citizens to contribute to projects - - - - - - - - - diff --git a/content/notes/hci.md b/content/notes/hci.md deleted file mode 100644 index dd2690f10..000000000 --- a/content/notes/hci.md +++ /dev/null @@ -1,9 +0,0 @@ -#flashcards -![[Pasted image 20220302102809.png]] -# HCI - -HCI definition::The design and use of computer technology, focused on the interfaces between users and computers - - - - diff --git a/content/notes/heap.md b/content/notes/heap.md deleted file mode 100644 index ff73cae3e..000000000 --- a/content/notes/heap.md +++ /dev/null @@ -1,19 +0,0 @@ -# Heap -A tree -1. every elements should be greater than ites children -2. the structure should be filled from top to bottom and left to right - -To remove -- remove from the top, replace with the last element -- to fix the first condition swap the top element with the highest of its children until fixed - -To Add -- add to the next position -- If its larger than its parent then swap them - -How deep -- each layer is twice as deep and the preceding one -- layer k can hold $2^k$ elements -- to store n elements we use k layers where $k = lg n$ -- so we need ϴ(lg n) layers -- So any algorithm that 'walk along a branch' in while or in part will have Ο(n) complexity (assuming constant time work at each node) \ No newline at end of file diff --git a/content/notes/hosting.md b/content/notes/hosting.md deleted file mode 100644 index bb1d912ed..000000000 --- a/content/notes/hosting.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Deploying Quartz to the Web" -tags: -- setup ---- - -## GitHub Pages -Quartz is designed to be effortless to deploy. If you forked and cloned Quartz directly from the repository, everything should already be good to go! Follow the steps below. - -### Enable GitHub Actions -By default, GitHub disables workflows from running automatically on Forked Repostories. Head to the 'Actions' tab of your forked repository and Enable Workflows to setup deploying your Quartz site! - -![Enable GitHub Actions](notes/images/github-actions.png)*Enable GitHub Actions* - -### Enable GitHub Pages - -Head to the 'Settings' tab of your forked repository and go to the 'Pages' tab. - -1. (IMPORTANT) Set the source to deploy from `master` (and not `hugo`) using `/ (root)` -2. Set a custom domain here if you have one! - -![Enable GitHub Pages](/notes/images/github-pages.png)*Enable GitHub Pages* - -### Pushing Changes -To see your changes on the internet, we need to push it them to GitHub. Quartz is a `git` repository so updating it is the same workflow as you would follow as if it were just a regular software project. - -```shell -# Navigate to Quartz folder -cd - -# Commit all changes -git add . -git commit -m "message describing changes" - -# Push to GitHub to update site -git push origin hugo -``` - -Note: we specifically push to the `hugo` branch here. Our GitHub action automatically runs everytime a push to is detected to that branch and then updates the `master` branch for redeployment. - -### Setting up the Site -Now let's get this site up and running. Never hosted a site before? No problem. Have a fancy custom domain you already own or want to subdomain your Quartz? That's easy too. - -Here, we take advantage of GitHub's free page hosting to deploy our site. Change `baseURL` in `/config.toml`. - -Make sure that your `baseURL` has a trailing `/`! - -[Reference `config.toml` here](https://github.com/jackyzha0/quartz/blob/hugo/config.toml) - -```toml -baseURL = "https:///" -``` - -If you are using this under a subdomain (e.g. `.github.io/quartz`), include the trailing `/`. - -```toml -baseURL = "https://.github.io/quartz/" -``` - -Change `cname` in `/.github/workflows/deploy.yaml`. Again, if you don't have a custom domain to use, you can use `.github.io`. - -Please note that the `cname` field should *not* have any path `e.g. end with /quartz` or have a trailing `/`. - -[Reference `deploy.yaml` here](https://github.com/jackyzha0/quartz/blob/hugo/.github/workflows/deploy.yaml) - -```yaml -- name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} # this can stay as is, GitHub fills this in for us! - publish_dir: ./public - publish_branch: master - cname: -``` - -Have a custom domain? [Learn how to set it up with Quartz ](notes/custom%20Domain.md). - ---- - -Now that your Quartz is live, let's figure out how to make Quartz really *yours*! - -🎨 [Customizing Quartz](notes/config.md) - -Having problems? Checkout our [FAQ and Troubleshooting guide](notes/troubleshooting.md). diff --git a/content/notes/ignore notes.md b/content/notes/ignore notes.md deleted file mode 100644 index e0314211d..000000000 --- a/content/notes/ignore notes.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Ignoring Notes" ---- - -### Quartz Ignore -Edit `ignoreFiles` in `config.toml` to include paths you'd like to exclude from being rendered. - -```toml -... -ignoreFiles = [ - "/content/templates/*", - "/content/private/*", - "" -] -``` - -`ignoreFiles` supports the use of Regular Expressions (RegEx) so you can ignore patterns as well (e.g. ignoring all `.png`s by doing `\\.png$`). -To ignore a specific file, you can also add the tag `draft: true` to the frontmatter of a note. - -```markdown ---- -title: Some Private Note -draft: true ---- -... -``` - -More details in [Hugo's documentation](https://gohugo.io/getting-started/configuration/#ignore-content-and-data-files-when-rendering). - -### Global Ignore -However, just adding to the `ignoreFiles` will only prevent the page from being access through Quartz. If you want to prevent the file from being pushed to GitHub (for example if you have a public repository), you need to also add the path to the `.gitignore` file at the root of the repository. \ No newline at end of file diff --git a/content/notes/images/github-actions.png b/content/notes/images/github-actions.png deleted file mode 100644 index 8e977cb17794657bc8c52c50f0387b95323f37ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118756 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 diff --git a/content/notes/images/github-pages.png b/content/notes/images/github-pages.png deleted file mode 100644 index 2c606f588f22641ba11fcf97310d3e694fb25d95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231282 zcmeFZWmr`0`!+g?f(1w;DXpY*gGjf4bO}gzH;AA#sB{j}J<=W0-QCg+Lk%%7@0!PW zfBX5pANKyRkG((q=QxIg1+2C1`&!p^Ugvq<_YnMAK@$A|(E|_&gf1;5rVIi-Fa&|_ zy4^zsep2K6dI$u13X&ERdE=J6JMZcgZ9IdvM0{JuOhoLK-w>{tJ%J~SrS?OH2SE*? z4HO~ss<@t$;}u4t;&(h*(kMex3=Nc?zM-IJZGK9zdgUJ}6)!FI>1Dd!ByVy`&0@}6 zl$he#`HH&*E*>7(*8YonRtiw*59KM>Y)37 z4?fe1$o)Nd&vD=I_TQsS>Bl&K51z_@i2r*4GXI}j{RzhZ1n^HJK>znQno6l`GgSB#LG#GHg;R(rxBzOVswl@@@XqO0F1Z z2=L0U4dygf5;5rOzv4XFpv$kt11+)Si!}6^MUTIJ`ln!SsBhRr`t*+p+LFN=_)QRX zZuadlP5y~|T?Px|d#^yCg3jfZ7L7OGdGMLxOzSM?*DU^plhsNbRMEN<2F87*69I&_s3n$B$6U8~F0e_1bVEv5Z1g)j7Q1Cw-^CIT7hw zQ*5z{9)C(S=6Hk)dR=j}!4g#CE{pgY6!ixQmLiKxRJp(NG0{K6ZMg%=PeDE1#s>%R zZfw+)F-q4|MkB56Wvr{d@7Bzq0_Pubbu=Qg{ zATq0iieh47t*EE@)x@Cp?|OYCyTM>P`af_47r8d~k4MHoC@aTcqNgi&*#-pqI^NUu zObE|$`hfZO1)Irx!Q4SLc1mJmV|isRc&@iWuWOB)3K*~E|A64R(Zwh#D**wnm{^-u zg{7)J9SD@AeOA{~x~ThiSh2vc%F^tl#R4q5Z@ss$o<5-O^>O_Jhc_BG<^PF*8apZJ_XTc?`GC!T}1@%n5wp3_pTu<7Qq z#6B=$*r(M+sZMP#-v%;O4QUFdiWH*74i-BR`gzWCFejuskNx*jZytV#SA7cG056a9 z-jE((kSlG+?^Vuo6*pY=OuhBTxBOl078bcT+5UFGOO|=Q?E3)Y!QFTLVT!Ki3XPkyd%w7Q1QNPNf&&zQPck4cRG|*$;bs> z`AHh2jbJt^N=hy3q4E%ZO^Y8bV!I76AJ&bWxuBq_LdT8sLDDM8(d-?%@DzSmo8(y- zobX~;5)11~Lc){QMGq<>PK$CakDcl*6D+Kf+2Xp62G_+3tuqivhTFMgr0LOc<0*g} zfAHG`PXdni36(=(Lk%5F5hsD^l{W?Tb$$aIkgqRrRmmtL4@nWVu z@`*RCZ%9&>q=|X&&(%PG1d?~SBChlq^_1fsBHLvjtW3h;=bXY#)oO>cw(S*nAFjs{ zHWli9uTJY5tf{uMmy73NUGRa;$G@;QWMtN8Oo`l=glfT4m{u;Cu<80tyJr0lN`YSTB?r}@Qe!_fyh?Em1s(tv7Hr

wPkjz7=o|sfbY!dU=d}5d<^EhW9Fkk zVnTuHDZrn$6jN!9h8#mjACQciY%1fq4IbIALKJ&jS<57j=XW;fR}F)<-=KR2-N>2ApIX&7_7m6p$o^|!B7BPS^bH&C{} z=U6t7(u>y;7Ic1P;v1^#dgHxYwHWhAgZa5u>4`4^LC4TWYN!u^UNSE5H^AiL(me-7 z4KMqi^!CepE1S@Z_on1)R#WpC5YR){q>A zvNVufqdk&(pdumm=m{TV1mAkK#@FS5L1NoRn#*KYpC0#MG0J`4!*4t#u;(Rj4Jc31 z{u0sm9OL=hs5cKBvf*Tp=X~m{88}?)_9}z14w}fZu%hS`gHv4RSk3#&pNy`g%QA-s z1>r>SbGb|zTxnPqRT%Zfv)WJ2!;ndbETCH`#i4ZvwLnq0%sa=q9R+t%QZ9d|iU?d32e?)UrfyFc&`e&`+Z}1iA*qL z!|S@A8`><2DcLqM%AzO)ZJRRRAk7f*zl2Vkf;&@Oujxz%E?FDTw+jdb+@wf6Pn6a! zb^b!hYqAgVmd&f(Dk1t+7UTJ^9OKBr+ijg|f^LY0l2HtP+@?j70w$xXd6(eUNCDcT zqod_L*Tr!Al@9TZffT9&k=Chn**NUuNnO|Z%$c4!hgs`(2qu4~x{l9QyHc46P@-0q zTiGQCLY|%PEg_MeXo63$u(;>FEax0n(6frUoeouoi*@UkVcIs0;v9=h@c?1 zgKJEgJFJU7SM$r0*N|#TjLlko=oQy=QHD`x_)1qsB=D4x$XW6q$|9y`eAV*hKzUv} zM7zR5^IHv*cI7i4L1URMk-mL2G7ZXrn!ZnaGm-~55iCB!Ze3+~Gfj-aZ6A>7NNKob z9(_H)U&RwpBiEn!#D1Y>Lk!4%F|m4hPr(;qTfLss2>$g=Y>GZ(4=3T=^V3Xn+8DRk zFVHI=$Mrsi#98+!1?XB%#!4O3Xr&2JQ;-aP^f$~sl8+tHbFnx>^jS1ZGhaDAd>HDZ zpJTGMSey|dP(NlGNH$UcTyafdLq|0#j{nst13>j+WmZP+klqMVNv2GK^*9SlPiEV0mQFT0ZvwS4}-t<}M({-XDKK{D%)AGDg zAk{BV%-bPlaoVQh*0bfzr<(qkr&J6K43w1F3QSiX#~~Uw0Ry|cr4Swcn~Uh~JWsQU zLe0G6xYMR|LD-yNEqu?m{QwAg@RTW{xTI6>s_ia;J~m7Ji43Dg{IfFdzc-eOL*BUd z^x#%cUazi-9@%L2HQAh%y2KP4dznqbPGQ{u9~Ks?<3uF#0hE~{eDK^>I>LKNX5CVp zL-hx{ z!WS3E;}6IEI{-BaAlzmZbLO9^77%H#90McWAm`35J0ps1I^W;=B<#RXdRefrh8_Iz zkt2{#;$reiNxD)=Fmm+0yq1Ax?{G62y=xyYih4qj?5pQ>^5e>WQP8zBxRab9$$4J~ zF7QRFtzvTVF$%eNy)x_%0|bFY`Z(XVx>$!QS|-0RcvXKoz`vFV8{Qm7;#kO{ZK-{y za_7y#)q$)xm+SsqS8p!>F|kEjv6cr%W}}xd96mbvRGsyy?q0z`8{Nz9)Pi({lnSFs zU6+XCt5jmqR3Eklx4ku<@3Xhs2M=msjpL;(e<$s$3zYIp6O(zKl#YLA{QULza z`*=ei;I|i5E$G1;VfQ;b`F5gxu3^o7kujIMP`Xq`pZQ|zB<0TQ6P4*4tzxr_C?S21 ziKHcqL|V|WxM4AB>?2y)E}YY?M!rsiF%Tf zV97!d`@&0!&op#i8}==?w6iYF>`;EuAQIS{zD~>4uF|W4X(XgJV1(|u%y3pt+jJ80 zTD%!K7Jo<(>!!bf5N7y0*f*a5Db}ptu2nG^63SfvbbxPTE=a>e{K5x~1Xr+*95;pE zmdJXhJUBTynULGYO90jqN}~{0zXWeoYSO!o*|&EAHx8Fc!lvx6_A*Q)B*KWfnUOtc zc|#Yr$iin+t~64Awl~vW4PBw4T%KA{3DA2jv zqM!2)ucV=5XdbV#TCVrG?OzatpkyT^B-jt|nie_rhfH}63NHHv#-hqA3Lo$CoUTS0 z?l4t_%~(S4G9-PmTR#aBAUR7=5K65}xE3cny|eG%$==M|VVz9#-LFs=fNoORD}Wo3 zBo2A&DI9+pQgBQR9{0SRZq4m4NW!S&-S5o0I{gj#mLBBZnd4;!rXB6*=^~uV6U1u+ zKVP0)3@5J}@h0ZBA#t5^kxiaFXhCK+@W9%q>{q^a7@L@M6mc)U@sf8l=3OaQSsqms z4rS>KLn3(9oQr3VJ#mFCIe~usS z1Q9$7iqrQh)}iPN3d)G!p)B6_6?d9(TfsgpEG*>N4r*QLrXyqGyyGqfNws%IFr*)6 zCuMszp3PViG!@5uNuHlK&PiEbBLIi`?l-89m};GAF1Vd$op%=3QTG?=*114;5{;A9 z626q2OlwtG#O0crOoRuL*RxzEJFC4jHm2$C1ya^$<22kfl?->MaI|{t^pAoAJth4k z%*TITJ!hw+Odm&;FQ|?x?T_bVZ@gHaJ-46O)v&#$E$Qwc?nEW#h$P}vOZ_4UT~%4W z#*~l{>mFsm3BC*Mcg0E9EXyttDO<m!ifOLjpE{pzT6^h%0F4G^^!Vp;@I* znc0lfb@_ypq|)%$uIr19cvhn=m{6Uu>`z(H&ExEWb5=^qnW}}f5dJ@-qz4+Ms+GS< zKLbguPC{Q_ZHagsvw6Su>n0zLTz%h|Gh5(_oJ7q!*%IN2B@4Ck^w*b;e-r3gctQ7{ zD}g}&GVs)+5PrtS#^P#fYGeI{D&s|ePixj!4o?SO`8I~m=RQ4QK|y8}BBS*CcR*=Y zDyDEkEUZ0k+t=+We@?(#vvBzHJ?MYTz`rCG^#8J(ny)&JUT7mc*k7=X|G(oe{G9GT z-PkQfUrLh|2~E}c+n|>T>ns`?<4k}4*xZ5gkG%rO?*H3vFOr&rKxyfKtz|ejx!6{B z5D{d*(kW?UW3#$`gIgnvAdx5Hj&RwVk(jNtPS>rg94?kmnle1@2Wmn=%M%YDzat1H z9CUfQ)5)c6t=SEJm#6RBA33?;RUl@)!^9O?X+2wbG=rr1!(eZ{^s_-hSWsc%r-FKy z+HCnGEOH;XJ@g9DsclVXvvk{I(g&VzG#@;8U^w-VMb%8f#3W^NsL{LJa+1qpvbZ6U z?>AWGvm-5=n-@M;dsS|BOBwbE6wLOy`ub?2Yy~ixN{(VA)`9P99n0t#yp1zn1`Od$ z^>^>yMSC`}0szU{dCI&{;5}Q(dcH-MZl57ha3-QQXSzF8y_7C1Gd3WwSIz@VW><6H zBhd4pv1wQtz^*u*u*60HN?lctUl-DFVe+W@>=L^|f!H-{Ajv5|JtFqf?SxKxF)+kz zvC$1pC=CfL&QTk3= zwd!}07T!Yo^KU$>7JSr`-Op;iBqi0!?8v1E2@dcczJfv{kcwg)uL-iv;WKdseL^ShP!zt# zjiOZymX4y6r2HbqdsD%^5OxEoG6v?l>ON=Kg5@Bg!0I%1#XJHUsobf5dBCu8JlOcm zXVE-L!TuP1GPVY7Tpu9$Js#%5`n_Jz@%T;GpERt8Kd#gywST4aOHK-4f#PMw=^<5Q z3{i_!N(!m>058MYlyzLLev{A0aZ3vg6duabVO_O|2Rv*=kDD%|NXar2`IYDey69R& zFdYejzR!g!(q5pXtXwon+Voj!k|9NO(}D3K!-JkVah{SdB;=&vZ=^a(^q3yw1jloj zJIJN7(Vz-K--Hnf@|pJ`^ZMJMAo)DzZe^|ZZ@!rygnWp(v5nXJb(_LZPtCt>qQG;)jkgJGeXxzdu*)jfLSv2=ZO(+iUi0z!qUkGLvSb+0NwyHmb$f z=Q}g5;D(ibep}gmI_zL&MVH@`x;aO#4&}NCk#O=g-mE8OdH`xI)W42Aej-tl)JNll zcc(D((p2B)iHbvZb_H#r8ITb{MiG2$c{hMERTcRyLz)v`19l$>^d4^>F(fKo(bw0< zv$ncWP`6W2tiClPt)etq8^ftep^`?~9k6PDXNB zYe{Al7UtU&$}) z3QOWsHgYbkOrs;G~WAcfx)H* zS{t*k`sNL8YpO5Br$^q*65c2Fc`Gh+23I`GL!yR@-e<*!8}8RdRV%`-2=0yuV(`&L zDMY=gaYL*#f|R~q=vPj^2|zju<2^ZG@6obS6Zr~T~5Wo{jVjHWh#{(mddgq+9_4n5MQgzc8rybYdnEC7{ z&tV@sIylgC_^$V9+5^#zB`Vf783Xj8#mT1IQQi;xtA6edj~&juA)x~8a3aq1)=$J8 z0l_%3V>xmu_yA2-hx>GYrGYLrORh}J9xzT04)eDLb|T**^B6%7uTH~HC$(*}8gPMT z2)KB}k%CGtX1>75aOyMJqIlFmIdpj74(OEJt-i>?wi=V#s3m*v}C!T~@tVgX% z$ajfx9JBq#UX|GKdcPW<>FzmX1yChntVW&1C&!Fe9;e&WRLr$Y^%lNg>3;>ySLYwV zXUGt~=E$4aSt5&Z2)7p#Yv}8%z8aXNH)f(AEZ-Vk$u)|ItZ{c=OJ(2Ah+J7}jR?y@ z6C{$K)c56dQMbQ1UZ)u+;>y)uzDDO>#D^^)UVfY;JA*%DgjH_KR>!caU;Lg>iJ35hE$)wipI zh2f6_NqpXXoFoTYLOh?fmcZGe|CcXHWv?86HN`XmxcV~?C_iSf>6|`q0$>F6oA1`P zCm~HoA`H3eRr?m3tC0s|ql5Xc?>Qzs=jFA(e6msaDPn|M_={Anp#VF3nV7~2kd^f8 z0n^VI7!o<2UuO;iDyZ}Qjtyg3ZJ10QE-;OpGVUZ*+5abepOS2!chdbD z`}+__B_r3otj8aw-93Y zICI7%g&QzUq!`15Hej+uqxG6)JbSBA>5?!MBpnlD6dXSauUZVYEN-B9K6ioaiGyTl z;v4dOG)0`A1Ig7JjaSNNlfaZV$ICpeYNc~>RdN*i;Ly(V?Os;<`Ec&e=m&aqO?~}U zS&e$vfFIVjm6JkZtz8w7$Z0771jp-m-qpT6M!l0jKm0kXOG{fY>-qFI`^_JMQ4{W0 zDLYrxz zH7P0SO|Q-A@>mjr#rhLSFeqj^Mz3ge~A|($Z{`@>$^`-?LT? z#>sXg=F-A+lZ$qayOq5IfcZI2c8Qp^ZE81G*NJ(vSZ&m~JW1|*WIl4N#-!Eu`G>#Z z_2~qIl0IN9r|&dgwe8pKV_)qqG6A$vZ}|d{xG`)&?wz`>IlBk>zWQX6WcFskTF2S) z85hE^kQA3Wp@CgTy+`Cwy)E(=ACdX(pX$Mv=YuTVNpIM5r2;_8!iyX?+}86%?2n6F zsXvO_Hl9XoPE=UhKXy(42qmxiwdZ~RL=J_h@a&twwvuJZ> z$3`Y!cj}-%^YQu-8=Hkh)A2wsOB0+;BK$_sE;%WQ7$(f~Vt{WY8ha&Y@R_@^4bau2 zDf-q@JkJuOMfw0L$%wJ<^ETo5S1zQb|3gE#jy47r^Eu5>SOz865lU8>mX`3_ijd zcSl0MDj2-$=evo|=y_zo95tV>O5!2~aXZ@jL9;FT3B927>3Y2V%1Ws(ED``tTEW>B z^15~*&pl1JPewRb$Te)X>fBqc^;5~-gm#frq;=H{Ti)58E6!I7fYYlf7paEg4;OTb zFwAF|^d}BOY{5L6OQPz0T$F~}<>o*+{-m);a@xkFBXhN?S=V=8TPuMz(lnX2Nj{oFjF8Pj4NcZgHgyiE!mf;e$EHo^iBa53le6Qjz6{_w}tlH4$q| z=B+7N@Q|Od<5n$jc5&JLe(h3FKd?CrZi7XAZFLy$_ql?z13c{YK9ot@=CQWR7B<-X z!r0z=`(%qjkftOZ$s|4&Z|M!kAQ}t%7&;j&_9`Z{w&DTZK{tN32syEAQQG+@el zG9^PHWejoiYy9v3S@(Z$k)@=j1_&|+r6fM<84FCqVz*O!RsJ-~$zPH%g@3=64k-y` zHqA~g=4+ilZj|@fs8R+2>t@!MVP+}w`K2>5+EKLf%a@kLA@i=Y6*?=XH|Iuj@h?~# zlU`6bI5l`Jtgo+$Q?}oaXGpAX3H};hT1pQ;)?I)YC z6=dcS6=|yr2uzo@qe@o*1}r_M;Te*EH00`Yn7ux`4+b!abu-U&x!Ch23HODZx`BZ~ zUovNbSdnT$ES_GDaqm(81%-H!!$ra9C?^eFj@aWeg%m!d%3EF%jeN!#R=d2FRkvTS zvRiYtZ~q!*GtO*={?9<0!J)s%V0MztSEpBc17mq>slGA?IBI+*0GCyMTxOuARs%~r zDyp(+R}`=wp}y!j&@9_{Bf(GeE*5LKKpmoIHBw^aG*>NZHCG~P1tfBb(v=H?uH$N8 z#xkI}|v>E18hd`Lj|PbVuKSJQ5L$kL#bem22> z(57jctYz-$b$!Y$UC|LvPo|b}1gwJ$;(?Dpk%wrtH;YYOci6jk* zf*CrKVUmpKA0`UaS%|nTaB*lA7#(-{cBs*wZLHqB`AO#J*bBQhi>7Q&&R0_km%0C; z(k6uzsT#pvH{$i@%e~NLSr)pKw7T@)Zm-v6cMkN>A12YC*z$W5-y7zC>NTdQa*8sK z%VqA|4aw5Mp8F*|JAk0dd{kD{#Na-u~Fmf!FYh6C#9sgU|PNc z_`r$K+6jQ@)|CtNXVadL&F{mXhVxZ>&8EH^aO5tgwLOnO%pJUEYmG;WVgOxPoi7jc zlYkmluO3X!TdUKnzy7qh0x(BLrK_a|SG6nEC2iXhcdLf>b?AXCO9-SREPNR3gHH~i zLDKTM813le{o?_ek{6 z25`U+0~{BcaWo+}-`(2d2!<5I@mvi9>1d^V5&$wlY@2Qp$iNEXzVq*hRl~EP7m#B8QHA zz2S2$y#*-Du|iGu2>!Fp%u7IptYoR{YiCt#^d}Jz=sIXBd(T=|YGpYi7%d==B~p^& z2#$N*yK5DY%}^hlHX*JduRK+=!@?3vu3cu^oKY@2 zhkhv13WAg3)b}kXf7AE+U&aB3V727C?CP2G4r1Hqlfmz^YL2!oqZDSsf;MXx8_gjX zrX$(TJDFMvyo&iG(1ojlau{IN5uSG$t&t%BJt~!7VIDQ->wJ95y+}P?Icu`x(0{$T zqS(X9%wMOfyjP5v!+A)+%s2_hI*633wW;T@o}mT@xg)MI#SMObb?A=_ax*;-sy_Ra z6oQ!ZxYAX6^X3iQtFIbrztsd`gqn_I#^_fyy2mwjehDN`e1kA>I10}E74`4*zve*1 zVfHvD#X(uw8)!lHQ$Hm;0V<>X?KGBA6B`r5i{n!!51t)t-X%1Gls|KR=ZMWB7JllX z`YJ>9n{`MOF1h<|aLj;qxtWrV<2-snJ;Hath8uwOBBwc^7eehqhSr;E_nUeI3vHZt zXwkwpVpblUgEt1kd$06$iv??4uhf-4y94&coF_t*A%$P~OAxTWoTYOGEasR0lo)Qb zp2e;Jbbb&Wm`JDi!ri^85OJ?&jQisGbR6MA%Q`ske`9jjFpN zfT}<{57#yp?%cJv$1rEh*E@1(crq?k3nKfOHR zZJJYWf|L#L4PTwFeBG{^cUK3jN!`30RfQBTrdk*e^;%v^R(DtKlQ=yGCFN@XgLSrq zGmtw7RTPC8uo-lufrhxRiy#)bEln1sYBqKP}nx>j1*y6uX* zO>-laoZY04QHcd$lyQ3AOfK_|U_e%OJ=k+}I9SO5*p2e_Pf4=y)<_|)R1yJdq>*{< zzCTBJ@iVvjc;9mceB~MnSW{}dDB^84b-TEAyBcha2~yO6127nI%u-LCt&pU)9MId+ z(&F}WO?~;jKSqR7h9q6lWQJrF_QB3X5iyd71kV5!&I4F?Kzx+-zujDCO54MO={kW) zVV@%V1)wOkz776nj|?iveS!s3*02W30|Z1<;JAErIc!w1Xb29Nr!-{VR$Hf`)6>(? z^#T@kk4Qju%lF0-w+;R92R8pi%DWq%#+Miw^-Yx^)iXo=*$rT$=A=3q8kcJ_A`!$I z@Ow(GnGw%0c+U15U6So~hhu7Ojm_tBl}>g%ZFJmE-)EX~&pT+(IrUl(14aVT7)1X$ z-CJe|5HKi==ZlosqK~YirqxKMG$Zq~XU9E9@_f!A*Jsmp%2%4Yd@fVZDi<7j&sWO^ zWybV<*2di~V$_Yw29hL-!ooCkGzftWG>V?!TIZdPY17m%N1nXE<^-b?I&dtn@5Oe$HCxzhU5S~ z8ag@;5(hV{3HQ;>a%e}%0N+jK@%3b9z04UBKeE z(cx#)m4z#E04d3IEbbk*0Q!2rZm;&M;_np>Jh~vwyX)|1V&pE;eJFAVL>{698?*#T zQ|*m~b`-EkfXfDeCaYy?+9`;rp<>>iV|(lAQtm z7*B;94ASKb3Ps6QRP@mW*BnyUpdX5YO5Y9_0m~-bz#kkk@mztjXdsc>79Y0gs18{B znRAYpXT1Ey#6wLjp1MBWAMM+X<6?>6I!ZgcyKdK68%CX^m5@U{G?yKsNKCI6iQJZI z-`oLdu-wzj658lJ!00%4>*|1D5@S>U8~BUyj=rNaLRmERcUQ~5!&=Z4<)2Cqn-Wos z^<@M#gH==boR-bYdM`FYN@5rNzdr~=@sggrzHy#6> z`<%0an5sL-r7h*cXcm@<9?A;T19~{Fc*$OI?b$*}QC(~Wtazt*XNKXd!d2YL62f@4 zfQR>aA?bZIh@u-N*+)%*bMG<1sVCTx$CS7>N|laWvF`$7IkyF4Ql=| zQTtVvayZjn_8p$*7x#;0ULJnFnD~R!q^iwPNK=b|r#Al`y@pISMHdAOLnEUv@zHlw zRB(9sc$!CAl#MUp@Y}c#9{d;{zZF+7*cTZV_Uet?qhylZpPQ@qbV=v2dmn%R^%fKv zDXH`7wv)5-&$qUisZ5x)GkjU=ci;E*$<@2VFi=r14-XID9^nNCboKV5fC!%uy_A)8 zeq^tw$Gq?<;HhvEXn&v6z`&$@r^?nHyx^#T}bLlObr}mYyKkF(DbsH5m zBMGg9gq@4a2Vg7BjQa&#ARwSYQbK|jIijUaPz1ANQT+$XTML1KRL`H^wJBz{`(DKW zCG6?#>l1tD#3AH$4g&Ve@$mAsOm%IRtx*MhMo5<2?*@Um>H6f7UQ1_xN=;Cp^)kEd&DzE_sM zLg!YWnmH2c{WWoBiq7@bMR zCndDDwCHRJeERh1o9HCjgJX$EqF`S3oEUTMygc)Jp5%VznC8Hqtgmx%3JP}i4guf3 z0frY1KR+?6Jv1mhSlq&ch_SB^8813CPr~6cy8mkm-Mfg4CexJU2Evvx@E~xq2_0>@Im$(r=oB0}l@z6L*T3QK%#^B)l z*$Rn4evK#^Rl13k23Q!RXPv1Ho}k^AxNmbCe5#+cOJ&~2KD z;@S6Cm}JkGc1CJ&Xyr);iKKKEynx!1a@Ww-{83w^YD^$XgAsT$2Us+j&kw;3Q za@GSYYxnOTx8F}lDuSQ)7pUZ@CG;Aao8OX^Jq>)z!T`uXx3S{8ku%0D#Q%D76p60{ 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 )5`YXX zji=*UBAXpRZV~VYS)@A^`uZuJ-#$ z^M+k*Rws8+>*0N^8%&c?#PzGe3Ij9h4X&efaTna+p)bx}`iB=kP_Vl>H0Mpi37WBU z^rzrp=+{qylDYK6=fmf{K6Ob~J|=3%h0T-S5H|U4Ex)_yF@Gpd@6pgld@-)JD|-Ug zIJPZFY+?8Z$k^@?<}@h4CGWBsvH*k>g?yAGq<4jqsJSvh=5cY7-*H@U3i<j*IWV|&|N@yMaadxKY&!JD2mxHHa`qNtAd9y*SJ9jD+9?QU9+CTYibWqZE zW5a&dyh{SKzH|^BCj~8&X}%J2^iuxv;iIU4P`?5oB!Yf?&C3C9{%8Ykw0o5xqMFtw zEqFELD3z(M8_X$8i0Z1evc25wJCx7PXEmuXBj|!A^L~`@55ln6gXIs2LQ5S4zA&Kk zx*Wm}tzTp}85tK|`*;Lkl6L$!_Wud#)y z$IS)kUSwla$ZUR)gfV&a=�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⪙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

  • }E3yC?SW5SMiOD}XWa4PY>u;YYits66xFWv>Vee@FU>^&2{!?-#pabE_TT+0IW+$ z*sHj6>XMEjsbq}3jG)D>%V+P$f4}o9PEk7>O$+RUEGbf#0Vec-u=(#{SFR+^QmjAZ zb@~C}g}BVDd5m>R};1M)LV&Hpg5`OuD!+BJEbN{0Ii`7>p(|ATzw`Ea4s}( z2=??iw6BHQ9Y5{xa!~8`?T1%YuWY|Pd5RzgevQ?A`TA4+>W;Aq+OWUO%@7G%ZW<@$ z{~J~IU3<*7^VYRK((d^6Hnftj%Ew7BNAJ8m-4N@Gu~1}Rje|C@X}mO{fUSGeo9#w< zN=MJ^Rl3C2jDIl-;TX+1aY0Za&(Cc_H;NyEy#FIKRK>M&tY-B`lALD`ZO4i3&MXhY z{r<$2Yb}`@_Hwwcu1**VxZh|^gt0-bA%()1Myx5yzTJ8Fy|Pq<2&8|m!D(Rg-yia_ zySq`|on*s-CzpSG0c}MJ+h#@p-~}-2uV5vY!Bp50VB33l4<3QfEt$uAOXXLHnVsf8 zl^vC;;M#LU%7yvtSW}>sih66oFIS-K0>-gSejj-?8z(|WKS7;!UP{U%*BaWtDWF{O zu-i@tL9({rCS?Yh9^;pLB@D_T3*7G}C5T&#LV=H#x+!$^4anEAXXfA${2(F^U;Oz9 zk1!Oxe^1q=<~9I$AuDK^)+1?Lfpv@$Wq{~B`$V#clXkSk21a!?HESc~S=d`{J-v+tRyP||l_G_i4K7%)*l=cX>a914Ku(+$TOT2Ni0-U|)sV#pI9$L!9$_Q4 zz|>SmwkC=|_d?YG8U8^l{kxKm<-=BNI-M{837M}yH$VQ+!+pxz;>mK2830rcTI?;9 z+HY(Xobc_{OMBiof2nEF|Ni|9GAF3vxTq#O?!Kci5t2VRk(NNJVW*WiSxg&&g~P%Q#joD}$1`8M*PT)q_x-{CKGcNi{OXAdF9(RxJ_|zz z>cRN;_kJ)!F7_1`i>Qka+~gd^xR{_uIz9eOar>Nk7?%?+6s)h!EoDetc~~1@V`Ia& zIj=8ayBDhiE(F!1QN)rG_v&c;)h2(cs^7v!p;2Fvvr#y$zOD{Jr77~!XJXejHn6Ew zG8yf3NhO;Vs-F4NzlWP|el<8zel+RM6(!%@r@EPH#ZSFSAU4Q-_4T)~r+tPSF8#EL zNAaIO)06~xuLxyo9WLP&mXe}=he=IN&H`n3bpTEvUeCF;NOXM6C1KjE7{sq`Mt!^Te@$!Pr37(YTtS;YRk`P=tD zq4NJr5`1M1)e;_vp=vqbtEc#1|DG%ExSd<6!mp)t?%E&THjP7??q*953Oze)IRA=VI>1O5j?nJf~6hHeerY zTTGRm{OH3^XG3PPoQK{`#@rS7cE0{$%UIU!JOl$4HFzZK#&{^T-pZS~G3?uHy*BwM zCN!t*+o_KX%}oAJR^)xq!#r=&! zc5qzp5Hd$6NO*6Z;{Y8pdOtkz{`|Vx@yn}oysD0ON~+dU(mY36)xE;L-RJ#o8Dv|p z1)~ISn@zN~QVHFCaS2UfG!B&pkjCh11Si`T4kpJ88go(NOT8My%{U`yvhgUdOvT4- zkB04wwjmI(iLBn)2uSX6KuK{5Ai5M3TBR8dIY+f_08PaY55@JxMy*@Urnx#%?B|;T74VPMX@lx}IB_ z>O)EC)l*g!D|#0k?@dU7h$)N)yOz}NHJv^jHnr`jlj_KzRCZ<(u1fIOc$qKPF~)^k zUp*EwQEcwSjlJggs1Z2@yml)~_hAR`54K&Mf#f3VS>};2j5ovDk5t3&j(W(tzp0g_ zDG+*hlQLYNqVSgv+qX|$)%5f3k1oVKol;eozIi)FlcjrmmZqSI!w<61y^S`pVc&e~ zwS})A;!8qkoeGM(1@_*p4ra!Ouj`6S=}{Z#q<0shp;;?%ELFYvHC&pTb92zVN7AxX5)Q$y>a9y+?7n!U$blY?jH0qib$rt@PA}#t@0P){qq~>G1%iLW!oQL9z1|BhX~g~P=9jGj zJXThdqlvbm$=9E7kUs4lh#)0c`VOD<>oB0HQeX1Q8dc7}1;570(K73f>E7(o0LaVw9Jof7w`h;@v%O96z-$>t+;vxx%ek^hwea4#F`z_o~*p z{^-o|HAf`SD0OE(t1PbEq<#Gq1FpJ1TIE^2GNtW3*_h}!%VpZKW3A-WE`e)#M)uPk ztKoM3v)T-h>bJ>rK!UonLKwS&v+-rCP5ikGo1h%8RF)GoE5#h(6x8xBMlHH@H~ z`@NFI$8(&yJw}9M_9#LN{rMibr7&XUl}dGfh-k4T4z;P4tr3k{3kElkS?Se_6;`nF z+X(KjYeJz-uey)bn7CJMqV6R9a!zWG9KRk!F0R`dA@j-yZ$_kF(1`8`bDI+{Yk9wxA5~fx+p4k*5lnGw2C@}gs zCGvVl7r8i9Bo&fM9l^W45J_k$sa=Y*_8YzeT?5$X?Au7G&RQx0M3mbD%3hTC#CR3; zzwdSz6lCoW#zSK-a^VixI)QEv))Hm5_)wD!+mNXK2#Te9y=vIUL6gnexgCCVaTXBs z#?1=|rezfNI1uJf&th5t2geGRJ9f4`{qdB{y^l}tTsbWoWsazadvA;I08v9I6^#5% z^{@HA{^Wh`3ozAoLBJ#?%Q+k7s^P{0{5)^9QY}LIP0AV_!GfHN35ofnJ&yZ8&Kk+G zPF)?dW;UsSQ*k4Fft&NDZnnOSCTy*ptM=sC(bkKWZn2$}Bl4**EUe)y%K-^^P^x@$ z$NG<>`=aFxO{$?lZWG-a8%c50mNbC|bU5rr<%n-{+QVIHS(k;Y1BfsK==FZyteY{X z&6bxcNrL7zw<3k1k=&i-BPjF?P!%$zbt(*@hqpJ$)p`TwPQ}5B_iosP%x_jypp(YL#oV-z`vW>c|xHi5sVs;KA&Gl())ex|Re zt4o=Z)Gk$hd1KMMi0hGUv?AUzf&8T=LF})G=LYUQLU@B;E{Qo2xS_?zLhGilwJ__w zmk;vH#+%uSWk`vMX_MfCt<_GM$#nH4TNPVe1f!^7Q8Zwe8Z*UCg;HhQ1vgn|7&7X#9udfw^DX~?gl8>(=gu{6eIYtcx4^u3Z|n8>mK>}MF!@Q zD%2(M$|1Y>oshNG_jW%NX3ZS`s}{f;DBP{_0RF^ylaamP&_1-86i`{Z#LACH<9Wg0zGVWM3K=UEBgI8+tAtm-PM=sJTZPlo(!RS-EX?$?hsgn zdINB;=fb!*OSsirs_qrZ#{V2>+oe*+<#Y3GK7A0K|m+z@j!12p*8r|-^BG#*5J!am{tiIN|8K#F{|3|aUrRugv`b&holNQa%J!|slwa-z zH>AiFR`uCp2yi!A*OO(r{dd=Sdn2dudx0aI`jfi>TNs26>6n5R zINBIOq57`y-7mV^(+k7FWJ=j&Q>sH>Qa9GROG86G`!^md zNMPTnT%xkef(!@75#Ac5Fk1J1TB>GdZE9;`sgl9IRkBKeS6h3#k&R7;b8ka2Rw?wh ztxifDUTp^_3=Ief$Ov3quqc^NB#qmIL{K;cgR8i|*|dEH$v-lU&UNx1{V-YvZ=6YlhAUapoxub9W=J6u1BkJdSigRYad^!&%d>hKkU|C zTsE9wIg3Fsh%B`2;IW$1MC$?i-e0frD6?b-YyDoTdq}EzcALkhW5Ci~(UvKMSZf6_ zxlk3#Ho7}o!)ZN>#lj}%u7($COF$8933DU_+cb5&@QihmFK2N}r%=ULYC zMnD3~B)`I?UlhLB!O~ryot@=fS#5S6tuip(-oO~)$A3qNPUy1aGmrDdN!vHHc%>)k z)KmUKaf+5a^tAVkNd_3gT9r(Fke0oL=oD2+gWdBy$ zsY|*Y&6&YSVRPrOS$60;Foe(*h?E@pB~tG0{Y@GnDPzA-NF1giB~BMS8#zIOXP#;j z55{*~CuKSTAZpujM1g&0r3%+X;5T#)ZWS8k&rIv7wGP_qwMU4RyqeRNG;zR#WgZu8 z5vmgGuqQ+8PCCP#$NAlDZtIH4V7j&=KBmyf3G-d;UGTQbgb5mgxpz@FEh%P?NgbZp z5k;TIrw8C$1MpF(CQe>?@#*FmLXWmo`f&=;Y4xJc9C`e&nR)+F?8mJt2Ohp|xqDBUhaJ3OupXw$wo>#13tk zS1s5-tdv|*?%SnKO5>xdHm{tx;I*@W(8A*;N{m0b*Dj?Q>8TYOo_YBG(f);jdMD&e zS)^2#!h~-7F@-V1qHLq)=zytGJP$)J=@&JHiNK&hdOf~J8Fck(Uu_mh4GG%3eCT#_ zG=FN8{McK=VlsUA-OzF`dAtbQ#0N$8>Z!}dsBh0Kji~wK41apOI;%F#Qf;J`v72GCgD^7QmBZd9OLtW+XBA8Q2 ztbPV#uw9A-%B0$zvNcTo)&HQQ8o48Qy}Ma)u4+0~m_8O_Hel^UIXpeVT6tm>+Snfe zUQM*Ke)>3(RAnEtH~!`u82WC7!IG$M{?5`5AS!EGVj@sLN_BwIpew04t+BMPH#sjs zl`!SHrWW_Y_(%;iW$oTyKZKhezIUg`*)!JWo zBkL6#R%8f1{0%^iX7g!jk-0%hEM zHWRUTYjdem&mB)I5q(k^cH z$yyb>`f85ogl(37iv(^go3d_rrd2l%ZQvtEqe2V20)fenC&s zX-hOhz9l`wH=GXRIXjayb_t2I%~H>6Ts$ng`N zgSpYINs1o!%NzyBZhzNy2YXl|^|GKJwbD$U=vFRXeZM?-trg+btAm>E_kiD z0AP?oyqfVn#_|UMA=Tln^i`JY#si0gF!epC4H;f}w_leVNaMk~R0L_x(gR)jtaQ2w zaF5<)L2AYH@nP?nvECx{-lKwY!ilz?CTjc;85XbHWggpL^OCyV9#K-jYHlL3!{(eP zO+p^%3f%4bKyTOjr3kTz{WY6FZLmVO!m_-!t&8YM?4}xzHh%0oEa%Shfj>Y`%1sRa;crvqgfDf9@+zT*ejoCVC2Bjro5}ePSu+`{IUyl)`f>6#k(tpzuQQ)&27N%35BG!msFwr>lT{$o#dou z8UUfIfkUvM{@XRlx~fGgjkqu|SJBHdRvFLNjB%@ObX@3j9uD5R$68+;Q^4R?o0hIE z1K6{PTw?u(^sN$^Tk`iL>~GBiel6QPR&jvdK~%Ce?5A=w%rFtD02`6BgjL_dUhnY8 zN2DH+s>|^Y9&Y4u$``;%31Uh|76JAO^KQusC)IPRwIB{1YrDy*hODopm@j$HLcBlO z)lzF*fp#yl)Avrt4s;zS!V)LaSHkO7rXu^*2II}FjodN;R^hdk6@EI#%*HdtTvk z(6(F{zlBjnOIYcx8fq;9_+q_iy@~au;S2c13afY;rLtYJdPRz4QUD-B`A&HvG0K(HS6pURR~XAIqMg2v?oZx3FBiCe53gUY z7b6!z{KS?ark1MKweCq1OJ$bG8DIojO8^uEoSdE-cxr|FSl$f*3K551cPHT{e!o1+ zv<_{IZ`|~t6BY8)y$n5%Y@3)_LzLa{*19U&eJUI4vL@p+ir=_I$T zY^7U#3BUWR`kIZFuUR)~0H}1B>)xxMF+6aTLGnz0Eq_`56m}5?CHX-;Y@~E zwTV9-H!kTeJzmZjhm<_uS`))?nLS@B+uLD-*mCA>rD?t+R~n~5IzY0r{Zfd@(e(KE z_}L00y^?npj!5yE2cOcm^VRc|!anw?Y^_{?B4-mVB>}$mTdrCZAEZl2FWvH!eT=HX ztQESr#sv$~BLSPqmuTab%(ai@tfHSjrrDQwDo9kSGkx^2w799q;ew)-oXT5YMGqj; zK?>^}M`tmf%H%Xzlx;4&lzDey^!zbyD5xfmZ2t7DleIZOD>UfBlHFd03ue9C|=ML$Dczh|+q%Sf`s&^L6L#v0yWTVeWzx5B@TB)X3hn5?0 zd-UYAt->s@UGkP5COXHwNg!j>DRxkiG~W|2R&765O|2WC*4aSx-hFMzkf$Kz&5%b0 zWpaj=yF)N83`#wH6#wZR>yQf`4Lly_fuco9m9ozRTelc~W%mX$xxy;njsa2(?LgR* z&fUbTwxR(`=8p^X0b(-5b?&?VZ%Ke%m7$cn1o2w8W*-}m`t=}M=X%K34{5h5j~>g{~`(Rrf5+P!Ku@1>wDBlYs>!vUMyB({e`+C3uKW)rmhT0O(dkPm{|1{-wz z`Fa0Q=cjURSasu^bEz@yCDY4lxt`jvKAIoo*p>ELjZPRx)xpT}!|&R6CX@*>?c&yM zG2o;qu?L}hjXaIM?Frgue5~2TY1g{JA(zTl8^`2o`Y0^Xy3FAi(UM?bYPwPR1+u+M zlk)2DZ00%e3}%UI<+gNxtt+6MGkmhM4D^f5caFUXQmjh3o7w_ViZlRAnd6KK7ZYYgoVp23ZE)To+jU9VrLTYwL#-dQSpX<~0QCtct%=O+ zp%&xT+RzwojQYygo4g9{R_=AnBP`qQZ?w`&0m=qtiwUivj!6t!AwmFNoC0|6QtU-N z$&z+{E4e{#so`eto4 zM9zKmvZY7$EPcQ_0#UzfDE+jWB5z4rYnOyFYc@pJlXu{g9Myg@ey()kZM!8N^P0vU zlTCj0(BRT8-F8XFlYXPvTRgBN9fjemsqST-ppxPFWcA*&)U`oPR)TQ#WL_#rCq?8=*`Y|M@S%tzIAnNbq~0uJC*t#4JuzpI?|n3jr69&7bJHfviuXiU4>?K7ANu zYwi0AUh}Hi{d)0ELBK{Q>gX=vja@Bcd`vV9cr?q|5CB>4Ha zZ*xJNE4cpwa>i>!KaC57-rX5C5&kgC_^bUh!Sdm9Wk&xyWN%hvZEOSJAferX1iK$) zX&1asRNYb%O6uT-XDC~|Av*03QJkL^{dx<4$41wJm|1!s2pIrdCe!mfaHI~kURgMR z*@{>K!O|a5hW84rv5pckmjd{^%1W2DNer$mb}@VQ8UXzv0CQw+ZO=VVtJ@rBqIgTV zS3oat(w|{jgUZTp>5r32BdMoq08zkUB-@sDT4|U^`b5yDm#Y+-rM6Qos?0ccqQC5B z9B*u`FBdSEn=9ghgO1GH5?@|h9M|);m^?vliS0M6X+z9!S^6jY&cqK%?|g2V$JM+p z^EM#QMre2+zSxf!>Eu*3G7ox3HJ+6S*-_Yx&U6h`rc5|NH6Mtg>)7AgQohDI?x0E_ zz*ch{lV8Zpe25HyCB`TIZSj2FP>Jkl+Iqk%Uo=DYuzm=m1YeRCxc@IRLpA72m3}F8 zSch%**%{_DOGQZpuuzkqWTVRs^D4jr3LmgtZf)Hh_nwFyNgpYKlRg2n>Pc#%ldn19GEp-rhvVW;`Mi(ZY9 zB!KV_H?nYvAfsC251FNE#a=;pqp48J*&Oh;2*!v%4O)afredWSW&{-#*|wbl?H=lq zm^f(TJ;%L6$S1DSzT6TfngI*H{w?ka0L-c$d#Zp3bF$qm(ux@!f)iyJUY4#!v~O~d zu|s#}*~zE16UBFbGx!mpVg{%`y39;3aVOSVq$xXOH4I9>g?I7U)HPYEpiX0}6o(MB zo0i*cWjKjM!~eA4v<~! zp{Fi;;hW}GyWE`1qay{EEW1H3OJ;aA9n_)LZz_&}!!R8Uf;KB@8~a#9M$h#2XrM&s z#{S*Tr!s@qdWZ~|D5ANNj^{UTk1O!k&jRUOfOae01Hj3<9m|-N!JkyW>Ez~NgF#6R z5uiF@WifHJaPc*!fQ9j|fp$-=vq&w=O{K1M0Hk~pI_5f_7|I{WiXbR_Ri|55s0oDw z<}vR^m0M}#+El5-TUv;DMSw+_UE-o{+KIB&t(jD9qDaKbrj~o&ta0x}U0b=S`1?#M zpHa8p<|`}wx^Ge-Ia}$b1xSHymS|`BE!=7&uv1)zK*&Q#k{Vb^0+@v0KmmH0 zl0`bxj}hLrzkyMxatintR^9W>JIWerOyR)MSB zjT2?!YJ?Adla(N*TSZbwvcPVfS9#+)Q zU?4{<-|LS+qdQzV35~)9MzUWsxEN5I9I=EpJ6s<+XI%Tx0{wvGEIzCKhG}@gs5YpW z*QIqMh~LB;aAZHtYgVy(^AxuF>O&-MqK83-g6uUo!)EJEy=VC*Yl}CE{1vaPPF_#k zi2PL`l}cpLnH3{4Zd&-h7xU_jV(>`1r|xs= zc?DpoSNHHl{1H88$?P%`?0AE}?JR##k8oqT<`pHhq37X)Ph5Z)tSbBQoMTuQ*nQbF zVk0CMhPno}C@<)Ecmnz8Ejvkc>CPwnv(9N4xuT;ncv+2I&w&8%MP)fvAdE*I;e|6z z3g%#?d>|6h52TAt_fJxt0qjzX�m2XTeGI9$jTkS!}yd9ta@&KI;fiVo_k~E}3d` z{oY1Q-ve{A*-iqZ%!MK~u8(3i^sJz;pn8{o=2mJ@&;28zBjs2xV47iroUvRh%=z}M zFxPgn1P#n`ceF+~rS-se*b9G?*28gAm?&b=`i=FVCG*#nb!-okK5F!pORj4U5mDt; zJU4uSv7Y!rPTAKRp+!$hBr>nn`CR|QVCcd7IKUL^J=mrr`RynK>XPQ*hG&mxB zv15}aDjN#5x^g{%QR~8M+ztp8Rh)_Fb2O~-WTNDTgX}!+{a&-c{{>TP$2<^x>pDdT zy>)LN)kg_(TF4P2as^B|f#yjQM@R|D+aD_vq3k4^w!irB={&Xp2HzsL+s^C)P~{u? z8EAn30pn%t@d4y=n-$%iBL;^4?@P_Zj(s4w@I0J&#BFE8Aw>wD2xi5P-~`T*ynhw* z07qAOp%^|}2krJCm5g2kWI<;CX8LeZ3{oxha!po+{3jjXQk1{ehf_+@4&}BPaEgw& zg*RzHQkwL^V&*=|n1OfE^~#KZvg>P;;YWU6MiWMG)7m8BF@4Ai=~!sb=tZM~`_RzZ zAhQbjuzG4=`A!Bma(V0V2ACv#=o^8DRk_DXp+Ci%|52{I?by_&BIS_SMf{VZ*$z; znZDl6jE91R>Ao=Q8)e<`P#`8T;f$_h7oD&tTge~xl{2!BWv6kzmlMt@>}bn_!R}+V zyl_EX)s#di0-vZq$zg=Gd2MBA{cY~Zm%g`i{4;$0(M&|*$??a$avr`9JTqWBg0$y#@?>`*$7ylJdiQ qO%?~B|9nMm!GA0!pRo{#z0M%vbN%X#(?83s13%~VMYa8vZ~g?FiSKv- diff --git a/content/notes/images/google-domains.png b/content/notes/images/google-domains.png deleted file mode 100644 index a43826999d4f9dce45a0b4ac1de9a84f2ad9cfd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73570 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%0D#U0UdtI3sPMQg+A@p5a9C9rAv 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 BCmjF) diff --git a/content/notes/index.md b/content/notes/index.md deleted file mode 100644 index 67b0c5c39..000000000 --- a/content/notes/index.md +++ /dev/null @@ -1,13 +0,0 @@ -# INDEX -## 1 Papers -- [[201 Information Systems]] -- [[202 Software development]] -- [[201 Algorithms and data structures]] -- [[203 Human-Computer interaction]] - -## 2 Other -- [[Finance]] -- [[Daily notes]] -- [[Templates]] -- [[Cheat Sheets]] -- [[Books]] diff --git a/content/notes/induction.md b/content/notes/induction.md deleted file mode 100644 index 537dc0c9d..000000000 --- a/content/notes/induction.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -sr-due: 2022-04-23 -sr-interval: 29 -sr-ease: 272 ---- - - -tags: #review - ---- - -# Induction -## PECS -Phases of argument by induction - -- Preparation -> most important -- Execution -> becomes routine if prep is good -- Checking -> second most important -- Satisfaction - -### Preparation -- isolate the property that you are trying to verify and the parameter, n, associated with is - - e.g., min possible size of set of rank k is $2^n$ -- Confirm by hand that for small values of the parameter, the property is true -- Use previous cases as assumptions -- Pause and reflect -- If you understand what's going on -> proceed to execution - -### Execution -Technical and prescribed (once you're an expert you can take some liberties) - -Four parts -- statement -- verificatio of base case -- inductive step -- conclusion - -e.g., -- we will prove that, for every non-negative integer $n$, *insert property here* -- For $n = 0$, *The property* is true because *explicit verification of this case* -- for any $n > 0$, assuming *the property* is true for $n-1$ (or, for all $k < n$), *the property* is true at $n$ because *explain why we can take a step up* -- Therefore, by induction, *the property* is true for all n. - -### Checking -Basically debugging without a compiler to find errors -- have you forgotten anything? e.g., the base case -- Does the inductive step work fro 0 to 1? or are they irregular -- Make sure that you are only assuming the result for things less than $n$ -- ideally show someone and try to convince them (dont let them be polite) -- if necessary go back to execution or preparation - -### Satisfaction -Commence satisfaction. -Confidence +100. 😆 - -## Examples -### Union Find - min size for set of rank k - -- Initially every element is its own representative and every element has rank 0; -- when we do a union operation, the the two reps have different ranks, the ranks stay the same -- when we do a union operation, if the two reps have the same rank, then the rank increases - -minimum (and only) size of a rank 0 rep is 1 - -to get a rank 1 representative, we form a union of either a rank 0 and a rank 1 set or two rank 0 sets -for the minimum possible size, it must be the second case, and the two rank 0 sets must be each of minimum size 1, so this gives minimum size for a rank 1 set of 2 - -To get a rank 2 rep, we form a union of either rank 2 and rank 0 or 1 set, or two rank 1 sets -For the minimum possible size, it must be the second cae, and the two rank 1 sets must each be of minimum size 2, so this gives minimum size for a rank 2 set of 4 - -To get a rank $n$ rep, we form a union of either rank $n$ and rank $k$ set for some $k $2^{n-1} + 2^{n-1} = 2\times2^{n-1} = 2^n$ - - - \ No newline at end of file diff --git a/content/notes/interviews.md b/content/notes/interviews.md deleted file mode 100644 index 2ad8709dd..000000000 --- a/content/notes/interviews.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -sr-due: 2022-04-22 -sr-interval: 30 -sr-ease: 247 ---- - -#review -#### Review questions - -0. what type of questions should you avoid - -2. when/how are interviews used in needfinding - -2. when/how are interview used in requirements elicitaion - -3. when/how are interviews used in evaluating designs - ---------------------------------- -# Interviews -## Use Cases -- [[Evaluating designs]] -- [[Requirements elicitation]] -- [[Needfinding]] - -## Overview -- direct and stuctured -- semi structured -- usually top down -- effective for high level interface evaluation -- need careful planning, experts, difficult to analyse -- not a controlled experiment technique - -## Conducting an interview -### Choosing participants -- some is better than none -- get pople who are representive of users - - users of existing similar system - - non-users -> why people arent using a system - - e.g., lecture support system - - teachers - - students - - staff - - admins - - parents - - freshman - - phd - - international domestic - - stronger and weaker - -#### Recruiting -- Craiglist (in US) -- your network -- cheaper for less speciales users -- if you can convince people you are imporving the world they might volunteer -- if they think is is for profict they will expect to be paid -- if you cant pay -> you cant use a token of appreciation - -### Process -- introduce yourself explaint he purpose -- the interview is about them, not you? -- begin with open, unbiased questions-> then follow up -- ask the questions, and let them answer -- have breaks and give them time -- have a clear separation between the general introduction, the actual interview, and post inteview discussions - -### Questions to avoid: -- leading questions -- what would they do / like / want in a hypothetical scenario -- how often they do things -- how much they like things on an absolute scale -- avoid binary questions - -## Pros/cons -+ free and open answers -+ sense of active contribution -+ oppportunity for follow up -- time consuming and resource intensive -- dependent of commication skills of analyst -- location/schedule can make this impractical diff --git a/content/notes/models.md b/content/notes/models.md deleted file mode 100644 index 8643ca652..000000000 --- a/content/notes/models.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -sr-due: 2022-04-20 -sr-interval: 35 -sr-ease: 270 ---- -tags: #review - ---- -# Models -> "A model is an informative representation of an object, person or system" - -Software is made up of models. It is not only "code" -Models can be high level (mockups etc) or low level (code) -Models can be executable (code, ec) or not (diagrams) - -Models are used in [[Domain Driven Design]] and in [[Behaviour Driven Development]] \ No newline at end of file diff --git a/content/notes/needfinding.md b/content/notes/needfinding.md deleted file mode 100644 index 65f60238c..000000000 --- a/content/notes/needfinding.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -sr-due: 2022-04-09 -sr-interval: 18 -sr-ease: 270 ---- - -#review - ---- -#### Review questions -1. what is participant observation - -2. what are interview, what are their purpose - -3. what are longitudinal studies. when are they used - ---- -# Needfinding -how to start imporving or designing inerface -how to identify the gap or use interface issues - -needdfinding tries to identify issues, often through observational studies (qualitative) - -> "the trick [challenge] to finding ideas is to convince yourself that everyone and everything has a story to tell" -> "The other trick if finding out the difference between power and knowledge. You dont start at the top if you want to find a story, you start in the middle. Because its the people in the middle that do the work" -> "self conciousness is the enemy of interestingness" -> -malcolm gladwell - -## Methods -- Participant [[Observation]] - - Apprenticeship - - set a partnership with the people to be observed - - be taught the steps in the process - - observe the practives - - validate what you are observing with those observed as you go along - - e.g., - - apprenticeship is eVision user - - task: find in which room INFO203 is - - problem: I do not have a timetable in eVision like students - - allows you to capture the context of use and the issues and needs - - what do people do now - - what values and goals do people have - - how are these particular activities embedded in the larger context - - similarities and differences across people - - other types of context that are relevant -> time of day, social context - -- [[Interviews]] - - avoid leading questions - - choose sample representative of real users - - often impractical - - can be structured or semi-structured - - effective for high level - -- Longitudinal studies - - sporadic use -> when the product is used rarely - - used when you cannot use observational studies - - diaries - - scale better than direct observation (less time consuming) - - give people a diary to copmlete - - structred task - - can use journals, camera, voice, video - - tailor the recording to the context - - may require practice, training, reminding - - use of ntifications, digital calendars, phone calls - - Experience sampling - - use txt, phone calls , calendars, notifications to recieve feeback or actively remind people - - choose interval depending on study context - - \ No newline at end of file diff --git a/content/notes/normalisation.md b/content/notes/normalisation.md deleted file mode 100644 index 15196acaf..000000000 --- a/content/notes/normalisation.md +++ /dev/null @@ -1,27 +0,0 @@ -# 3 Normalisation -formal process of eliminanting unnecessary redundancy in relations by splitting relations into smaller chunks - -bottom up approach -- functional dependencies ⇒ normalised relations -- requirements ⇒ conceptual ≫ logical is "top down" -- use normalisation to verify your logical design - - to ensure you haven't missed anything - - -### 0.1 Pros ans cons - -+ frees from anomalies -+ separates data the belong to different entities -+ reduces data redundancy -+ doesn't bias db design infaour of certain queries at the expense of others - -- more relations required -- more complex queries can imply slower performance in some DBMSs - -### 0.2 Normal forms -1NF ⇒ Single valued attributes only -2NF ⇒ all on-key attibutes fully dependent on PK (i.e., no dependencies on part of the PK) (no partial dependencies) -3NF/BCNF ⇒ no non-key transitive dependencies -4NF ⇒ no multivalued dependencies -5NF ⇒ all join dependencies implied by Composite key (CKs) -6NF ⇒ irreducible relations \ No newline at end of file diff --git a/content/notes/objects.md b/content/notes/objects.md deleted file mode 100644 index 6e7d653e0..000000000 --- a/content/notes/objects.md +++ /dev/null @@ -1,51 +0,0 @@ -# 1 Objects -an abastraction of somethin gin a problem domain, reflecting the capabilities of the system to keep information about it interact with it or both - -entities in any of the software nmodelling int implmenation spaces that are enatly defined by their identity state and behaviour - -similar to an entity but can also incude dynamic behaviour - -oop is programming and modelling using objects - -### 0.1 Objects as a Model of reality -theoreftically objects give us better omodels of reality - -richer variaty of data types -- able to more closely model complexity of real world entities -- compart with most data bases (numbers, text, datess) -- objects and their operations (behaviour) are self contained -- facilitate code reuse - -### 0.2 Basic features of objects - -state - -behaviour - -### 0.3 Classes and instances -class : definition of object structure and behaviour -instance : object occurence, derived from a particular class - - -### 0.4 References -pointer dirctly to object _instance_ - - -### 0.5 encapsulation -decouples internal implementation from public API -- can chagne each independently -- e.g., performance, differnt algroithms -- APi stability is important - -state and behaviour separated into pubic and private -- all fields should be private -- some methods will also be private - -### 0.6 Inheritance -usually via specialisation - aka subclass, subtype - -subclasses inherit public state and behaviour from superclass -- can define additional properties and behaviour - -enable polumorphism -- e.g., Integer and Rational both subcalss Number \ No newline at end of file diff --git a/content/notes/observation.md b/content/notes/observation.md deleted file mode 100644 index 64e9a78fe..000000000 --- a/content/notes/observation.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -sr-due: 2022-05-03 -sr-interval: 30 -sr-ease: 246 ---- -#review -#### 0.1.1 Review quesitons -1. How is observatio used in needfinding - -2. how is observation used in evaluating desings - -4. Name 3 disadvantages of observation - ---------------------------- -# Observation -## 1 Techniques -- think-aloud -- co-operative evaulation -- paper and pencil protocol -- audio recording -- video recording -- computer logging -- user notebooks -- post-talk walkthroughs - -## 2 Disadvantages -- observation bias exists -- coding schemes -- laborioua and difficult -- experts needed, training needed -- often a mix of multiple techniques -- automatic protocol analysis tools available (esp. in usability labs) - -## 3 Use Cases -[[Needfinding]] -[[Evaluating designs]] \ No newline at end of file diff --git a/content/notes/obsidian.md b/content/notes/obsidian.md deleted file mode 100644 index a10379e09..000000000 --- a/content/notes/obsidian.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Obsidian Vault Integration" -tags: -- setup ---- - -## Setup -Obsidian is the preferred way to use Quartz. You can either create a new Obsidian Vault or link one that your already have. - -### New Vault -If you don't have an existing Vault, [download Obsidian](https://obsidian.md/) and create a new Vault in the `/content` folder that you created and cloned during the [setup](notes/setup.md) step. - -### Linking an existing Vault -The easiest way to use an existing Vault is to copy all of your files (directory and hierarchies intact) into the `/content` folder. - -## Settings -Great, now that you have your Obsidian linked to your Quartz, let's fix some settings so that they play well. - -1. Under Options > Files and Links, set the New link format to always e Absolute Path in Vault. -2. Go to Settings > Files & Links > Turn "on" automatically update internal links. - -![Obsidian Settings](/notes/images/obsidian-settings.png)*Obsidian Settings* - -## Templates -Inserting front matter everytime you want to create a new Note gets annoying really quickly. Luckily, Obsidian supports templates which makes inserting new content really easily. - -**If you decide to overwrite the `/content` folder completely, don't remove the `/content/templates` folder!** - -Head over to Options > Core Plugins and enable the Templates plugin. Then go to Options > Hotkeys and set a hotkey for 'Insert Template' (I recomment `[cmd]+T`). That way, when you create a new note, you can just press the hotkey for a new template and be ready to go! diff --git a/content/notes/options.md b/content/notes/options.md deleted file mode 100644 index 2cadb349a..000000000 --- a/content/notes/options.md +++ /dev/null @@ -1,39 +0,0 @@ -# Options -#### Terms -- Strikeprice -- Premium -- In the money -- out of the money -- underlying asset - -#### Calls -- a contract - - for which you pay a premium -- gives you the opportunity (not obligation) to **buy** - - 100 shares (stock bond commodity or other financial asset) -> underlying asset - - at a specific price (strike price) - - by a specific date (expiration date) -- You profit when the price of underlying asset **increases** - -##### Examples -You buy a $100 call option for AMD that expires on July 10th. With this call option, you have the right to buy 100 shares of AMD at $100 per share before end-of-day on July 10th. If the price increases to $120 before your expiration date, you can still buy the contract at your original $100 per share price. - -Your $100 AMD call has a $3 premium. This means, that for each of the 100 shares in the contract, you owe $3 to the seller. $3 x 100 = $300. In exchange for this premium, the seller gives you the call option. Therefore, in order to breakeven, you now need $103 share price for AMD because if it were to only go up to $100, you’d still be out of pocket due to the $300 premium paid. If the stock price goes to $104, you have made a profit, as it is higher than your $103 cost per share. - - -#### Puts -- a contract - - for which you pay a premium -- gives you the opportunity (not obligation) to **sell** - - 100 shares (stock bond commodity or other financial asset) -> underlying asset - - at a specific price (strike price) - - by a specific date (expiration date) -- You profit when the price of underlying asset **decreases** - -##### Examples -You buy a $100 put option on AMD with a $2 premium that expires on July 10th. Every dollar decrease below the strike price earns you $100 profit, since each contract is made up of 100 shares. Your breakeven point (the point at which your put option becomes profitable) is $98 (strike _minus_ premium). If the underlying asset price increases above $100 by your expiration date, your put option expires worthless and your maximum loss is $200 ($2 premium x 100 shares). - -You write (sell) a $100 put option on AMD with a $2 premium that expires on July 10th. Every dollar decrease below the strike price increases the writer (seller) cost by $100. The breakeven point (the point at which your put option becomes profitable) is $98 (strike _minus_ premium). The maximum profit for the put writer (seller) is the $200 premium ($2 premium x 100 shares). -On the other hand, if the buyer exercises the put option, then the writer (seller) must by the 100 shares at the strike price, which depending on the price of the underlying asset could result in a potential loss larger then the value of the underlying asset. - -You own 100 shares of AMD, the current price per share is $100. You're bullish, expecting the price to increase in the future but you'd like to protect yourself against any unexpected price dips. You do this by purchasing a protective put contract with a strike price of $100 with a $10 premium. \ No newline at end of file diff --git a/content/notes/philosophy.md b/content/notes/philosophy.md deleted file mode 100644 index bf04da3b1..000000000 --- a/content/notes/philosophy.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Quartz Philosophy" ---- - -> “[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.” — Richard Hamming - -## Why Quartz? -Hosting a public digital garden isn't easy. There are an overwhelming number of tutorials, resources, and guides for tools like [Notion](https://www.notion.so/), [Roam](https://roamresearch.com/), and [Obsidian](https://obsidian.md/), yet none of them have super easy to use *free* tools to publish that garden to the world. - -I've personally found that -1. It's nice to access notes from anywhere -2. Having a public digital garden invites open conversations -3. It makes keeping personal notes and knowledge *playful and fun* - -I was really inspired by [Bianca](https://garden.bianca.digital/) and [Joel](https://joelhooks.com/digital-garden)'s digital gardens and wanted to try making my own. - -**The goal of Quartz is to make hosting your own public digital garden free and simple.** You don't even need your own website. Quartz does all of that for you and gives your own little corner of the internet. diff --git a/content/notes/preview changes.md b/content/notes/preview changes.md deleted file mode 100644 index 7f12f3055..000000000 --- a/content/notes/preview changes.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Preview Changes" ---- - -If you'd like to preview what your Quartz site looks like before deploying it to the internet, here's exactly how to do that! - -Note that both of these steps need to be completed. - -## Install `hugo-obsidian` -This step will generate the list of backlinks for Hugo to parse. Ensure you have [Go](https://golang.org/doc/install) (>= 1.16) installed. - -```shell -# Install and link `hugo-obsidian` locally -$ go install github.com/jackyzha0/hugo-obsidian@latest - -# Navigate to your local Quartz folder -$ cd - -# Scrape all links in your Quartz folder and generate info for Quartz -$ hugo-obsidian -input=content -output=assets/indices -index -root=. -``` - -If you are running into an error saying that `command not found: hugo-obsidian`, make sure you set your `GOPATH` correctly! This will allow your terminal to correctly recognize hugo-obsidian as an executable. - -Afterwards, start the Hugo server as shown above and your local backlinks and interactive graph should be populated! - -## Installing Hugo -Hugo is the static site generator that powers Quartz. [Install Hugo with "extended" Sass/SCSS version](https://gohugo.io/getting-started/installing/) first. Then, - -``` -# Navigate to your local Quartz folder -$ cd - -# Start local server -$ hugo server - -# View your site in a browser at http://localhost:1313/ -``` diff --git a/content/notes/prototyping.md b/content/notes/prototyping.md deleted file mode 100644 index f6e22039d..000000000 --- a/content/notes/prototyping.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -sr-due: 2022-04-16 -sr-interval: 32 -sr-ease: 270 ---- -tags: #review - ---- -# Review questions -1. what are three traits of a good prototype - -2. what insights can be gained from prototyping - -3. give a one sentence of prototyping - -___ -# Prototyping -Quickly creating a minimal, functioning approximate version of an idea, which reveals potential issues(feedback) that may be hard to predict(unknown unknows) otherwise - ->"The way to have a good idea is to have lots of ideas" - Linus Pauling - -> "Prototypes are questions. Ask lots of them" - -Rapid Prototyping as [[Simulated Annealing]] - -## Goals -- minimise time spent -- maximise information gained - - cost of change increases with time -- help [[stakeholders]] understand ideas - -## Traits of a good prototype: -- not fully complete -- easy to change/create -- retired/evolved quickly - -## Insights gained from prototyping -- Feel -> Form -- Implementation -> Function -- Role -> Overall Experience - - -![[Pasted image 20220308101601.png]] -![[Pasted image 20220308101937.png]] -![[Pasted image 20220308102125.png]] -![[Pasted image 20220308101115.png]] \ No newline at end of file diff --git a/content/notes/requirements.md b/content/notes/requirements.md deleted file mode 100644 index 9725cdd0f..000000000 --- a/content/notes/requirements.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -sr-due: 2022-04-06 -sr-interval: 15 -sr-ease: 232 ---- - -tags: #review -resources: -[article about requirements](https://sceweb.uhcl.edu/helm/RationalUnifiedProcess/process/workflow/requirem/co_req.htm#Reliability) -[IBIS](https://en.wikipedia.org/wiki/Issue-based_information_system) -[moscow method](https://en.wikipedia.org/wiki/MoSCoW_method) - ---- -## Review Questions - -1. Name three properties of good requirements and for each property explain why it is a good property. (NUUCCC) - - understandable -> by users -> reduces misunderstandings - - un-ambiguous -> reduces midunderstandings - - complete -> nothing missing - - non-prescriptive -> say what the system should do, not how it should do it - - consistent => do not contradict each other - - correct -> as judged by user - -2. What is the difference between functional and non-functional requirements? - - features vs contraints - -3. What effects do poor quality requirements have on the subsequent development of the system? - - increased cost/time - - increase chance of failure - - more difficult maintenance - - not meeting needs of client - -4. How are requirements elicited and managed using the three main agile methodologies presented in the lectures? - - scrum - - requirements owned and priotitised by the product owner - - XP - - based on user stories, continuous involvement of users - - UP - - requirements contructed in at the beginning - - functional req's implemented first then contrainst like security, performance etc -___ -# Requirements -> “…descriptions of how the system should behave, application domain information, constraints on the system’s operation, or specifications of a system property or attribute.” - Kotonya and Sommerville, 2001, p. 6 - -> “…a statement of need, something that some class of user or other stakeholder wants.” - Alexander and Stevens, 2002, p. 8 - -something the system should do or a contrainst the system should adhere to - -## Requirements engineering -> “…to cover all of the activities involved in discovering, documenting, and maintaining a set of requirements for a computer-based system.” - Kotonya and Sommerville, 2001, p. 8 - -robust way to develop requirements -Key concepts -- discovery -> capture, elicitation, identification -- documenting -> specifying, modelling -- maintenance -> manging changes in env of sys - -### Requirements document: -- services and function -- contraints -- overall properties -- systems env incl. related sys's -- application domain information -- constraints of development process - -## requirements in agile methodologies -[[Agile Development#^e2bc0b|UP]] -- Requirements (based on use cases) mostly elicited, modelled, and refined during inception, elaboration, and construction phases. -- Functional requirements implemented before technical, performance, reliability requirements. - -[[Agile Development#^e9fd09|XP]] -- Based on user stories rather than explicit individual requirements. -- Continuous involvement of users who can make business decisions about functionality and scope. - -[[Agile Development#^4ddbdc|Scrum]] -- user stories (if mapped back to business process to create stucture to the product backlog) -- requirements owned and prioritised by the product owner - -## how to specify requirements -published standards -> (e.g., ISO 9000, IEEE/ANSI 830-1993) -natural language text desciptions and scenarios - -models -- function catalogue -- ERD's -- UML's - -prototypes: -- evolutionary -> changes to existing prototype/idea -- revolutionary -> completely new - -formal mathematical notation - -## Good requirements -^df23e2 -- understandable -> by users -- non prescriptive -> what not how -- correct -> as judged by user -- complete -> nothing missing from _individual_ requirements - -> nothing missing from _complete set_ of requirements -- consistent -> do not contradict each toher -- unambiguous -> one one possible interpretation -- also - - precise, concise, cohesive, feasible, relevant, up to date, testable, traceable - -## Type of requirements - -^c1a732 -### Functional requirements - -^9e1ad5 - -what should the system do - -### Non-functional requirements - -^ab5ecd -contraint -> how the system should do something -e.g., behaviour , constrainst , usability , reliability , performance , security - -### FURPS -usually overkill - -categories -- functional -> features -- usability -> UI and system availability -- reliablility -- performance -- supportability - -furps + adds -- design -- implementation -- interface -- physical - -**examples** -![[Pasted image 20220310162958.png|300]] - -## Consequences of poor requirements -- Delays and extra costs -- failure to meets real needs of customer -- higher cost of maintenance -- unreliable/non functional system - -## Causes of poor requirements -- problem not well understood (domain comlpexity) -- misunderstanding between parties -- [[stakeholders]] -> not trained, dont have authority, are not available/plentiful -- continually evolving requirements -- requirements are -> incomplete/abmiguous/inconsistent/overlapping/unimplementable \ No newline at end of file diff --git a/content/notes/scrum.md b/content/notes/scrum.md deleted file mode 100644 index d2de6dbdc..000000000 --- a/content/notes/scrum.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sr-due: 2022-04-19 -sr-interval: 28 -sr-ease: 270 ---- - -tags: #review - ---- -# SCRUM - -^4ddbdc - -Intense effort involving entire team for defined period of time -Product backlog - prioritied list of requirements -Product owner - cllient stakeholder who controls backlog -Scrum master - project manager -##### Scrum sprint -A time controlled mini-project to implement part of the system -![[Pasted image 20220308134247.png]] - -##### Scrum practices -scope of sprint is frozen - - can reduce - - cannot expand -time period is kept constant - -daily scrum meeting -- what have you done since last scrum -- what whill you do by next scrum -- what kept you or is keeping you from compeleting your work \ No newline at end of file diff --git a/content/notes/setup.md b/content/notes/setup.md deleted file mode 100644 index 495a43b68..000000000 --- a/content/notes/setup.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Setup" -tags: -- setup ---- - -## Making your own Quartz -Setting up Quartz requires a basic understanding of `git`. If you are unfamiliar, [this resource](https://resources.nwplus.io/2-beginner/how-to-git-github.html) is a great place to start! - -### Forking -> A fork is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project. - -Navigate to the GitHub repository for the Quartz project: - -📁 [Quartz Repository](https://github.com/jackyzha0/quartz) - -Then, Fork the repository into your own GitHub account. If you don't have an account, you can make on for free [here](https://github.com/join). More details about forking a repo can be found on [GitHub's documentation](https://docs.github.com/en/get-started/quickstart/fork-a-repo). - -### Cloning -After you've made a fork of the repository, you need to download the files locally onto your machine. Ensure you have `git`, then type the following command replacing `YOUR-USERNAME` with your GitHub username. - -```shell -$ git clone https://github.com/YOUR-USERNAME/quartz -``` - -## Editing -Great! Now you have everything you need to start editing and growing your digital garden. If you're ready to start writing content already, check out the recommended flow for editing notes in Quartz. - -✏️ [Editing Notes in Quartz](notes/editing.md) - -Having problems? Checkout our [FAQ and Troubleshooting guide](notes/troubleshooting.md). - -## Updating -Haven't updated Quartz in a while and want all the cool new optimizations? On Unix/Mac systems you can run the following command for a one-line update! This command will show you a log summary of all commits since you last updated, press `q` to acknowledge this. Then, it will show you each change in turn and press `y` to accept the patch or `n` to reject it. Usually you should press `y` for most of these unless it conflicts with existing changes you've made! - -```shell -make update - -# or, if you don't want the interactive parts and just want the update -make update-force -``` - -Or, manually checkout the changes yourself. - -> ⚠️ **WARNING** ⚠️ -> -> If you customized the files in `data/`, or anything inside `layouts/`, your customization may be overwritten! -> Make sure you have a copy of these changes if you don't want to lose them. - - -```shell -# add Quartz as a remote host -git remote add upstream git@github.com:jackyzha0/quartz.git - -# index and fetch changes -git fetch upstream -git checkout -p upstream/hugo -- layouts .github Makefile assets/js assets/styles/base.scss assets/styles/darkmode.scss config.toml data -``` diff --git a/content/notes/shell.md b/content/notes/shell.md deleted file mode 100644 index c3ecdcbd4..000000000 --- a/content/notes/shell.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -sr-due: 2022-05-22 -sr-interval: 53 -sr-ease: 310 ---- - -tags: #review - ---- -#### Shells -- start and stop OS processes -- used to control OS -- connect output of one OS process to input of another process -> this is the idea of [[Unix pipes]] -- manage environment variables: pass params to programs -- parse and evaluate command line instructions from user \ No newline at end of file diff --git a/content/notes/showcase.md b/content/notes/showcase.md deleted file mode 100644 index 5c16a0d39..000000000 --- a/content/notes/showcase.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Showcase" ---- - -Want to see what Quartz can do? Here are some cool community gardens :) - -- [Quartz Documentation (this site!)](https://quartz.jzhao.xyz/) -- [Jacky Zhao's Garden](https://garden.jzhao.xyz/) -- [AWAGMI Intern Notes](https://notes.awagmi.xyz/) -- [Shihyu's PKM](https://shihyuho.github.io/pkm/) -- [Chloe's Garden](https://garden.chloeabrasada.online/) -- [SlRvb's Site](https://slrvb.github.io/Site/) -- [Course notes for Information Technology Advanced Theory](https://a2itnotes.github.io/quartz/) -- [Brandon Boswell's Garden](https://brandonkboswell.com) -- [Siyang's Courtyard](https://siyangsun.github.io/courtyard/) - -If you want to see your own on here, submit a [Pull Request adding yourself to this file](https://github.com/jackyzha0/quartz/blob/hugo/content/notes/showcase.md)! diff --git a/content/notes/stakeholders.md b/content/notes/stakeholders.md deleted file mode 100644 index af82787d3..000000000 --- a/content/notes/stakeholders.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sr-due: 2022-04-09 -sr-interval: 18 -sr-ease: 272 ---- -#### Review questions -1. what are 3 types of stakeholder -2. describe vertical and hoirzontal user roles - -___ -#review -# Stakeholders -People with interest in successful implementation - -three primary groups -- users -- clients -> pay for and own systems -- technical staff -> ensure system operation - -Analyst should id every type of stakeholder during [[Systems development lifecycle (SDLC)#^2d7976]] - -### users as stakeholders -horizontal user roles -> information flow across dept's -- ? - -vertical user roles ->information needs of staff, middle management, senior execs -- business users perform day to day operations -- information users need current information -- mangement users need summary information -- executive users need strategic information -- external users may have access to the systems \ No newline at end of file diff --git a/content/notes/teamwork.md b/content/notes/teamwork.md deleted file mode 100644 index e16d979f0..000000000 --- a/content/notes/teamwork.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -sr-due: 2022-04-24 -sr-interval: 31 -sr-ease: 270 ---- - -tags: #review - ---- -# Teamwork -- Good teamwork -> achieve more -- Separation of concerns of expertise e.g., font end / back end -- Solo devs do exist -> indie games / microcontroller swd / due to cost issues - -#### Building teams -- consider strengths of team members - - areas of specialisation - - ways in which members complement each other -- This should be discussed to avoid misunderstandings due to incorrect assmptions -- Communication is key - - team arrangements may need adjustment - - changes should be made by a consensu - -#### Belbin's nine team roles -- most pople have characteristics of multiple roles -- methodologies exist to determine your role affinities - -```mermaid - graph TD - Top-->Social - Top-->Thinking - Top-->Action - - Social-->RI(Resource Investigator) - Social-->TW(TeamWorker) - Social-->CO(Co-ordinator) - - Thinking-->Plant - Thinking-->ME(Monitor Evaluator) - Thinking-->Specialist - - Action-->Shaper - Action-->Implementer - Action-->Completer - -``` - -- social - - resource investigator - - discovers new ideas; keen; optimistic - - may rapidly lose interest; too optimistic - - teamworker - - values team; helps remove friction - - conflict avoidant; prefers not making decisions - - co-ordinator - - keeps goals clear; can manage team - - may appear to delegate rather than doing work -- thinking - - Plant - - thinks outside the box; tackles hard problems - - may lack grounding (only thinks outside the box) - - Monitor evaluator - - good judge of best alternatives - - may be too critiical of possible plans - - specialist - - detailed knowledge in one area - - only focused on one area -- action/task - - Shaper - - good at working - - may not be considerate of team members - - Implementer - - can turn planning into efficient action - - may be rigid in terms of approach to action - - Completer finisher - - completes tasks; provides quality control - - worries about quality; doesn't delegate work - - -#### Conflict resolution -- There will be conflicts - - voice concerns early - - agree on a resolution -- Be self aware - -#### Diversity -- studies show that more diverse teams are better -- there is a lack of diversity in cs \ No newline at end of file diff --git a/content/notes/templates.md b/content/notes/templates.md deleted file mode 100644 index 1d79d0ff6..000000000 --- a/content/notes/templates.md +++ /dev/null @@ -1,3 +0,0 @@ -[[Day]] -[[DailyTemplate]] -[[Front Matter]] \ No newline at end of file diff --git a/content/notes/testing.md b/content/notes/testing.md deleted file mode 100644 index be8222954..000000000 --- a/content/notes/testing.md +++ /dev/null @@ -1,22 +0,0 @@ -# Testing -most software will contain bugs -bug severity if not always equivalent to bug priority -testing is seeking out bugs -some test types -- unit tests -- integration tests ⇒ check units work together -- end-to-end tests ⇒ check behaviour of whole program - - -## 1 Limitations -testing every code path is impossible -- halting problem - cant fully analyse code using code -- proved by alan turing in 1936 - -good test design focuses on _key cases_ to pass and fail -not probe interaction between units -- this should be done by integration testing - -testing may afffect behaviour of code -- testing framework may affect the order of esecution -- testing framework may change execution speed \ No newline at end of file diff --git a/content/notes/uml.md b/content/notes/uml.md deleted file mode 100644 index 29a228812..000000000 --- a/content/notes/uml.md +++ /dev/null @@ -1,107 +0,0 @@ -# UML - -A standard set of model constructs and notation defined by the object management group - -specify what not how - -- activity diagrams - - high level for business prcesses workflows - - low level for dtailed business logic -- advantages - - describe workflows - - specify relative processing rder of activites - - simple - - can be shown to stakeholders for checking and confirmation - -enables implementation-independent specification of: -- user/system interactions -- partitioning of responsibility -- integration with larger or existing systems -- data flow and dependency -- order of operations (algorithms and processes) -- concurrent operations - -## 1 why is is useful -- helps develop efficient effective correct designs -- better communication with project stakeholders -- gives a big picture view of the project system -- independent of specific programming languages or development processes -- de facto standard for modelling OO systems - -## 2 what it is not -- visual modelling software -- a programming languages -- a software development process, method, or methodology - -## 3 Types of diagram -### 3.1 structural - -![](https://i.imgur.com/zS15EFj.png#invert) - -### 3.2 behavioural - -![](https://i.imgur.com/4lj2QIt.png#invert) - -### 3.3 Linked diagrams -each digram type models a dfiferenct aspect of the system -many of the diagrams link to each other -- e.g., use case, sequence, activity -- e.g., object, communication - -e.g., - -![](https://i.imgur.com/CWGGErM.png) - -![[Pasted image 20220323114226.png#invert]] - -### 3.4 Activites and transitions -![[Pasted image 20220323114618.png#invert]] -- activities - - take place over some pariod of time - - linked by transitions (arrows) - - only one starting point potentaily many ending conditions - -- Transitions - - have guard conditions that must be satisfied before the transition can occur - -### 3.5 Decision points -- represent conditional branching -- two or more alternative transitions depending on condition -- every transiiton exiting the decision point must have a guard condition - -![[Pasted image 20220323114826.png#invert]] - -### 3.6 Synchonisation bars -- represents two or more activites running in parallel -- transitions can be split into mutiple paths and recombined later -- if a workflow is split then it must be recombined on the same diagram - -![[Pasted image 20220323115040.png#invert]] - -### 3.7 swim lanes -- same as BPMN -- show who is responsible for a process -- can represent - - business organisations - - depts - - people (actors) -- can simplify processes - -![[Pasted image 20220323115203.png#invert#invert]] - -### 3.8 relationships to use cases -- use case diagrams show the high level interactions between actors and cases -- high level activity diagrams show the sequence of use cases within a workflow - -![[Pasted image 20220323115346.png#invert]] - -#### 3.8.1 example - -![[Pasted image 20220323115415.png#invert]] -![[Pasted image 20220323115451.png#invert]] -![[Pasted image 20220323115536.png#invert]] - -### 3.9 Example producing a book - -![[Pasted image 20220323114440.png#invert]] -![[Pasted image 20220323114555.png#invert]] \ No newline at end of file diff --git a/content/notes/unix shell.md b/content/notes/unix shell.md deleted file mode 100644 index 522eb8879..000000000 --- a/content/notes/unix shell.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -sr-due: 2022-04-14 -sr-interval: 27 -sr-ease: 270 ---- - -tags: #review - ---- -# Unix shell -- most common command shell (macOS, linux, android, ios) -- bash is another common shell -- windows shells: - - cmd.exe (legacy) - - powershell (more powerful than bash) - - many ways to run bash - -##### Unix shell good/bad -- good - - embodies unix principle: [[separation of concerns]] - - minimal -> shell just manages interaction of other small tools - - highly programmable; supports complex automation -- bad - - has quirkiness that can trip everyone up -- tradeoffs - - Shell can be perfect to some tasks; terrible for others - - extremely powerful however also difficult to learn to use - -shells are in cosc202 as lowest-level, common means for controlling computers during software development \ No newline at end of file diff --git a/content/notes/usability.md b/content/notes/usability.md deleted file mode 100644 index 92ce3cd44..000000000 --- a/content/notes/usability.md +++ /dev/null @@ -1,7 +0,0 @@ -#flashcards -The extent to which a product cn be used by specifies users to achieve specified goals with effectivenesss, efficiency, and satisfaction in a specified context of use. -![[Pasted image 20220302100816.png]] - -Usability is :: How well a product can be used by specific users to achieve goals effectively efficiently and with satisfaction in a specific context - - diff --git a/content/notes/wincomposes.md b/content/notes/wincomposes.md deleted file mode 100644 index c5659a8e6..000000000 --- a/content/notes/wincomposes.md +++ /dev/null @@ -1,40 +0,0 @@ -≥ alt >= - -½ alt 1 2 - -Θ alt * U - -∑ alt alt sum - -± alt + - - -√ alt s q | alt v / - -∞ alt 8 8 - -∴ alt :. - -≈ alt ~ ~ - -≠ alt = / - -ₓ alt _ ? - -² alt ^ 2 - -⇒ alt arrow arrow - -↠ alt - - > > - -· alt o , - -( ͡° ͜ʖ ͡°) alt l f -(ノಥ益ಥ)ノ彡┻━┻ ) alt t f -¯\_(ツ)_/¯ alt sf - -ᕙ༼ຈل͜ຈ༽ᕗ alt lt up up down down lef right left right b a - -ϴ( alt t e -Ο( alt o h - -