User Tools

Site Tools


haas:fall2017:data:projects

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
haas:fall2017:data:projects [2017/09/17 17:32] – [Week 4] wedgehaas:fall2017:data:projects [2017/11/27 18:23] (current) – [Projects] wedge
Line 6: Line 6:
  
 ======Projects====== ======Projects======
-  * [[/haas/fall2017/data/projects/dsi0|dsi0]] (20170826) + 
-  [[/haas/fall2017/common/projects/wcp|wcp1]] (20170826) +|  [[/haas/fall2017/data/projects/dsi0|dsi0]] (20170826)  | 
-  [[/haas/fall2017/data/projects/ael0|ael0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/ael0/faq|faq]]<nowiki>]</nowiki> (20170830) + [[/haas/fall2017/common/projects/wcp|wcp1]] (20170826)  | 
-  [[/haas/fall2017/common/projects/wcp|wcp2]] (20170902) + [[/haas/fall2017/data/projects/ael0|ael0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/ael0/faq|faq]]<nowiki>]</nowiki> (20170830)  | 
-  [[/haas/fall2017/data/projects/sln0|sln0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sln0/faq|faq]]<nowiki>]</nowiki> (20170906) + [[/haas/fall2017/common/projects/wcp|wcp2]] (20170902)  | 
-  [[/haas/fall2017/common/projects/wcp|wcp3]] (20170909) + [[/haas/fall2017/data/projects/sln0|sln0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sln0/faq|faq]]<nowiki>]</nowiki> (20170906)  | 
-  [[/haas/fall2017/data/projects/sln1|sln1]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sln1/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sln1/metrics|metrics]]<nowiki>]</nowiki> (20170913) + [[/haas/fall2017/common/projects/wcp|wcp3]] (20170909)  | 
-  [[/haas/fall2017/common/projects/wcp|wcp4]] (20170916) + [[/haas/fall2017/data/projects/sln1|sln1]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sln1/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sln1/metrics|metrics]]<nowiki>]</nowiki> (20170913)  | 
-  [[/haas/fall2017/data/projects/sll0|sll0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll0/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll0/metrics|metrics]]<nowiki>]</nowiki> (20170920) + [[/haas/fall2017/common/projects/wcp|wcp4]] (20170916)  | 
-  [[/haas/fall2017/common/projects/wcp|wcp5]] (20170923) + [[/haas/fall2017/data/projects/sll0|sll0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll0/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll0/metrics|metrics]]<nowiki>]</nowiki> (20170920)  | 
-  [[/haas/fall2017/data/projects/sll1|sll1]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll1/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll1/metrics|metrics]]<nowiki>]</nowiki> (20170927) + [[/haas/fall2017/common/projects/wcp|wcp5]] (20170923)  | 
-  [[/haas/fall2017/data/projects/sll1|sll2]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll2/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll2/metrics|metrics]]<nowiki>]</nowiki> (20170927)+ [[/haas/fall2017/data/projects/sll1|sll1]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll1/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll1/metrics|metrics]]<nowiki>]</nowiki> (20170927)  | 
 +|  [[/haas/fall2017/common/projects/wcp|wcp6]] (20170930) 
 + [[/haas/fall2017/data/projects/sll2|sll2]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll2/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll2/metrics|metrics]]<nowiki>]</nowiki> (20171004 | 
 +|  [[/haas/fall2017/common/projects/wcp|wcp7]] (20171007) 
 +|  [[/haas/fall2017/data/projects/sll3|sll3]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll3/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll3/metrics|metrics]]<nowiki>]</nowiki> (20171018) 
 +|  [[/haas/fall2017/data/projects/sll4|sll4]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll4/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/sll4/metrics|metrics]]<nowiki>]</nowiki> (20171018) 
 +|  [[/haas/fall2017/common/projects/wcp|wcp8]] (20171021) 
 +|  [[/haas/fall2017/data/projects/dln0|dln0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dln0/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dln0/metrics|metrics]]<nowiki>]</nowiki> (20171025) 
 +|  [[/haas/fall2017/data/projects/dll0|dll0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dll0/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dll0/metrics|metrics]]<nowiki>]</nowiki> (20171025) 
 +|  [[/haas/fall2017/common/projects/wcp|wcp9]] (20171028) 
 +|  [[/haas/fall2017/data/projects/dll1|dll1]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dll1/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dll1/metrics|metrics]]<nowiki>]</nowiki> (20171101) 
 +|  [[/haas/fall2017/common/projects/wcp|wcpA]] (20171104) 
 +|  [[/haas/fall2017/data/projects/dll2|dll2]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dll2/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dll2/metrics|metrics]]<nowiki>]</nowiki> (20171108) 
 +|  [[/haas/fall2017/data/projects/dls0|dls0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dls0/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dls0/metrics|metrics]]<nowiki>]</nowiki> (20171108) 
 +|  [[/haas/fall2017/common/projects/wcp|wcpB]] (20171111) 
 +|  [[/haas/fall2017/data/projects/dlq0|dlq0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dlq0/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dlq0/metrics|metrics]]<nowiki>]</nowiki> (20171115) 
 +|  [[/haas/fall2017/common/projects/wcp|wcpC]] (20171118) 
 +|  @lightgreen:[[/haas/fall2017/data/projects/dlt0|dlt0]] <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dlt0/faq|faq]]<nowiki>]</nowiki> <nowiki>[</nowiki>[[/haas/fall2017/data/projects/dlt0/metrics|metrics]]<nowiki>]</nowiki> (20171129)  |
 ======Class Stats====== ======Class Stats======
   * [[/haas/fall2017/data/projects/status|status]]   * [[/haas/fall2017/data/projects/status|status]]
 +
 +======Week 12======
 +  * We cap off our data structures explorations this semester with trees, and the dlt0 project.
 +  * We'll also be unveiling the EoCE. All celebrate and cheer!
 +
 +======Week 11======
 +  * Now we're onto queues, another important data structure
 +
 +======Week 10======
 +  * And now we start to pick up the pace a bit, with dll2 and dls0, our first foray into additional data structures
 +
 +======Week 9======
 +  * We continue our list implementation with dll1.
 +
 +======Week 8======
 +  * We are now halfway through the semester. Look at how far we've come!
 +  * We will now embark on our first great re-implementation of our nodes and lists, with the addition of another pointer in our node: **fro**
 +    * this means each node points to TWO other nodes, the familiar one that comes after (our "to" pointer), and now, one that comes before (our "fro" pointer).
 +    * there are some additional features and functionality introduced as well, in the **dln0** and **dll0** projects, kicking our great re-implementation.
 +
 +======Break 1======
 +  * The week 7 journal entry will be your bonus break week entry. You'll have until Thursday of break week to modify it, at which point I'll roll it to week 8 (which will be a normal weekly entry- our journal entries will now sync up with the week!). If you don't touch week 7 it won't harm you, it will only help you if you contribute any content.
 +  * With 7 data points now available, I have populated the class stats page.
 +======Week 7======
 +  * We're nearing the completion of our singly-linked list endeavors. A lot of details to track and ideas to encapsulate into working code.
 +  * I've had some good questions, and discussion in the class chat and e-mail. Still perhaps not as much as I'd prefer. Remember: this won't become any easier unless you immerse yourself in it.
 +  * Knowledge assessment in class on Thursday.
 +
 +======Week 6======
 +  * I'd like to have a knowledge assessment next week, ideally on Thursday. A chance for you to demonstrate your understanding of important Data Structures concepts (nodes, lists)
 +  * sll2 is our next project, completing our basic list implementation.
 +  * Important things about the linked list implementation:
 +    * running mknode() or malloc() and then immediately re-assigning the pointer is **bad**; we call that an intentional memory leak. Don't do it.
 +    * error checking is important. Just because malloc() always tends to work, doesn't mean that it will ALWAYS work.
 +    * don't rely on fixed counts or positions. Just because we have getpos()/setpos() doesn't mean you should use them to obtain numeric values to evaluate everything upon.
 +      * did you know, that checking for equality with <nowiki>myList -> engine</nowiki> lets you verify the start of the list? Don't waste a call on getpos() and compare against 0. That shows me you're still overthinking in brute-force and micro-management mode. We won't always have getpos()/setpos(), so don't use them as a crutch!
 +    * Commenting with why/how comments is central and critical! Just because the person you copied from feels above commenting doesn't help your case any more. In fact I may double down even more.
 +      * This is also a general plea to understand what you are doing. I see far too much "overhelping" going on, where the solutions are near identical, save for some pointless change (like declaring a useless variable to try and make it seem different). I KNOW who is collaborating, I KNOW who knows what is going on and who doesn't. Your work needs to be your own, you NEED to understand what it is you are doing. Comments are one way of demonstrating to me that you do. Leaving them out is a cop-out and an intentional attempt at misleading me.
 +    * **insert()** was probably THE MOST IMPORTANT function from sll0. For those who "just didn't get to it" or "ran out of time", congratulations you avoided the conceptual centrepiece of the whole project. Again, it is a "win the battle but lose the war" type of thing. You NEED to understand things like **insert()**, they will be the concepts coming up again and again with ever-mounting importance.
 +      * avoid using <nowiki>-> to -> to</nowiki> in your logic... you are limiting your code's flexibility. You should not need to delve any deeper than a single "to" pointer, and your conditions should generally try to avoid excessive comparisons of the "to" pointer to NULL (not that there aren't valid cases, but generally I see a lot more less optimal approaches, hence why I am pointing it out).
 +  * As is increasingly becoming the case, the true abstract nature of data structures is starting to throw some people for a loop. That is the hidden edge that data possesses, unlike discrete, where we generally focus more on exploring new methods of thinking- in data our playground is conceptual and abstract thought. Just getting compilable syntax will not really do you any favors in the long run.
 +  * With all this said, there are those who are grokking or doing quite well. Mistakes may be made, but realizations being had, and actual learning taking place.
  
 ======Week 5====== ======Week 5======
   * The abstract nature of the class is starting to ramp up, I've already noticed far too many people who are still trying to brute force things. Just like trying to write a program avoiding loops because you never learned them: you're going to run into scalability issues before too long.   * The abstract nature of the class is starting to ramp up, I've already noticed far too many people who are still trying to brute force things. Just like trying to write a program avoiding loops because you never learned them: you're going to run into scalability issues before too long.
   * The focus needs to be on the concept. The code should then fall in line rather easily. What is it that you are focusing on? A node? A list? Be sure not to be unclear on such intentions.   * The focus needs to be on the concept. The code should then fall in line rather easily. What is it that you are focusing on? A node? A list? Be sure not to be unclear on such intentions.
