diff --git a/content/203-mobile-app/brainstorming.md b/content/203-mobile-app/brainstorming.md index 336d867ea..b97663c2b 100644 --- a/content/203-mobile-app/brainstorming.md +++ b/content/203-mobile-app/brainstorming.md @@ -1,19 +1,25 @@ # Main concept -Snowboard trick generator +Snowboard trick generator. -Core features +This will be a mobile app that snowboarders can use to automatically generate random tricks. This app will be useful because snowboarders (riders) can get tunnel vision on a certain style of tricks or even a single trick. Using a algorithm to generate tricks provides a way for them to escape this focus. It can also be used when playing a game of SNOW, which is similar to a game of SKATE. + +The first core feature of the app is the customisable trick generator. It should be very easy and quick to use. This presents an interesting problem as while snowboarding, users are wearing large mittens, and the air can be very cold for hands. It would be ideal if it could be used while wearing mittens. + +The second core feature of the app is the Daily Trick. However, the issue here is that most people don't snowboard everyday. To get around this, I could allows the users to schedule days on which to recieve a daily trick, or I could alert them whenever they are on a mountain by monitoring their altitude. Of course the second options has some privacy issues that will need to be considered. + +**Core features - customisable generator - daily trick - tricks on a custom schedule -Extra features +**Extra features - track completed tricks - list of tricks not to include - links with friends to do same tricks together - challenges, where you do a set of tricks over a period of time - gesture controls -- link with coach/teammates] +- link with coach/teammates - goals - gps to detect when you are on a mountain and when to generate a trick @@ -59,7 +65,8 @@ Skate dice was one of the most intresting of the apps I found. I had a very uniq ## Skate tricks -This app is a much more fully featured solution. It is oriented towards learning skateboarding, and keeping track of you progress while doing it. It also has a built in trick generator, and game of skate. One of the most unique features it had that the other apps didn't was a trick of the day. This is one of the core features I want to include in my app. +This app is a much more fully featured solution. It is oriented towards learning skateboarding, and keeping track of you progress while doing it. It also has a built in trick generator, and game of skate. One of the most unique features it had that the other apps didn't was a trick of the day. This is one of the core features I want to include in my app. Another interesting feature it had was a page informing the user about injury prevention. -#### How does this app inform mine +#### How Could this app inform mine +- The injury prevention page could be a very good thing to include - diff --git a/content/daily_notes/2022-04-12.md b/content/daily_notes/2022-04-12.md index 6084aeff5..a5ff849bf 100644 --- a/content/daily_notes/2022-04-12.md +++ b/content/daily_notes/2022-04-12.md @@ -7,6 +7,7 @@ Synchronicity - The Police - spotify:album:28eOriEfl7IGbQDNvWIWXK ## Todos +- [ ] remote desktop for IT work - [ ] info 201 lab 04 - [ ] info 201 lab 06 - [ ] change testing of contrast and brightness andie @@ -17,7 +18,7 @@ Synchronicity - The Police - spotify:album:28eOriEfl7IGbQDNvWIWXK ## Lecture/Labs -- [ ] 10:00 Info203 Lecture +- [x] 10:00 Info203 Lecture - [ ] 11:00 Cosc201 Lecture - [ ] 13:00 Info201 Lecture - [ ] 14:00 Cosc202 Lab diff --git a/content/notes/13-bst-traversals-and-balance.md b/content/notes/13-bst-traversals-and-balance.md new file mode 100644 index 000000000..bc6e80f15 --- /dev/null +++ b/content/notes/13-bst-traversals-and-balance.md @@ -0,0 +1,98 @@ +--- +title: "13-bst-traversals-and-balance" +aliases: +tags: +- cosc201 +- lecture +--- + +# Traversals +- in any tree + - preorder --> visit the root, then for each child of the root, predorder teaverse the subtree rooted at that child + - postorder --> for each child of the root posrtorser traverse the subtreeet rooted at that child, then visit the root + - level order --> visit the root, then all its children , then all its granchildren +- in BSTs only: + - inorder --> inorder traverse the subtree rooted at the lefdt cyhild then visit the root, then inorder traverse the subtree rooted at the right child + +## code +- returns the perorder tracersal as an arraylist +- not usual, traversals are genrally ideas used in algorithms, not independent methods + +### pre post and in order traversal code +```java +public ArrayList order() { + ArrayList result = new Arraylist<>(); //set up the result + preorder(root, result); //preorder starting at the root + postorder(root, result); + inorder(root, result); + return result; +} + +//helper method for preorder traversal +//use r as working storage to preorder traverse the tree below n +private void preorder(Node n, ArrayList r){ + if(n==null) return; + r.add(n.key); //add this node the reults + preorder(n.left, r); //traverse the left subtree + preorder(r.right, r); //traverse the right subtree +} + +//helper method for preorder traversal +//use r as working storage to preorder traverse the tree below n +private void inorder(Node n, ArrayList r){ + if(n==null) return; + inorder(n.left, r); //traverse the left subtree + r.add(n.key); //add this node the reults + inorder(r.right, r); //traverse the right subtree +} + +//helper method for preorder traversal +//use r as working storage to preorder traverse the tree below n +private void postorder(Node n, ArrayList r){ + if(n==null) return; + postorder(n.left, r); //traverse the left subtree + postorder(r.right, r); //traverse the right subtree + r.add(n.key); //add this node the reults +} +``` + +![](https://i.imgur.com/vsZtkIp.png) + +### level order +- want to visit the root +- visit its children +- visit their children +- etc + +not recursive +maintain a queue of pending visits + +``` +if root = nil then return [] + +res <- [], q <- [root] +while q is not empty do + n <- q.remove() + res.add(n) + for c in n.children do + q.add(c) + end for +end while +return res +``` + +```java +public Arraylist levelorder() { + ArrayList result = new ArrayList<>(); + if(isEmpty()) return result; + ArrayDeque q = new ArrayDeque<>(); + q.add(root) + while (!q.isEmpty()) { + Node n = q.remove() + result.add(n.key); + if(n.left != null) q.add(n.left); + if(n.right != null) q.add(n.right); + } + return result; +} +``` \ No newline at end of file diff --git a/content/notes/13-design-heuristics-4.md b/content/notes/13-design-heuristics-4.md new file mode 100644 index 000000000..681d75406 --- /dev/null +++ b/content/notes/13-design-heuristics-4.md @@ -0,0 +1,49 @@ +--- +title: "13-design-heuristics-4" +aliases: +tags: +- info203 +- lecture +--- + +aesthetic and minimalist +- signal to noise ratio +- what are you core functionality +- how can you best use your screen space + +recognise diagnore recover from errors +- make the problem clear +- e.g., username or password is wrong vs username is wrong +- provide a solution and inform users (treat the users as adults + +help +- guide the way and show steps +- online help + - transition from built in help to links to online help + - sometimes users dont have an internet connection + - e.g., chrons app used all the data +- help clearly and transparently + - e.g., privacy and terms/conditions + +anti design heuristics +[](https://i.imgur.com/BHJ5iQU.png) +[](https://i.imgur.com/DrqSSK5.png) +[](https://i.imgur.com/KPW6h19.png) + +dark patterns +turniing patterns against the user. +all the dsign heuristics can be used against the user + +- [oxfam example](https://i.imgur.com/mn3oK05.png): defaults to a recurring payment +- [comet shop example](https://i.imgur.com/nGfdk7W.png): additional product is automatically included +- [complicated contract](https://i.imgur.com/mTJmqwa.png) +- [flight booking](https://i.imgur.com/6uwauOB.png) +- [amazon cancel prime](https://i.imgur.com/06htsKV.png) +- cancel facebook account +- [FOMO](https://i.imgur.com/Ikf0DiF.png) + +who is the customer of free products like tiktik, facebook, instagram. WE are not the customer, we are the animals in the zoo, the products + + + + diff --git a/content/notes/cosc-201-lectures.md b/content/notes/cosc-201-lectures.md index 9c26ca218..9a0d01e9c 100644 --- a/content/notes/cosc-201-lectures.md +++ b/content/notes/cosc-201-lectures.md @@ -11,4 +11,5 @@ links: [[notes/cosc-201]] - [09-stacks-and-queues](notes/09-stacks-and-queues.md) - [10-heaps-and-heapsort](notes/10-heaps-and-heapsort.md) - [11-sets-maps-trees](notes/11-sets-maps-trees.md) -- [12-binary-search-tree-operations](notes/12-binary-search-tree-operations.md) \ No newline at end of file +- [12-binary-search-tree-operations](notes/12-binary-search-tree-operations.md) +- \ No newline at end of file diff --git a/content/notes/direct-manipulation-video.md b/content/notes/direct-manipulation-video.md new file mode 100644 index 000000000..6cc240f3b --- /dev/null +++ b/content/notes/direct-manipulation-video.md @@ -0,0 +1,60 @@ +--- +title: "direct-manipulation-video" +aliases: +tags: +- info203 +- video +--- + +e.g., better measuring cup + +ford qquote about faster horse + +four insights +- both transit and cookware simply asking doesn't work +- find out by going into the field +- bring protoypes with you +- listen to peoples own designs + +two steps each has success or failure +- action --> gulf of execution +- evaluating the outcome --> gulf of evaluation + +6 questions +- determine the function +- tell what actions +- determine actual action +- perform the actions +- tell what state +- mapping from system state and interpretation + +to reduce gulfs +- visibility (perciebves affordances or signifiers) +- feedback +- consistency (standards) +- non-destructive operations (undo/redo) +- discoverability (operations discovers by exploration) +- reliability + +e.g., vending machine example + + +# Command line vs GUI + +e.g., moving a file +gui - have continuous feedback +cmd - have to know syntax, almost no feedback + +direct manipulation +- immdediate feedback +- continuous represntations of objects +- leverage metaphor (take advangates of pre-existing knowledge) + +successful indirection. cmd provides generalisation + + +eye to the future: gestures +- solutions to menu creep? +- even more direct? + + diff --git a/content/notes/info-203-videos.md b/content/notes/info-203-videos.md index a2bef42b5..7a4e1eb31 100644 --- a/content/notes/info-203-videos.md +++ b/content/notes/info-203-videos.md @@ -9,3 +9,4 @@ links: [[notes/info-203]] - [storyboards-mockups-paper-prototypes](notes/storyboards-mockups-paper-prototypes.md) - [wizard-of-oz](notes/wizard-of-oz.md) - [video-prototyping](notes/video-prototyping.md) +- [] diff --git a/content/notes/info-203.md b/content/notes/info-203.md index 10cd64b89..823673c26 100644 --- a/content/notes/info-203.md +++ b/content/notes/info-203.md @@ -10,10 +10,4 @@ links:[_index](_index.md) - [info-203-outline](notes/info-203-outline.md) - [info-203-lectures](notes/info-203-lectures.md) -- [info-203-videos](notes/info-203-videos.md) - -## 0.1 Assignments - -- [[notes/ass-01-what-is-usability]] -- [[notes/ass-02-heuristic-evaluation]] -- [mobile-app-ass-03](203-mobile-app/mobile-app-ass-03.md) \ No newline at end of file +- [info-203-videos](notes/info-203-videos.md) \ No newline at end of file