diff --git a/content/dn/1.md b/content/dn/1.md deleted file mode 100644 index 73c60b103..000000000 --- a/content/dn/1.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: 1 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-31 -> Never deny a diagnosis but do deny the negative verdict that may go with it. -> — Norman Cousins - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| 203 writeup | 2hr | | -| 201 assignment | 2hr | | -| | | | -| | | | -| | | | -| | | | -| | | | -## 1 Todo's -- [x] 13:00 Info201 Lecture - -## 2 Lecture/Labs -- [ ] 11:00 Cosc202 Lecture -- [ ] 12:00 Cosc201 Lab -- [x] 16:00 Info201 Lecture - -## 3 Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 1hr Question 1 - - [ ] 45min Question 2 - - [ ] 30min Question 3 -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [ ] 120mins write up - -### 3.1 Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie - -- [ ] save open file state - -## 4 Projects -- [ ] python ai weekly review -- [ ] my own password manager -## 5 Timetable -![](https://i.imgur.com/86a1hDy.png) - - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) - - - diff --git a/content/dn/2022-03-07.md b/content/dn/2022-03-07.md deleted file mode 100644 index 3f314daa9..000000000 --- a/content/dn/2022-03-07.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 2022-03-07 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -#### TODO -- [x] mark off cosc202 lab -- [x] cosc 202 lecture -- [x] cosc 201 lab -- [x] 201 lecture 3 - - -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) - -![Pasted image 20220302113514.png](None) diff --git a/content/dn/2022-03-08.md b/content/dn/2022-03-08.md deleted file mode 100644 index 6528c53f5..000000000 --- a/content/dn/2022-03-08.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: 2022-03-08 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -#### TODO -- [x] cosc 201 lecture -- [x] info 203 lecture -- [ ] info 201 lecture -- [x] 202 lab (help with grep for {) -- [x] stocks notes -- [x] review -- [x] look at flats -- [x] fixes for polish 2,4,5, -- [x] fixes for polish 6 -- [x] review 201 lecture notes - -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220302113514.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-09.md b/content/dn/2022-03-09.md deleted file mode 100644 index 4be0230a7..000000000 --- a/content/dn/2022-03-09.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: 2022-03-09 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -#### TODO -- [x] 203 Lecture -- [x] module 08 swedish fix -- [x] polishes fixes 7 8 10 14 -- [x] 203 tutorial -- [x] 201 tutorial -- [ ] copy key -- [x] post long point vids / send to leeto -- [x] start cosc201 lab03 - - - -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220302113514.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-10.md b/content/dn/2022-03-10.md deleted file mode 100644 index d7adff1f9..000000000 --- a/content/dn/2022-03-10.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: 2022-03-10 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -#### TODO -- [ ] copy key -- [x] 3 examples for 203 assignment -- [x] polish fixes -- [x] 202 lecture -- [x] cosc 201 lab -- [x] info 201 lecture -- [x] get out meat -- [x] refactor 201 notes -- [x] cosc 201 lecture - -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220302113514.png](None) - diff --git a/content/dn/2022-03-11.md b/content/dn/2022-03-11.md deleted file mode 100644 index b6898fbe5..000000000 --- a/content/dn/2022-03-11.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: 2022-03-11 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-11 -## Todo's -- [ ] work on norwegian modules or polish fixes -- [x] 30 min typing -- [x] 202 lab -- [x] info 201 lecture -- [x] info 201 lab - -## Stocks - - -## Daily metrics -- typing time: 27 -- typing avg: 57 - -- work time: 0 - -- [x] exercise -- [x] surf -- [x] leave house - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) - -![Pasted image 20220311102444.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-12.md b/content/dn/2022-03-12.md deleted file mode 100644 index 2b1610600..000000000 --- a/content/dn/2022-03-12.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: 2022-03-12 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-12 -## Todo's -- [ ] ... -## Stocks -brief notes - -## Daily metrics -- typing time: -- typing avg: - -- work time: - -- [x] exercise -- [x] surf -- [x] leave house - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220311102444.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-14.md b/content/dn/2022-03-14.md deleted file mode 100644 index 5fbdd2df7..000000000 --- a/content/dn/2022-03-14.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 2022-03-14 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-14 -## Todo's -- [x] review notes from saturday sunday and toaday -- [x] 202 lecture at 11:00 -- [x] 201 lab -- [x] upload module 03 and fix 08 -- [x] 4th example for 203 What is Usability -- [x] put hdmi cable back -- [ ] add git usage note -- [x] start 201 assignment 1 -- [ ] watch 203 videos 1-2 - - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220311102444.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-15.md b/content/dn/2022-03-15.md deleted file mode 100644 index 235be70ed..000000000 --- a/content/dn/2022-03-15.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: 2022-03-15 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-15 -## Todo's -- [x] refactor git notes -- [ ] watch 203 videos -- [x] call dad -- [ ] spending review -- [x] 203 lecture -- [x] 201 lecture -- [x] info 201 lecture -- [x] 202 lab -- [ ] norwegian modules -- [x] review notes for today -- [x] refactor 203 notes -- [x] 201 lab part 1, 2 -- [ ] review dropping info 201/202 - -# Daily Laws -## Mind -> 'Cause all that's gonna do really is accelerate the anxieties that I wish I could alleviate -> I'm ready to lose my mind, but instead I use my mind - -## Body - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#:) -![Pasted image 20220311102444.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-16.md b/content/dn/2022-03-16.md deleted file mode 100644 index 50a841f91..000000000 --- a/content/dn/2022-03-16.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: 2022-03-16 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-16 -## Reminders -- [ ] investigate python position -- [ ] python ai weekly review - -## Todo's -- [x] Norwegian 4 -- [x] Lecture 203 -- [x] tut 203 -- [x] tut 201 -- [x] review notes -- [x] review dropping 201 -- [x] spending review -- [x] refactor 203 notes -- [x] learn about heading links -- [ ] 203 assignment - -| task | e time | r time | -| --------------------------| ------ | -------| -| no 4 | 2hrs | 1hr40 | -| review notes | 0.5hr | 28mins | -| review 201 | 0.5hr | 11mins | -| spending review | 0.5hr | 1.5hrs | -| refactor 203 notes | 0.5hr | 2hrs | -| learn about heading links | 15min | 3mins | - -# Daily Laws -## Mind -> 'Cause all that's gonna do really is accelerate the anxieties that I wish I could alleviate -> I'm ready to lose my mind, but instead I use my mind - -## Body - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220311102444.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-17.md b/content/dn/2022-03-17.md deleted file mode 100644 index 6569c766c..000000000 --- a/content/dn/2022-03-17.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: 2022-03-17 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-17i -## Reminders -- [x] investigate python position -- [ ] python ai weekly review -- [ ] my own password manager - -## Todos -- [ ] 203 assignment -- [ ] 201 assignment -- [x] typing -- [ ] norwegian 05, 06 -- [x] lecture 202 -- [x] lab cosc 201 -- [x] lecture info 201 -- [ ] info201 lecture notes use case diagrams -- [x] review notes - -| task | e time | r time | -| -------------------------| ------ | -------| -| norwegian 05 04 | 2.5hr | | -| typing | 0.5hr | 0.5hr | -| 203 ass | 2hr | 4hr | -| cosc 201 ass | 1hr | | -| lecture 202 | 1hr | 1hr | -| lab cosc 201 | 1hr | 0mins | -| lecture info 201 | 1hr | 1hr | -| python job | 0.5hr | 10mins | -| review notes | 0.5hr | 5mins | - -# Daily Laws -## Mind -> 'Cause all that's gonna do really is accelerate the anxieties that I wish I could alleviate -> I'm ready to lose my mind, but instead I use my mind - -## Body - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220311102444.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-18.md b/content/dn/2022-03-18.md deleted file mode 100644 index 181a64571..000000000 --- a/content/dn/2022-03-18.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: 2022-03-18 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-18i -## Reminders -- [ ] python ai weekly review -- [ ] my own password manager -- [ ] - -## Todo's -- [ ] 203 assignment -- [ ] 201 assignment -- [ ] norwegian 05, 06 -- [ ] info201 lecture notes use case diagrams -- [x] 202 brightness -- [ ] 202 add comments - -| task | e time | r time | -| -------------------------| ------ | -------| -| 202 brightness | 2hr | 2hr | -| 202 add comments | 15min | | -| norwegian 4 5 6 7 | 4hr | | -| 201 lecture notes | 1hr | | -| | | | -| | | | -| | | | -| | | | - -# Daily Laws -## Mind -> 'Cause all that's gonna do really is accelerate the anxieties that I wish I could alleviate -> I'm ready to lose my mind, but instead I use my mind - -## Body - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220311102444.png](None) \ No newline at end of file diff --git a/content/dn/2022-03-19.md b/content/dn/2022-03-19.md deleted file mode 100644 index 79b7c190b..000000000 --- a/content/dn/2022-03-19.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: 2022-03-19 ---- -[Daily notes](content/notes/daily-notes.md) - ---- -↑ - -# 2022-03-19 -## Reminders -- [ ] -## Todo's -- [ ] - -| task | e time | r time | -| -------------------------| ------ | -------| -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | - -# Daily Laws -## Mind -> 'Cause all that's gonna do really is accelerate the anxieties that I wish I could alleviate -> I'm ready to lose my mind, but instead I use my mind - -## Body - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220311102444.png](None) -- [ ] python ai weekly review -- [ ] my own password manager -- [ ] -- [ ] 203 assignment -- [ ] 201 assignment -- [ ] norwegian 05, 06 -- [ ] info201 lecture notes use case diagrams -- [ ] 202 add comments \ No newline at end of file diff --git a/content/dn/2022-03-20.md b/content/dn/2022-03-20.md deleted file mode 100644 index 4630c9fca..000000000 --- a/content/dn/2022-03-20.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: 2022-03-20 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-20i -## Reminders -- [ ] -## Todo's -- [ ] - -| task | e time | r time | -| -------------------------| ------ | -------| -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | - -# Daily Laws -## Mind -> 'Cause all that's gonna do really is accelerate the anxieties that I wish I could alleviate -> I'm ready to lose my mind, but instead I use my mind - -## Body - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) -info 201 [tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket:%5B%5B%2FLabs%2FLab%2002%2FLab%202%3A%20Git%20and%20GitBucket%5D%5D) -![Pasted image 20220311102444.png](None) -- [ ] -- [ ] -- [ ] python ai weekly review -- [ ] my own password manager -- [ ] -- [ ] 203 assignment -- [ ] 201 assignment -- [ ] norwegian 05, 06 -- [ ] info201 lecture notes use case diagrams -- [ ] 202 add comments \ No newline at end of file diff --git a/content/dn/2022-03-21.md b/content/dn/2022-03-21.md deleted file mode 100644 index e07012bcf..000000000 --- a/content/dn/2022-03-21.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: 2022-03-21 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-21 -| task | e time | r time | -| -------------------------| ------ | -------| -| info 201 assignment | 1hr | | -| info 201 lab | 1.5hr | 1hr | -| cosc 201 assignment | 1hr | 3hr | -| | | | -| | | | -| norwegian 12 | 1.25hr | 1.5hr | -| | | | -| | | | - - -## Assignments -- [ ] 5pm 21st March ⇒ 201 assignment -- [ ] 5pm 1st April ⇒ info 201 assigment - -### Cosc 202 tasks - -## Todo's -- [ ] info 201 lab -- [ ] - -## Lectures/labs -- [x] 202 lecture @ 11:00 -- [x] cosc 201 lab @ 12:00 - -## Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## Links -cosc 202 [lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) -![Pasted image 20220311102444.png](None) diff --git a/content/dn/2022-03-22.md b/content/dn/2022-03-22.md deleted file mode 100644 index f4915cb8d..000000000 --- a/content/dn/2022-03-22.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: 2022-03-22 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-22 - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| Lectures and labs | 5hr | 3hr | -| Norwegian 13 14 | 2.5hr | 3hr | -| Info 201 Assignment | 1.5hr | 0hr | -| Review notes | 1hr | 1hr | - -## Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 60mins write up -- [ ] 5pm 25th March ⇒ info 201 milestone 1 - - [ ] 30mins process transcript - - [ ] 30mins summary and scope - - [ ] 120mins functional requirements - - [ ] 30mins non functional requirements - - [ ] 15mins glossary - - [ ] 30mins follow-up checklist -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - ![Pasted image 20220322104250.png](None)![Pasted image 20220322104519.png](None) - - [ ] Find group - - [ ] 30mins heuristic evaulations - - [ ] 120mins write up - -### Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie - -## Todo's -- [ ] info 201 lab -- [x] Norwegian 13 14 -- [x] review notes for today - -## Lecture/Labs -- [x] 10:00 Info203 Lecture -- [x] 11:00 Cosc201 Lecture -- [ ] 13:00 Info201 Lecture -- [x] 14:00 Cosc202 Lab - -## Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## Timetable -![Pasted image 20220311102444.png](None) - -## Links -### cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) - diff --git a/content/dn/2022-03-23.md b/content/dn/2022-03-23.md deleted file mode 100644 index 3b70fef39..000000000 --- a/content/dn/2022-03-23.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: 2022-03-23 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-23 -> But man is not made for defeat. A man can be destroyed but not defeated. -> — Ernest Hemingway - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| norwegian 17 16 | 2hr | 1hr | -| info 201 transc | 30m | 1.5hr | -| info 201 summary and sc | 30m | 1hr15 | -| info 201 functional reqs | 1.5hr | - | -| review notes | 15min | 15m | -| | | | -| | | | -| | | | -## Todo's -- [x] info 201 lab 3pm -- [x] review notes - -## Lecture/Labs -- [x] 13:00 Info201 Lecture -- [x] 10:00 Info203 Lecture -- [x] 14:00 Info203 Tutorial -- [-] 16:00 Cosc201 Tutorial - -## Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 60mins write up -- [ ] 5pm 25th March ⇒ info 201 milestone 1 - - [x] 30mins process transcript - - [x] 30mins summary and scope - - [ ] 120mins functional requirements - - [ ] 30mins non functional requirements - - [ ] 15mins glossary - - [ ] 30mins follow-up checklist -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [ ] Find group - - [ ] 30mins heuristic evaulations - - [ ] 120mins write up -### Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie - - -## Projects -- [ ] python ai weekly review -- [ ] my own password manager -- [ ] - -## Timetable -![Pasted image 20220311102444.png](None) - -## Links -### cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-03-24.md b/content/dn/2022-03-24.md deleted file mode 100644 index 9fdbd76e3..000000000 --- a/content/dn/2022-03-24.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: 2022-03-24 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-24 -> When deeds and words are in accord, the whole world is transformed. -> — Zhuang Zhou - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| Norwegian 15 01 | 2hr | | -| Functional reqs | 3hr | | -| Non Functional reqs | 2hr | | -| Review Notes | 30m | 1hr | -| | | | -| | | | -| | | | -| | | | -## Todo's -- [ ] - -## Lecture/Labs -- [ ] 11:00 Cosc202 Lecture -- [ ] 12:00 Cosc201 Lab -- [ ] 16:00 Info201 Lecture - -## Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 60mins write up -- [ ] 5pm 25th March ⇒ info 201 milestone 1 - - [ ] 120mins functional requirements - - [ ] 30mins non functional requirements - - [ ] 15mins glossary - - [ ] 30mins follow-up checklist -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [ ] Find group - - [ ] 30mins heuristic evaulations - - [ ] 120mins write up - -### Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie - -## Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## Timetable -![Pasted image 20220311102444.png](None) - -## Links -### cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-03-25.md b/content/dn/2022-03-25.md deleted file mode 100644 index dad48dabd..000000000 --- a/content/dn/2022-03-25.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: 2022-03-25 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-25 -> He who has imagination without learning has wings but no feet. — Joseph Joubert - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| Review notes | 15m | 15min | -| | | | -| | | | -| | | | - -## Todo's -- [ ] 11:00 Cosc202 Lecture (debugging) -- [x] 12:00 Cosc201 Lab -- [ ] 16:00 Info201 Lecture (advanced data modelling - patterns) - -## Lecture/Labs -- [x] 09:00 Cosc202 Lab -- [ ] 11:00 Cosc201 Lecture (mergesort 2) -- [ ] 12:00 Info201 Lab (use case diagrams) - -## Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 60mins write up -- [x] 5pm 25th March ⇒ info 201 milestone 1 - - [x] 120mins functional requirements - - [x] 30mins non functional requirements - - [x] 15mins glossary - - [x] 30mins follow-up checklist -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [ ] Find group - - [ ] 30mins heuristic evaulations - - [ ] 120mins write up - -### Cosc 202 tasks -- [ ] save open file state -- https://trello.com/b/Fk7lAfEG/andie - -## Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## Timetable -![Pasted image 20220311102444.png](None) - -## Links -### cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-03-27.md b/content/dn/2022-03-27.md deleted file mode 100644 index f1e7d64ee..000000000 --- a/content/dn/2022-03-27.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: 2022-03-27 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-27 -> Be glad of life because it gives you the chance to love, to work, to play, and to look up at the stars. -> — Henry van Dyke Jr. - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| | | | -| | | | -| | | | -| | | | -| | | | -## Todo's -- [ ] 11:00 Cosc202 Lecture (debugging) -- [ ] 16:00 Info201 Lecture (advanced data modelling - patterns) -- [ ] 11:00 Cosc201 Lecture (mergesort 2) -- [ ] 12:00 Info201 Lab (use case diagrams) - -## Lecture/Labs - -## Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 60mins write up -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [ ] Find group - - [ ] 30mins heuristic evaulations - - [ ] 120mins write up - -### Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie -- [ ] save open file state - -## Projects -- [ ] python ai weekly review -- [ ] my own password manager -- [ ] - -## Timetable -![Pasted image 20220311102444.png](None) - -## Links -### cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-03-28.md b/content/dn/2022-03-28.md deleted file mode 100644 index 236db6378..000000000 --- a/content/dn/2022-03-28.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: 2022-03-28 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-28 -> Everything that happens as it should, and if you observe carefully, you will find this to be so. -> — Marcus Aurelius - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| Past Lectures | 4hr | | -| Today's lectures | 2hr | 2:20 | -| Cosc 201 assignment | 1hr | 1hr | -| Info 203 assignment | 1hr | | -| Review notes | 30min | 15min | -| Norwegian 1 15 | 2hr | 1h14 | -| 202 work | 1hr | 1hr | -## Todo's -- [x] andie work -- [ ] 11:00 Cosc202 Lecture (debugging) -- [x] 16:00 Info201 Lecture (advanced data modelling - patterns) -- [ ] 11:00 Cosc201 Lecture (mergesort 2) -- [ ] 12:00 Info201 Lab (use case diagrams) - -## Lecture/Labs -- [x] 11:00 Cosc202 Lecture -- [x] 12:00 Cosc201 lab - -## Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 1hr Question 1 - - [ ] 45min Question 2 - - [ ] 30min Question 3 -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [x] Find group - - [ ] 1hr heuristic evaluations - - [ ] 120mins write up -- [ ] save open file state - -### Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie - -## Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## Timetable -![Pasted image 20220311102444.png](None) - -## Links -### cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-03-29.md b/content/dn/2022-03-29.md deleted file mode 100644 index 483cbef97..000000000 --- a/content/dn/2022-03-29.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: 2022-03-29 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-29 -> Be as you wish to seem. -> — Socrates - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| past lectures | 2h | | -| Norwegian 15 | 1.5h | | -| todays lectures | 3hr | | -| heruistic evals | 3hr | | -| review notes | 5min | 5min | -| | | | - -## Todo's -- [x] 11:00 Cosc202 Lecture (debugging) -- [x] 11:00 Cosc201 Lecture (mergesort 2) -- [ ] 12:00 Info201 Lab (use case diagrams) - -## Lecture/Labs -- [x] 10:00 Info203 Lecture -- [ ] 11:00 Cosc201 Lecture -- [ ] 13:00 Info201 Lecture -- [x] 14:00 Cosc202 Lab - -## Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 1hr Question 1 - - [ ] 45min Question 2 - - [ ] 30min Question 3 -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [ ] 3hr heuristic evaluations - - [ ] ohyay - - [x] skype - - [ ] discord - - [ ] 120mins write up -### Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie -- [ ] save open file state -## Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## Timetable -![Pasted image 20220311102444.png](None) - -## Links -### cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-03-30.md b/content/dn/2022-03-30.md deleted file mode 100644 index 901b442b6..000000000 --- a/content/dn/2022-03-30.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: 2022-03-30 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-30 -> Get busy living or get busy dying. -> — Stephen King - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| norwegian 15 | 2hr | 2hr | -| review notes | 5min | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -## Todo's -- [ ] 12:00 Info201 Lab (use case diagrams) -- [x] 11:00 Cosc201 Lecture -- [ ] 13:00 Info201 Lecture - -## Lecture/Labs -- [x] 10:00 Info203 Lecture -- [x] 14:00 Info203 Tutorial -- [ ] 16:00 Cosc201 Tutorial - -## Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 1hr Question 1 - - [ ] 45min Question 2 - - [ ] 30min Question 3 -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [x] 3hr heuristic evaluations - - [x] ohyay - - [x] discord - - [ ] 120mins write up - -### Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie -- [ ] save open file state - -## Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## Timetable -![Pasted image 20220311102444.png](None) - -## Links -### cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) - diff --git a/content/dn/2022-03-31.md b/content/dn/2022-03-31.md deleted file mode 100644 index 42dce53a4..000000000 --- a/content/dn/2022-03-31.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: 2022-03-31 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-03-31 -> If you think you can, you can. And if you think you can't, you're right. -> — Henry Ford - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -## 1 Todo's -- [x] 13:00 Info201 Lecture -- [ ] 16:00 Cosc201 Tutorial - -## 2 Lecture/Labs -- [x] 11:00 Cosc202 Lecture -- [ ] 12:00 Cosc201 Lab -- [x] 16:00 Info201 Lecture - -## 3 Assignments -- [ ] 5pm 1st April ⇒ cosc 201 assignment - - [ ] 1hr Question 1 - - [ ] 45min Question 2 - - [ ] 30min Question 3 -- [ ] 5pm 1st April ⇒ info 203 assignment 2 - - [ ] 120mins write up - -### 3.1 Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie -- [ ] save open file state - -## 4 Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## 5 Timetable -![Pasted image 20220311102444.png](None) - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-04-01.md b/content/dn/2022-04-01.md deleted file mode 100644 index 9e32df475..000000000 --- a/content/dn/2022-04-01.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: 2022-04-01 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-04-01 -> I will give you a definition of a proud man: he is a man who has neither vanity nor wisdom one filled with hatreds cannot be vain, neither can he be wise. -> — John Keats - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| 203 Assignment | 3hr | 3hr | -| review notes | 30min | 30min | -| 201 Assignment | 3hr | | -| Swedish fixes | ? | | -| 202 Work | 1hr | | - -## 1 Todo's -- [ ] 16:00 Cosc201 Tutorial -- [ ] 12:00 Cosc201 Lab - -## 2 Lecture/Labs -- [r] 09:00 Cosc202 Lab -- [ ] 11:00 Cosc201 Lecture -- [ ] 12:00 Info201 Lab - -## 3 Assignments -- [ ] 12pm 1st April ⇒ cosc 201 assignment - - [ ] 1hr Question 1 - - [ ] 45min Question 2 - - [ ] 30min Question 3 -- [x] 5pm 1st April ⇒ info 203 assignment 2 - - [x] 120mins write up - -### 3.1 Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie -- [ ] save open file state - -## 4 Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## 5 Timetable -![Pasted image 20220311102444.png](None) - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-04-02.md b/content/dn/2022-04-02.md deleted file mode 100644 index 796cfc8d3..000000000 --- a/content/dn/2022-04-02.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: 2022-04-02 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-04-02 -> We all live with the objective of being happy; our lives are all different and yet the same. -> — Anne Frank - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -## 1 Todo's -- [ ] 16:00 Cosc201 Tutorial -- [ ] 12:00 Cosc201 Lab -- [ ] 11:00 Cosc201 Lecture -- [ ] 12:00 Info201 Lab - -## 2 Lecture/Labs - - -## 3 Assignments - -### 3.1 Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie -- [ ] save open file state - -## 4 Projects -- [ ] python ai weekly review -- [ ] my own password manager -## 5 Timetable -![Pasted image 20220311102444.png](None) - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/dn/2022-04-03.md b/content/dn/2022-04-03.md deleted file mode 100644 index 0640cd17d..000000000 --- a/content/dn/2022-04-03.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: 2022-04-03 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-04-03 -> I'm not interested in age. People who tell me their age are silly. You're as old as you feel. -> — Elizabeth Arden - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -## 1 Todo's -- [ ] 16:00 Cosc201 Tutorial -- [ ] 12:00 Cosc201 Lab -- [ ] 11:00 Cosc201 Lecture -- [ ] 12:00 Info201 Lab - -## 2 Lecture/Labs - - -## 3 Assignments - -### 3.1 Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie -- [ ] save open file state - -## 4 Projects -- [ ] python ai weekly review -- [ ] my own password manager - -## 5 Timetable -![Pasted image 20220311102444.png](None) - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) - - diff --git a/content/dn/2022-04-04.md b/content/dn/2022-04-04.md deleted file mode 100644 index b190e161c..000000000 --- a/content/dn/2022-04-04.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: 2022-04-04 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-04-04 -> If you light a lamp for somebody, it will also brighten your path. -> — Buddha - -| task | e time | r time | -| ------------------------ | ------ | ------ | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | -## 1 Todo's - -## 2 Lecture/Labs -- [x] 11:00 Cosc202 Lecture -- [ ] 12:00 Cosc201 lab -## 3 Assignments - -### 3.1 Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie - - -## 4 Projects -- continuously integrate obsidian notes to website - -## 5 Timetable -![Pasted image 20220311102444.png](None) - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) - -- [ ] 16:00 Cosc201 Tutorial -- [ ] 12:00 Cosc201 Lab -- [ ] 11:00 Cosc201 Lecture -- [ ] 12:00 Info201 Lab -- [ ] save open file state -- [ ] python ai weekly review -- [ ] my own password manager \ No newline at end of file diff --git a/content/dn/2022-04-05.md b/content/dn/2022-04-05.md deleted file mode 100644 index cc77fd619..000000000 --- a/content/dn/2022-04-05.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: 2022-04-05 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-04-05 -> If you smile when no one else is around, you really mean it. -> — Andy Rooney - -| # | task | P | A | e time | r time | -|---|---------------------------------------------|---|---|--------|--------| -| 2 | 201 Lecture | 2 | 2 | | | -| 3 | One no fix | 1 | | | | -| 1 | Cosc 201 Lab | 3 | | | | -| | | | | | | -| | | | | | | -| | | | | | | -| | | | | | | -| | | | | | | - -> SCORE: 33% - -## 1 Todos -- [ ] 12:00 Cosc201 lab -- [ ] 16:00 Cosc201 Tutorial -- [ ] 11:00 Cosc201 Lecture -- [ ] 12:00 Info201 Lab - -## 2 Lecture/Labs -- [x] 10:00 Info203 Lecture -- [ ] 11:00 Cosc201 Lecture -- [x] 13:00 Info201 Lecture -- [ ] 14:00 Cosc202 Lab - -## 3 Assignments - -### 3.1 Cosc 202 tasks -- https://trello.com/b/Fk7lAfEG/andie - -## 4 Projects -- python ai weekly review -- CI notes site -- my own password manager - -## 5 Timetable -![Pasted image 20220311102444.png](None#invert) - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) \ No newline at end of file diff --git a/content/dn/2022-04-06.md b/content/dn/2022-04-06.md deleted file mode 100644 index 060b85f6a..000000000 --- a/content/dn/2022-04-06.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: 2022-04-06 ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# 2022-04-06 -Raw Power - The Stooges - spotify:album:6mxbG8KrOTZIxlP4gzaliM - -| # | task | P | A | e time | r time | -|---| ------------------------|---|---|--------| ------ | -| 1 | one norwegian fix | | | | | -| 2 | 1hr 202 work | | | | | -| 3 | decide about 203 ass | | | | | -| 4 | | | | | | -| 5 | | | | | | -| 6 | | | | | | -| 7 | | | | | | -| 8 | | | | | | - - -> SCORE: - -## 1 Todos -- [ ] 12:00 Cosc201 lab -- [x] 11:00 Cosc201 Lecture -- [ ] 12:00 Info201 Lab -- [ ] 11:00 Cosc201 Lecture -- [ ] 14:00 Cosc202 Lab - -## 2 Lecture/Labs -- [x] 10:00 Info203 Lecture -- [ ] 14:00 Info203 Tutorial -- [ ] 16:00 Cosc201 Tutorial - -## 3 Assignments - -## 4 Projects -- python ai weekly review -- CI notes site -- my own password manager - -## 5 Timetable -![Pasted image 20220311102444.png](None) - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) - diff --git a/content/notes/2-uml.md b/content/notes/2-uml.md deleted file mode 100644 index 3143374e1..000000000 --- a/content/notes/2-uml.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 2 UML ---- -# 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 f8b9cf5ef..000000000 --- a/content/notes/201-algorithms-and-data-structures.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: 201 Algorithms and data structures ---- -# COSC201 - Algorithms and Data Structures -## 1 Lectures -- [Merge sort - divide and conquer](content/notes/merge-sort-divide-and-conquer.md) -- [Lecture 8 Merge sort 2](content/notes/lecture-8-merge-sort-2.md) -- [Lecture 9 Stacks queues and heaps](content/notes/lecture-9-stacks-queues-and-heaps.md) -- [Lecture 10 Heaps and heap sort](content/notes/lecture-10-heaps-and-heap-sort.md) - -## 2 Notes -### 2.1 Algorithm Complexity -- [Big-O](content/notes/big-o.md) -- [Big theta](content/notes/big-theta.md) -- [Induction](content/notes/induction.md) -- [analysis of recursive algorithms](content/notes/analysis-of-recursive-algorithms.md) - -### 2.2 Algorithms -- [Minimal spending tree](content/notes/minimal-spending-tree.md) -- [Union Find-Disjoint set](content/notes/union-find-disjoint-set.md) -- -### 2.3 Fundamental Data structures -- [Objects](content/notes/objects.md) -- Stacks queues, List/arrays -- [Union Find-Disjoint set](content/notes/union-find-disjoint-set.md) -- 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](content/notes/assignment-1.md) - -## 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 ad63904cd..000000000 --- a/content/notes/201-information-systems.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: 201 Information Systems ---- -# INFO 201 - Information Systems -## 1 Lectures -- [Lecture 6 Business Functions and Use Cases](content/notes/lecture-6-business-functions-and-use-cases.md) -- [Lecture 7 Business process modelling(BPM)](content/notes/lecture-7-business-process-modellingbpm.md) -- [Lecture 8 Business patterns](content/notes/lecture-8-business-patterns.md) -- [Lecture 9 Data Modelling and Normalisation](content/notes/lecture-9-data-modelling-and-normalisation.md) -- [Lecture 10 OOP Concepts and UML](content/notes/lecture-10-oop-concepts-and-uml.md) -- [Lecture 11 Class diagrams](content/notes/lecture-11-class-diagrams.md) - -## 2 Notes -- [Business analyst](content/notes/business-analyst.md) -- [Systems analyst](content/notes/systems-analyst.md) -- [Developer](content/notes/developer.md) -- [Models](content/notes/models.md) -- [Systems development lifecycle (SDLC)](content/notes/systems-development-lifecycle-sdlc.md) -- [Agile Development](content/notes/agile-development.md) -- [Predictive adaptive spectrum](content/notes/predictive-adaptive-spectrum.md) -- [Version Control Systems](content/notes/version-control-systems.md) -- [Requirements elicitation](content/notes/requirements-elicitation.md) - - -### 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 a366c198d..000000000 --- a/content/notes/202-software-development.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: 202 Software development ---- -# COSC 202 - Software development -## 1 Lectures -- [Lecture 07 Unit Testing](content/notes/lecture-07-unit-testing.md) -- [Lecture 08 Debugging](content/notes/lecture-08-debugging.md) -- [Lecture 09 Documentation](content/notes/lecture-09-documentation.md) -- [Lecture 10 Continuous integration](content/notes/lecture-10-continuous-integration.md) -- [Lecture 11 Continuous Integration 2](content/notes/lecture-11-continuous-integration-2.md) - -## 2 Notes -- [Consoles Terminals Shells](content/notes/consoles-terminals-shells.md) -- [Git](content/notes/git.md) -- [Ethics](content/notes/ethics.md) -- [Branch](content/notes/branch.md) -- [Integrated Development Environments](content/notes/integrated-development-environments.md) - -## 3 Project -A non destructive image editor ANDIE -- [CROCS](content/notes/crocs.md) -- [Teamwork](content/notes/teamwork.md) - -## 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 8c705867c..000000000 --- a/content/notes/203-human-computer-interaction.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: 203 Human-Computer interaction ---- -# INFO203 - Human Computer Interaction -## 1 Notes -### 1.1 Lectures -- [Lecture 7 Personas and Scenarios](content/notes/lecture-7-personas-and-scenarios.md) -- [Lecture 8 Personas and Scenarios](content/notes/lecture-8-personas-and-scenarios.md) -- [Lecture 9 Paper Protoypes, Wizard of OZ, Video Prototyping](content/notes/lecture-9-paper-protoypes-wizard-of-oz-video-prototyping.md) -- [Lecture 10 Design Heuristics](content/notes/lecture-10-design-heuristics.md) -- [Lecture 11 Design Heuristics 2](content/notes/lecture-11-design-heuristics-2.md) -- [Lecture 12 Design Heuristics 3](content/notes/lecture-12-design-heuristics-3.md) - -### 1.2 Videos -- [Heuristic Evaluation](content/notes/heuristic-evaluation.md) -- [Storyboards mockups, paper prototypes](content/notes/storyboards-mockups-paper-prototypes.md) -- [Faking it Wizard of OZ](content/notes/faking-it-wizard-of-oz.md) -- [Faking it video prototyping](content/notes/faking-it-video-prototyping.md) - -### 1.3 Atomic -- [HCI Big Picture](content/notes/hci-big-picture.md) -- [Birth of HCI](content/notes/birth-of-hci.md) -- [Prototyping](content/notes/prototyping.md) -- [Evaluating designs](content/notes/evaluating-designs.md) -- [Needfinding](content/notes/needfinding.md) -- [Observation](content/notes/observation.md) -- [Interviews](content/notes/interviews.md) -- [User Experience](content/notes/user-experience.md) -- [Usability](content/notes/usability.md) -- [HCI](content/notes/hci.md) - -### 1.4 Assignments -- [What is Usability](content/notes/what-is-usability.md) -- [Heuristics Evaluation Assignment](content/notes/heuristics-evaluation-assignment.md) -- [Assignment 3](content/notes/assignment-3.md) - -### 1.5 Exam -[Possible exam questions](content/notes/possible-exam-questions.md) - -## 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](None) - -![Pasted image 20220301174411.png](None) - - diff --git a/content/notes/agile-development.md b/content/notes/agile-development.md deleted file mode 100644 index f2f974fc0..000000000 --- a/content/notes/agile-development.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Agile Development ---- -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](content/notes/scrum.md) -Development is split into many short (~30 day) "sprints" of intense focus where the entire team is involved - -## 2 [Extreme programming (XP)](content/notes/extreme-programming-xp.md) -take current industry practices to the extreme - -## 3 [Unified process (UP)](content/notes/unified-process-up.md) -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 1f4412cb3..000000000 --- a/content/notes/all-the-light-we-cannot-see.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: All the light we cannot see ---- -# 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/analysis-of-recursive-algorithms.md b/content/notes/analysis-of-recursive-algorithms.md deleted file mode 100644 index 4382ec858..000000000 --- a/content/notes/analysis-of-recursive-algorithms.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: analysis of recursive algorithms -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](content/notes/induction.md) -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](None) 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/anti-govt-protest-china.md b/content/notes/anti-govt-protest-china.md deleted file mode 100644 index af58750ae..000000000 --- a/content/notes/anti-govt-protest-china.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Anti govt protest china ---- -# 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 f7f87597f..000000000 --- a/content/notes/approches-to-systems-development.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Approches to systems development ---- -# 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-1.md b/content/notes/assignment-1.md deleted file mode 100644 index 34120207e..000000000 --- a/content/notes/assignment-1.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: assignment 1 ---- -# COSC201 Assignment 1: Counting the seas - -## 1 Due : 11:59 p.m. Friday, April 1, 2022 -[9474308Hughes](None) -## 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](None) - -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](None) - -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/assignment-3.md b/content/notes/assignment-3.md deleted file mode 100644 index 82287da54..000000000 --- a/content/notes/assignment-3.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Assignment 3 ---- -[203 Human-Computer interaction](content/notes/203-human-computer-interaction.md) - -# 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 04ac713d4..000000000 --- a/content/notes/behaviour-driven-development.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Behaviour Driven Development -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](None) - -**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-o.md b/content/notes/big-o.md deleted file mode 100644 index d30ea4d2b..000000000 --- a/content/notes/big-o.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Big-O -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/big-theta.md b/content/notes/big-theta.md deleted file mode 100644 index 4d43f44c4..000000000 --- a/content/notes/big-theta.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Big theta -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 03684db7f..000000000 --- a/content/notes/birth-of-hci.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: Birth of HCI ---- -# 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](None) - - - -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](None) - - - -Batch processing using punch cards, still not interactive (1950s -1970s) - -![Pasted image 20220309103307.png](None) - - - -IBM System/360 (mainframe computer in the 70s), Altair 8800 (one of the first home computers) - -![Pasted image 20220309103339.png](None) - - - -visicalc (Dan Bricklin 1979), and Apple II (1977) - -![Pasted image 20220309103358.png](None) - - - -Sutherland, Ivan Edward (January 1963). "Sketchpad: A man-machine graphical communication system, MIT press. - -![Pasted image 20220309103425.png](None) - - - -Sutherland, Ivan Edward (January 1963). "Sketchpad: A man-machine graphical communication system, MIT press. - -![Pasted image 20220309103441.png](None) - - - -1968 - “The Sword of Damocles” Sutherland, Ivan Edward (1968), “A head-mounted three dimensional display” - -![Pasted image 20220309103500.png](None) - - - -1968 - “The Sword of Damocles” Sutherland, Ivan Edward (1968), “A head-mounted three dimensional display” - -![Pasted image 20220309103520.png](None) - - - -1968 - “The Sword of Damocles” Sutherland, Ivan Edward (1968), “A head-mounted three dimensional display” - -![Pasted image 20220309103543.png](None) - - - -“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](None) -![Pasted image 20220309103631.png](None) - - - -“Dynabook” Alan C. Kay. (1972), “Personal Computer for Children of All Ages” - -![Pasted image 20220309103706.png](None) - - - -Apple Newton (1993) and Apple iPad (2010) - -![Pasted image 20220309103724.png](None) - - - -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](None) - - - -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](None) - - - -1992/93 - IBM Simon First smartphone Phone, pager, calculator, address book, fax machine, and e-mail device - -![Pasted image 20220309103808.png](None) - - - -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](None) - - - -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](None) - - - -Nokia N95 (2007) and Apple iPhone (2007) - -![Pasted image 20220309103944.png](None) - - - -Major innovations in HCI (Myers 1998) - -![Pasted image 20220309104007.png](None) -![Pasted image 20220309104015.png](None) - - diff --git a/content/notes/books.md b/content/notes/books.md deleted file mode 100644 index 0073ce62e..000000000 --- a/content/notes/books.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Books ---- -# Books -[All the light we cannot see](content/notes/all-the-light-we-cannot-see.md) \ No newline at end of file diff --git a/content/notes/branch.md b/content/notes/branch.md deleted file mode 100644 index 7996a01a6..000000000 --- a/content/notes/branch.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Branch -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/business-analyst.md b/content/notes/business-analyst.md deleted file mode 100644 index 3b2964e67..000000000 --- a/content/notes/business-analyst.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Business analyst -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 61645e095..000000000 --- a/content/notes/business-functions.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Business functions ---- -# 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-and-notation.md b/content/notes/business-process-model-and-notation.md deleted file mode 100644 index 90acc90e7..000000000 --- a/content/notes/business-process-model-and-notation.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Business Process Model and Notation -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](None) -![Pasted image 20220323113643.png](None) \ 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 fbac53289..000000000 --- a/content/notes/business-process-model.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Business process model ---- -# 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 f57c74f12..000000000 --- a/content/notes/business-process.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Business process ---- -# 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/cheat-sheets.md b/content/notes/cheat-sheets.md deleted file mode 100644 index f397db84e..000000000 --- a/content/notes/cheat-sheets.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Cheat Sheets ---- - -[Git Cheat Sheet](content/notes/git-cheat-sheet.md) -[WinComposeS](content/notes/wincomposes.md) diff --git a/content/notes/combined-evals.md b/content/notes/combined-evals.md deleted file mode 100644 index 66ea545e4..000000000 --- a/content/notes/combined-evals.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Combined evals ---- -| 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 58421dff5..000000000 --- a/content/notes/consoles-terminals-shells.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Consoles Terminals Shells -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](content/notes/shell.md) -> program which the terminal/console sends input to which sends command to the OS - - [unix shell](content/notes/unix-shell.md) - - 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 b6c2a8580..000000000 --- a/content/notes/continuous-integration.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Continuous Integration ---- -# 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/crocs.md b/content/notes/crocs.md deleted file mode 100644 index 49e7abb53..000000000 --- a/content/notes/crocs.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: CROCS ---- -# CROCS - Communist republic of computer science -![Pasted image 20220311100212.png](None) ![Pasted image 20220311100213.png](None) - -## 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/daily-notes.md b/content/notes/daily-notes.md deleted file mode 100644 index 3a23c67af..000000000 --- a/content/notes/daily-notes.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: Daily notes ---- diff --git a/content/notes/debugging.md b/content/notes/debugging.md deleted file mode 100644 index 36b8e3379..000000000 --- a/content/notes/debugging.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Debugging ---- -# Debugging -removing technical faults -isolaing and remove technical faults -a human process -- requires creativity/disipline/knowledge -- deepr understanding of code - -debuggers are tools to help debugging - -## 1 common approaches -temporarily add output of diagnostic info -- "printf" debugging -permanently include calls to logging system -- route to terminal, log files etc - -## 2 debugging machine code -- cpu runs code instruction by instruction - - thus debugger can intervene between instructions - - most cpus help debugger interrupt and resume programs -- cpu reached current code via a sequence on callers - - called **stack trace** , aka back frame, stack frame etc -- may reach point where it cannot continue - - e.g., integer division by zero, program execution must stop - - stack trace of stopped program can be analysed - -## 3 Imperative languages -These are language that are executed in a step-wise, sequentail manner. - -- debug symbols - - e.g., method named, variable named -- source code context - - line numbers - - variable name - - function method names - -## 4 doing debugging -### 4.1 stepping skipping running -- step into --> 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/dependencies-among-attributes.md b/content/notes/dependencies-among-attributes.md deleted file mode 100644 index 648179f5d..000000000 --- a/content/notes/dependencies-among-attributes.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: Dependencies among attributes ---- -# 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](content/notes/normalisation.md) - - - -# 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/developer.md b/content/notes/developer.md deleted file mode 100644 index 14886ccb5..000000000 --- a/content/notes/developer.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Developer -sr-due: 2022-05-13 -sr-interval: 46 -sr-ease: 290 ---- -tags: #review - ---- -# Developer -![Pasted image 20220301172040.png](None) - -## 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 9ce519dad..000000000 --- a/content/notes/documentation.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Documentation ---- -# 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/domain-driven-design.md b/content/notes/domain-driven-design.md deleted file mode 100644 index f6ed346dc..000000000 --- a/content/notes/domain-driven-design.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Domain Driven Design -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 d05c791bc..000000000 --- a/content/notes/entity-relationship-diagrams.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Entity Relationship Diagrams -aliases: ERD, ERDs ---- -# Entity Relationship Diagrams -![Pasted image 20220328165256.png](None) - -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](None) -![Pasted image 20220328165656.png](None) - -uses: -- model mutual exclusivity -- better for modelling not for implementation - -## 2 parallel relationship -![Pasted image 20220328165851.png](None) - -could model as separate relationships via staff subtypes -not very common - -![Pasted image 20220328165944.png](None) -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](None) - -## 4 dealing with data history -![Pasted image 20220328200434.png](None) - -could be many to many relationships:![Pasted image 20220328200517.png](None) - -so associative relationship: ![Pasted image 20220328200536.png](None) - - -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/ethics.md b/content/notes/ethics.md deleted file mode 100644 index b90a1525f..000000000 --- a/content/notes/ethics.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Ethics ---- - - - -coded biases doco -# Ethics -## 1 Case studies -1. [facial recognition in US riots 2021-01-06](content/notes/facial-recognition-in-us-riots-2021-01-06.md) -2. [Anti govt protest china](content/notes/anti-govt-protest-china.md) -3. [How is safe enough for autonomous vehicles](content/notes/how-is-safe-enough-for-autonomous-vehicles.md) - -### 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/evaluating-designs.md b/content/notes/evaluating-designs.md deleted file mode 100644 index 7dc9c45a5..000000000 --- a/content/notes/evaluating-designs.md +++ /dev/null @@ -1,188 +0,0 @@ ---- -title: Evaluating designs -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 [prototype](content/notes/prototyping.md) 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](None) -* Focus groups - * gathering groups of people to discuss an interface - * group setting can help or hinder - -### Feedback from experts -- [Peer critique](None) -- [Dogfooding](None) - - Using tools yourself -- [Heuristic Evaluation](content/notes/heuristic-evaluation.md) - - 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](content/notes/observation.md) - -### 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](None) - -## Query techniques -- [Interviews](content/notes/interviews.md) -- 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 d0bb65af2..000000000 --- a/content/notes/extreme-programming-xp.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Extreme programming (XP) -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](None) \ No newline at end of file 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 e5aff924e..000000000 --- a/content/notes/facial-recognition-in-us-riots-2021-01-06.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: facial recognition in US riots 2021-01-06 ---- -# 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/faking-it-video-prototyping.md b/content/notes/faking-it-video-prototyping.md deleted file mode 100644 index 8a3e382a0..000000000 --- a/content/notes/faking-it-video-prototyping.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Faking it video prototyping ---- -# 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/faking-it-wizard-of-oz.md b/content/notes/faking-it-wizard-of-oz.md deleted file mode 100644 index 366e6730e..000000000 --- a/content/notes/faking-it-wizard-of-oz.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Faking it Wizard of OZ ---- -# 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/finance.md b/content/notes/finance.md deleted file mode 100644 index afc6429f9..000000000 --- a/content/notes/finance.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Finance ---- -# Finance -## Trading -[Options](content/notes/options.md) - -## Tech -[Blockchain](None) diff --git a/content/notes/git-cheat-sheet.md b/content/notes/git-cheat-sheet.md deleted file mode 100644 index 29c0a5a96..000000000 --- a/content/notes/git-cheat-sheet.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Git Cheat Sheet ---- -#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](content/notes/branch.md) -> 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/git.md b/content/notes/git.md deleted file mode 100644 index c76088afa..000000000 --- a/content/notes/git.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Git -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 -[Repositories](content/notes/git-cheat-sheet.md#^3b3a5d) 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 -``` - -![300](None) -- 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 [Decentralised and Centralised VCS](content/notes/version-control-systems.md#^98d838) -- 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-big-picture.md b/content/notes/hci-big-picture.md deleted file mode 100644 index 5620264b1..000000000 --- a/content/notes/hci-big-picture.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: HCI Big Picture -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 - -![300](None) - ->"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/hci.md b/content/notes/hci.md deleted file mode 100644 index fb2af15c5..000000000 --- a/content/notes/hci.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: HCI ---- -#flashcards -![Pasted image 20220302102809.png](None) -# 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 73519a1eb..000000000 --- a/content/notes/heap.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Heap ---- -# 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/heuristic-evaluation.md b/content/notes/heuristic-evaluation.md deleted file mode 100644 index 5d664ec45..000000000 --- a/content/notes/heuristic-evaluation.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: Heuristic Evaluation ---- -# 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](None) - -## 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](None) - - -### 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 9172745f3..000000000 --- a/content/notes/heuristics-evaluation-assignment.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Heuristics Evaluation Assignment ---- -[Jet - Ohyay](content/notes/jet-ohyay.md) -[Jet -Discord](content/notes/jet-discord.md) -[Combined evals](content/notes/combined-evals.md) -# 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 5c42aa191..000000000 --- a/content/notes/how-is-safe-enough-for-autonomous-vehicles.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: How is safe enough for autonomous vehicles ---- -# 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](None) \ No newline at end of file diff --git a/content/notes/induction.md b/content/notes/induction.md deleted file mode 100644 index 383ecf424..000000000 --- a/content/notes/induction.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Induction -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/integrated-development-environments.md b/content/notes/integrated-development-environments.md deleted file mode 100644 index f836846fc..000000000 --- a/content/notes/integrated-development-environments.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: Integrated Development Environments -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/interviews.md b/content/notes/interviews.md deleted file mode 100644 index c79c0ec9d..000000000 --- a/content/notes/interviews.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Interviews -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](content/notes/evaluating-designs.md) -- [Requirements elicitation](content/notes/requirements-elicitation.md) -- [Needfinding](content/notes/needfinding.md) - -## 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/jet-discord.md b/content/notes/jet-discord.md deleted file mode 100644 index 7d9e323c1..000000000 --- a/content/notes/jet-discord.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Jet -Discord ---- -# 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/jet-ohyay.md b/content/notes/jet-ohyay.md deleted file mode 100644 index d1cd406cb..000000000 --- a/content/notes/jet-ohyay.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Jet - Ohyay ---- -# 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/lecture-07-unit-testing.md b/content/notes/lecture-07-unit-testing.md deleted file mode 100644 index 41816dda2..000000000 --- a/content/notes/lecture-07-unit-testing.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Lecture 07 Unit Testing -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](content/notes/testing.md) -1. why is testing needed - -2. what are three types of testing - -3. what are some limitations of testing - -### 0.2 [Test driven development](content/notes/test-driven-development.md) -1. what is testing driven development - -### 0.3 [Unit testing](content/notes/unit-testing.md) -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 f6f404224..000000000 --- a/content/notes/lecture-08-debugging.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Lecture 08 Debugging -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](None) - -# Lecture 8 debugging -[Debugging](content/notes/debugging.md) \ 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 591751eb2..000000000 --- a/content/notes/lecture-09-documentation.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Lecture 09 Documentation -sr-due: 2022-04-08 -sr-interval: 8 -sr-ease: 250 ---- -#review -# Lecture 09 Documentation -[Documentation](content/notes/documentation.md) \ 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 6bbb19adc..000000000 --- a/content/notes/lecture-10-continuous-integration.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Lecture 10 Continuous integration -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](content/notes/continuous-integration.md) \ 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 c9e6d559e..000000000 --- a/content/notes/lecture-10-design-heuristics.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Lecture 10 Design Heuristics -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](content/notes/faking-it-wizard-of-oz.md) -simulating machine behavior with human operators - -## 2 Video prototyping -[Faking it video prototyping](content/notes/faking-it-video-prototyping.md) - -## 3 Creating and comparing alternatives -create multiple ideas in parallel rather than one after the other -![Pasted image 20220330105813.png](None) -![Pasted image 20220330110050.png](None) - -## 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 01d48cc23..000000000 --- a/content/notes/lecture-10-heaps-and-heap-sort.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Lecture 10 Heaps and heap sort -sr-due: 2022-04-08 -sr-interval: 3 -sr-ease: 250 ---- -#review - ---- -# Lecture 10 Heaps and heap sort -## 1 Overview -[Heap](content/notes/heap.md) - -## 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 781f62049..000000000 --- a/content/notes/lecture-10-oop-concepts-and-uml.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Lecture 10 OOP Concepts and UML -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](content/notes/objects.md) - -[2 UML](content/notes/2-uml.md) - - - diff --git a/content/notes/lecture-11-class-diagrams.md b/content/notes/lecture-11-class-diagrams.md deleted file mode 100644 index b8a6f4f4a..000000000 --- a/content/notes/lecture-11-class-diagrams.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Lecture 11 Class diagrams -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 37007ec3e..000000000 --- a/content/notes/lecture-11-continuous-integration-2.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Lecture 11 Continuous Integration 2 -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 0c7e2b8bc..000000000 --- a/content/notes/lecture-11-design-heuristics-2.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Lecture 11 Design Heuristics 2 -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 8e96a305a..000000000 --- a/content/notes/lecture-12-design-heuristics-3.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: Lecture 12 Design Heuristics 3 -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 622c06dcb..000000000 --- a/content/notes/lecture-6-business-functions-and-use-cases.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Lecture 6 Business Functions and Use Cases -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](content/notes/approches-to-systems-development.md) -1. What are the two main approaches to systems development and how do they differ - -[Business functions](content/notes/business-functions.md) -2. What are business functions - -3. What is a use case - -4. What is a use case diagram used for - -[Use case diagrams](content/notes/use-case-diagrams.md) - - -- 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-modellingbpm.md b/content/notes/lecture-7-business-process-modellingbpm.md deleted file mode 100644 index 86a9e48c6..000000000 --- a/content/notes/lecture-7-business-process-modellingbpm.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Lecture 7 Business process modelling(BPM) -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](content/notes/business-process.md) -- [Business process model](content/notes/business-process-model.md) -- [Business Process Model and Notation](content/notes/business-process-model-and-notation.md) -- [UML](content/notes/uml.md) \ 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 d8c1b01dc..000000000 --- a/content/notes/lecture-7-personas-and-scenarios.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Lecture 7 Personas and Scenarios -sr-due: 2022-04-21 -sr-interval: 20 -sr-ease: 250 ---- - -#review - ---- -# Lecture 7 Heuristic Evaluation -[Heuristic Evaluation](content/notes/heuristic-evaluation.md) - -## 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 1f564c030..000000000 --- a/content/notes/lecture-8-business-patterns.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Lecture 8 Business patterns -sr-due: 2022-04-07 -sr-interval: 7 -sr-ease: 250 ---- -#review -# Lecture 8 Business Patterns -[Entity Relationship Diagrams](content/notes/entity-relationship-diagrams.md) \ 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 0b0700e0f..000000000 --- a/content/notes/lecture-8-merge-sort-2.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Lecture 8 Merge sort 2 -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](None#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 9ec309305..000000000 --- a/content/notes/lecture-8-personas-and-scenarios.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Lecture 8 Personas and Scenarios -sr-due: 2022-04-05 -sr-interval: 8 -sr-ease: 250 ---- - -#review -# Lecture 08 Personas and scenarios - -[Personas and Scenario](content/notes/personas-and-scenario.md) -[Storyboards mockups, prototypes](content/notes/storyboards-mockups-prototypes.md) - - - - - - 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 752bfcc11..000000000 --- a/content/notes/lecture-9-data-modelling-and-normalisation.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Lecture 9 Data Modelling and Normalisation -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](content/notes/redundancy-and-anomalies.md) - -[Dependencies among attributes](content/notes/dependencies-among-attributes.md) - -[Normalisation](content/notes/normalisation.md) \ 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 86d2adfca..000000000 --- a/content/notes/lecture-9-paper-protoypes-wizard-of-oz-video-prototyping.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Lecture 9 Paper Protoypes, Wizard of OZ, Video Prototyping -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](content/notes/faking-it-video-prototyping.md) -[Faking it Wizard of OZ](content/notes/faking-it-wizard-of-oz.md) -[Storyboards mockups, paper prototypes](content/notes/storyboards-mockups-paper-prototypes.md) - -## 1 Paper prototypes -used for exploring design in early stage -- brainstorming - - e.g.,![Pasted image 20220329102144.png](None) -- refinement of design and communicating ideas - - e.g., ![Pasted image 20220329102358.png](None) ![Pasted image 20220329102549.png](None) ![Pasted image 20220329102735.png](None) -- evaluating interfaces - -### 1.1 examples of prev 203 work -![Pasted image 20220329102855.png](None) - - -## 2 Digital prototypes - -### 2.1 past 203 -![Pasted image 20220329104459.png](None) -![Pasted image 20220329104612.png](None) -![Pasted image 20220329104617.png](None) 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 7339e0b78..000000000 --- a/content/notes/lecture-9-stacks-queues-and-heaps.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Lecture 9 Stacks queues and heaps -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](content/notes/stacks-and-queues.md) - -[Priority queue](content/notes/priority-queue.md) - -[Heap](content/notes/heap.md) \ 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 24d2ae99f..000000000 --- a/content/notes/merge-sort-divide-and-conquer.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Merge sort - divide and conquer -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 e83408b13..000000000 --- a/content/notes/minimal-spending-tree.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Minimal spending tree ---- -# 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/models.md b/content/notes/models.md deleted file mode 100644 index 95f22ee01..000000000 --- a/content/notes/models.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Models -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](content/notes/domain-driven-design.md) and in [Behaviour Driven Development](content/notes/behaviour-driven-development.md) \ No newline at end of file diff --git a/content/notes/needfinding.md b/content/notes/needfinding.md deleted file mode 100644 index 3a9e6502c..000000000 --- a/content/notes/needfinding.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Needfinding -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](content/notes/observation.md) - - 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](content/notes/interviews.md) - - 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 270c87e6c..000000000 --- a/content/notes/normalisation.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Normalisation ---- -# 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 30ddb0ac2..000000000 --- a/content/notes/objects.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Objects ---- -# 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 2706e459a..000000000 --- a/content/notes/observation.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Observation -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](content/notes/needfinding.md) -[Evaluating designs](content/notes/evaluating-designs.md) \ No newline at end of file diff --git a/content/notes/options.md b/content/notes/options.md deleted file mode 100644 index 1a0b9456b..000000000 --- a/content/notes/options.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Options ---- -# 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/personas-and-scenario.md b/content/notes/personas-and-scenario.md deleted file mode 100644 index 4cb4dbd33..000000000 --- a/content/notes/personas-and-scenario.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Personas and Scenario ---- -# 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](None) - -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](None) -![Pasted image 20220323102200.png](None) - -### 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](None) -![Pasted image 20220323103420.png](None) -![Pasted image 20220323103428.png](None) \ 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 beea65170..000000000 --- a/content/notes/possible-exam-questions.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Possible exam questions ---- -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 55a17a9c9..000000000 --- a/content/notes/predictive-adaptive-spectrum.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Predictive adaptive spectrum -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) -![500](None) -- modified water fall - slightly less rigid verision of "waterfall" which allows some overlap -![500](None) - - -## Adaptive -- more flexible, changes as you go. cannot be planned in advance -- requirements uncertain -- high techinal risk - -e.g., -![500](None) - -#### 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 39c0deacd..000000000 --- a/content/notes/priority-queue.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Priority queue ---- -# 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/prototyping.md b/content/notes/prototyping.md deleted file mode 100644 index c0a1876f4..000000000 --- a/content/notes/prototyping.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Prototyping -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](content/notes/simulated-annealing.md) - -## Goals -- minimise time spent -- maximise information gained - - cost of change increases with time -- help [stakeholders](content/notes/stakeholders.md) 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](None) -![Pasted image 20220308101937.png](None) -![Pasted image 20220308102125.png](None) -![Pasted image 20220308101115.png](None) \ 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 10ae01cec..000000000 --- a/content/notes/redundancy-and-anomalies.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Redundancy and Anomalies ---- -# 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 183b26083..000000000 --- a/content/notes/requirements-elicitation.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: Requirements elicitation -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](content/notes/models.md) -- 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](content/notes/stakeholders.md) and other devs - -## Methods -- Review existing material - - get inital understanding - - use as guidelines for [Interviews](content/notes/interviews.md) 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](None) -- [Interviews](content/notes/interviews.md) - - e.g., - - ![Pasted image 20220315133134.png](None) - - ![Pasted image 20220315133326.png](None) -- [Observation](content/notes/observation.md) - - beware observaion bias - - document using workflow diagrams - - not necessary to observe all processes at same level of detail - - e.g., Apprentice [Needfinding](content/notes/needfinding.md#^4453ee) -- [Prototyping](content/notes/prototyping.md) - - to test and evolve concepts - - to evaluate "look and feel" - - focus of accomplishing single objective - - built quickly using [IDE](content/notes/integrated-development-environments.md) (drag and drop features etc) and/or RAD frameworks -- [Questionnaire](None) - - 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](None) -- 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](content/notes/stakeholders.md), presented by analyst - -## Use in [Agile Development](content/notes/agile-development.md) -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/requirements.md b/content/notes/requirements.md deleted file mode 100644 index 08a97d5bc..000000000 --- a/content/notes/requirements.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Requirements -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 -[UP](content/notes/agile-development.md#^e2bc0b) -- Requirements (based on use cases) mostly elicited, modelled, and refined during inception, elaboration, and construction phases. -- Functional requirements implemented before technical, performance, reliability requirements. - -[XP](content/notes/agile-development.md#^e9fd09) -- Based on user stories rather than explicit individual requirements. -- Continuous involvement of users who can make business decisions about functionality and scope. - -[Scrum](content/notes/agile-development.md#^4ddbdc) -- 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** -![300](None) - -## 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](content/notes/stakeholders.md) -> 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 e9d03c6dc..000000000 --- a/content/notes/scrum.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: SCRUM -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](None) - -##### 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/shell.md b/content/notes/shell.md deleted file mode 100644 index 2f3672a99..000000000 --- a/content/notes/shell.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: shell -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](None) -- 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/simulated-annealing.md b/content/notes/simulated-annealing.md deleted file mode 100644 index d970acf93..000000000 --- a/content/notes/simulated-annealing.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: Simulated Annealing ---- diff --git a/content/notes/stacks-and-queues.md b/content/notes/stacks-and-queues.md deleted file mode 100644 index 33e9ac571..000000000 --- a/content/notes/stacks-and-queues.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Stacks and queues ---- -# 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/stakeholders.md b/content/notes/stakeholders.md deleted file mode 100644 index f71d9968d..000000000 --- a/content/notes/stakeholders.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Stakeholders -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)](content/notes/systems-development-lifecycle-sdlc.md#^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/storyboards-mockups-paper-prototypes.md b/content/notes/storyboards-mockups-paper-prototypes.md deleted file mode 100644 index 47031ceb1..000000000 --- a/content/notes/storyboards-mockups-paper-prototypes.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Storyboards mockups, paper prototypes ---- -# Storyboard mockups prototypes - -Fidelity will increase over time.![Pasted image 20220329090249.png](None) - -## 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](None) - - -## Paper prototyping -mockup of UI on computer -![Pasted image 20220329090827.png](None) - -### 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](None) \ 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 06ec46a71..000000000 --- a/content/notes/storyboards-mockups-prototypes.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Storyboards mockups, prototypes ---- -# 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](None) -![Pasted image 20220323104240.png](None) -![Pasted image 20220323104453.png](None) - -## 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](None) -- base it off the scenario - -play with the angle/perspectives -![Pasted image 20220323104748.png](None) -![Pasted image 20220323104900.png](None) - -simplify and develop vocabulary/you own style -![Pasted image 20220323104937.png](None) - -using tracing and templates -![Pasted image 20220323105040.png](None) - - - -- 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 ae0b2501d..000000000 --- a/content/notes/systems-analyst.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Systems analyst -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](None) \ 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 676f1f2ff..000000000 --- a/content/notes/systems-development-lifecycle-sdlc.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Systems development lifecycle (SDLC) -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](None) -# 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](content/notes/predictive-adaptive-spectrum.md) -A very common methodology at the moment is [Agile Development](content/notes/agile-development.md) - -## Phases -### Analysis -^2d7976 -- Lots of communication with [Stakeholders](content/notes/stakeholders.md) -- Gather detailed information -- define system requirements -- prioritise requirements (what is risky, what brings value to business) -> increase proability of success -- develop UI dialogs ([Prototyping](content/notes/prototyping.md) 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](content/notes/requirements.md) -- [Requirements elicitation](content/notes/requirements-elicitation.md) -- 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](content/notes/prototyping.md) - - 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](content/notes/stakeholders.md) - -Suprisingly very common with large projects - -reasons for fail: -![300](None) -![300](None) - - -**coding rarely causes problems** -![300](None) - diff --git a/content/notes/teamwork.md b/content/notes/teamwork.md deleted file mode 100644 index 55786042e..000000000 --- a/content/notes/teamwork.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Teamwork -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 9b84045ad..000000000 --- a/content/notes/templates.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Templates ---- -[Day](content/templates/day.md) -[DailyTemplate](content/templates/dailytemplate.md) -[Front Matter](content/templates/front-matter.md) \ No newline at end of file diff --git a/content/notes/test-driven-development.md b/content/notes/test-driven-development.md deleted file mode 100644 index e03046312..000000000 --- a/content/notes/test-driven-development.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Test driven development ---- -# 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/testing.md b/content/notes/testing.md deleted file mode 100644 index 345e51c36..000000000 --- a/content/notes/testing.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Testing ---- -# 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 9ec806788..000000000 --- a/content/notes/uml.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: UML ---- -# 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](None#invert) - -### 3.4 Activites and transitions -![Pasted image 20220323114618.png](None#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](None#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](None#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](None#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](None#invert) - -#### 3.8.1 example - -![Pasted image 20220323115415.png](None#invert) -![Pasted image 20220323115451.png](None#invert) -![Pasted image 20220323115536.png](None#invert) - -### 3.9 Example producing a book - -![Pasted image 20220323114440.png](None#invert) -![Pasted image 20220323114555.png](None#invert) \ 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 4f66976eb..000000000 --- a/content/notes/unified-process-up.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Unified process (UP) -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](None) -![Pasted image 20220308133325.png](None) -![Pasted image 20220322172120.png](None) - -##### 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](content/notes/stakeholders.md), 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](None) \ 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 62a2bf039..000000000 --- a/content/notes/union-find-disjoint-set.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -title: Union Find-Disjoint set -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](content/notes/induction.md) - -### 3.4 UF 4 -Change find so it implements [path compression](None) 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 b72bb4ce2..000000000 --- a/content/notes/unit-testing.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Unit testing ---- -# 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/unix-shell.md b/content/notes/unix-shell.md deleted file mode 100644 index 4e2f273d8..000000000 --- a/content/notes/unix-shell.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: unix shell -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](None) - - 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 9a34c370d..000000000 --- a/content/notes/usability.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Usability ---- -#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](None) - -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/use-case-diagrams.md b/content/notes/use-case-diagrams.md deleted file mode 100644 index 435e37874..000000000 --- a/content/notes/use-case-diagrams.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Use case diagrams ---- -# 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](None) - -### 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](None) - -### 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](None) - -### 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](None) - -### 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](None) - -#### 2.5.1 Extends dependency -- use cases can have optional, subordinate tasks -- useful with specialised actors -![Pasted image 20220320225018.png](None) - - -#### 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](None) - -#### 2.5.3 Requires dependency -- mandatory, _independent_ tasks, that must be completed first -- forces sequence -- use sparingly -![Pasted image 20220320225301.png](None) - -## 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 -![300](None) -![300](None) -![300](None) -![300](None) \ 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 78ba5e367..000000000 --- a/content/notes/user-experience.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: User Experience -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. - -![1/2](None) - diff --git a/content/notes/version-control-systems.md b/content/notes/version-control-systems.md deleted file mode 100644 index 9e47f8ae4..000000000 --- a/content/notes/version-control-systems.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Version Control Systems -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](content/notes/git.md) - -## 1 Goals -- allow collaboration -- track changes -- restoring previous versions -- finding out origins of issues -- backups -- not restrict workflow - -## 2 Terms -[Git Cheat Sheet](content/notes/git-cheat-sheet.md) - -## 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](content/notes/git.md) \ 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 638a60c46..000000000 --- a/content/notes/what-is-usability.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: What is Usability ---- -Jet Hughes 9474308 - - -## 1.1 Blackboard -![300](None) -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). - -![300](None) - -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 -![150](None) - -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 -![150](None) -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 -![300](None) -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: -![300](None) -![300](None) - - -After scrolling down -![300](None) diff --git a/content/notes/wincomposes.md b/content/notes/wincomposes.md deleted file mode 100644 index eae1dd9d0..000000000 --- a/content/notes/wincomposes.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: WinComposeS ---- -≥ 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 - - diff --git a/content/templates/dailytemplate.md b/content/templates/dailytemplate.md deleted file mode 100644 index 4e6dc34f5..000000000 --- a/content/templates/dailytemplate.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: DailyTemplate ---- -[Daily notes](content/notes/daily-notes.md) - ---- - -# {{date}} -<% tp.user.getAOTD() %> - -| # | task | P | A | e time | r time | -|---| ------------------------|---|---|--------| ------ | -| 1 | | | | | | -| 2 | | | | | | -| 3 | | | | | | -| 4 | | | | | | -| 5 | | | | | | -| 6 | | | | | | -| 7 | | | | | | -| 8 | | | | | | - - -> SCORE: - -## 1 Todos - -## 2 Lecture/Labs -<%* -const d = new Date().getDay() -switch(d){ - case 1: - tR+="- [ ] 11:00 Cosc202 Lecture\n- [ ] 12:00 Cosc201 lab" - break; - case 2: - tR+="- [ ] 10:00 Info203 Lecture\n- [ ] 11:00 Cosc201 Lecture\n- [ ] 13:00 Info201 Lecture\n- [ ] 14:00 Cosc202 Lab" - break; - case 3: - tR+="- [ ] 10:00 Info203 Lecture\n- [ ] 14:00 Info203 Tutorial\n- [ ] 16:00 Cosc201 Tutorial" - break; - case 4: - tR+="- [ ] 11:00 Cosc202 Lecture\n- [ ] 12:00 Cosc201 Lab\n- [ ] 16:00 Info201 Lecture" - break; - case 5: - tR+="- [ ] 09:00 Cosc202 Lab\n- [ ] 11:00 Cosc201 Lecture\n- [ ] 12:00 Info201 Lab" - break; - default: - break; -} -%> - -## 3 Assignments - -## 4 Projects -- python ai weekly review -- CI notes site -- my own password manager - -## 5 Timetable -![Pasted image 20220311102444.png](None) - -## 6 Links -### 6.1 cosc 202 -[lab book](https://cosc202.cspages.otago.ac.nz/lab-book/COSC202LabBook.pdf) - -### 6.2 info 201 -[tiddlywiki](https://isgb.otago.ac.nz/infosci/INFO201/labs_release/raw/master/output/info201_labs.html#) -[Assignments](https://isgb.otago.ac.nz/info201/shared/assignments_release/raw/master/output/INFO201_Assignments.html) diff --git a/content/templates/day.md b/content/templates/day.md deleted file mode 100644 index 07a0dda2c..000000000 --- a/content/templates/day.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Day ---- -<%* -const d = new Date().getDay() -switch(d){ - case 1: - tR+="- [ ] 11:00 Cosc202 Lecture\n- [ ] 12:00 Cosc201 lab" - break; - case 2: - tR+="- [ ] 10:00 Info203 Lecture\n- [ ] 11:00 Cosc201 Lecture\n- [ ] 13:00 Info201 Lecture\n- [ ] 14:00 Cosc202 Lab" - break; - case 3: - tR+="- [ ] 10:00 Info203 Lecture\n- [ ] 14:00 Info203 Tutorial\n- [ ] 16:00 Cosc201 Tutorial" - break; - case 4: - tR+="- [ ] 11:00 Cosc202 Lecture\n- [ ] 12:00 Cosc201 Lab\n- [ ] 16:00 Info201 Lecture" - break; - case 5: - tR+="- [ ] 09:00 Cosc202 Lab\n- [ ] 11:00 Cosc201 Lecture\n- [ ] 12:00 Info201 Lab" - break; - default: - break; -} -%>° \ No newline at end of file diff --git a/content/templates/front-matter.md b/content/templates/front-matter.md deleted file mode 100644 index 7042ac3a9..000000000 --- a/content/templates/front-matter.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Front Matter ---- -#review - ---- -# {{title}} \ No newline at end of file