-  * We continue our singly linked list implementation.+  * We continue our singly linked list implementation, with the next round of functions to implement in **sll1** 
 +  * Some observations from evaluating sln1: 
 +    * be mindful of the perspective; for instance, the node library functions ONLY care about individual nodes, and are completely unaware of any overarching structures they may be in (such as lists). Nodes JUST do node-y things. 
 +    * same with lists: we may eventually built on top of lists, and lists are made of nodes, but lists themselves need to only care about doing list-y things. Call the node functions to handle specific node operations, call list functions to handle list operations. Don't worry about if we're just a list, or a stack, or any other arrangement of linked nodes. 
 +    * error checking! So many of you need to become more cognizant of verifying that your allocation of resources was successful. Don't just malloc() and go. CHECK to see if the result is NULL and proceed appropriately. I've been cutting some slack (depending on other demonstrations of awareness) since we're just starting, but soon that too will become a vicious detractor of points. Just like consistent indentation and good how/why comments, do proper error checking! 
 +    * Unless the function is specifically meant to do I/O (ie the **displayf()/displayb()** functions), there should be ZERO I/O in any of these functions. Do NOT print out error messages, just return the NULL (or whatever the error case is) you are supposed to. 
 +    * These are good foundational habits I'm trying to instill should you find yourself working on or with libraries, more complex code-bases, standards/specifications-compliance, etc. All part of evolving from that programmer who thought one for() loop and 20 lines of code was a big thing, we need to go much further than that.
  
 ======Week 4====== ======Week 4======
haas/fall2017/data/projects.1505669570.txt.gz · Last modified: 2017/09/17 17:32 by wedge