This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
haas:fall2018:discrete:projects [2017/11/13 16:01] – external edit 127.0.0.1 | haas:fall2018:discrete:projects [2018/11/12 16:59] (current) – [Projects] wedge | ||
---|---|---|---|
Line 7: | Line 7: | ||
======Projects====== | ======Projects====== | ||
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/common/projects/wcp|wcp2]] (20180829) | |
- | | [[/haas/fall2017/discrete/projects/wpf1|wpf1]] (20170830) | | + | | [[/haas/fall2018/discrete/projects/bdt0|bdt0]] (20180905) | |
- | | [[/haas/fall2017/common/projects/wcp|wcp2]] (20170902) | | + | | [[/haas/fall2018/common/projects/wcp|wcp3]] (20180905) | |
- | | [[/haas/fall2017/discrete/projects/dcf0|dcf0]] (20170906) | | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/ | + | | [[/haas/fall2018/ |
- | | [[/ | + | | [[/haas/fall2018/ |
- | | [[/ | + | | [[/haas/fall2018/ |
- | | [[/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/haas/fall2017/ | + | | [[/haas/fall2018/ |
- | | [[/ | + | | @lightgreen: |
- | | [[/ | + | | @lightgreen: |
- | | [[/haas/fall2017/ | + | | |
- | | [[/haas/fall2017/ | + | |
- | | [[/haas/fall2017/ | + | |
- | | [[/haas/fall2017/ | + | |
- | | [[/ | + | |
- | | [[/haas/fall2017/ | + | |
- | | [[/haas/fall2017/ | + | |
- | | [[/haas/fall2017/ | + | |
- | | [[/ | + | |
- | | @lightgreen: | + | |
- | | @lightgreen: | + | |
- | | | + | |
======Class Stats====== | ======Class Stats====== | ||
- | * [[/haas/fall2017/ | + | * [[/haas/fall2018/ |
- | + | ||
- | + | ||
- | ======Week 12====== | + | |
- | * Unveiling the EoCE this week; more fun and adventure awaits! | + | |
- | + | ||
- | ======Week 11====== | + | |
- | * Focusing on different approaches to problem solutions in the next project, **yol0** | + | |
- | + | ||
- | ======Week 10====== | + | |
- | * We've touched on different number bases through interacting with various projects. Now, we will be specifically focusing on them. | + | |
- | + | ||
- | ======Week 9====== | + | |
- | * Our last foray into primes with a new twist: one loop for central processing. | + | |
- | + | ||
- | ======Week 8====== | + | |
- | * And now with a new debugging tool in hand (via **bdt1**), we can commence on our next dcf exploration, | + | |
- | + | ||
- | ======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. | + | |
- | * We've switched over to the new lab46 system. Still testing functionality, | + | |
======Week 7====== | ======Week 7====== | ||
- | * Some good progress being made by some on **bdt0**, turns out to be an even better algorithmic exploration than I had planned. Again, only beneficial if you've been immersing yourself in it. | + | * Edge detection |
- | * Knowledge assessment in class on Thursday. | + | * Peripheral input |
- | * http:// | + | |
- | * Bonus discrete project, write an encode/ | + | |
======Week 6====== | ======Week 6====== | ||
- | * I am thinking I'd like to have a Knowledge Assessment, sometime next week, likely on Thursday, focusing on your ability to critically think and solve a problem, based on experiences and concepts we've been dealing with in the course so far. | + | * More examples, starting to play with SDL |
- | * Perhaps pointless, but I am starting to feel like a //broken record// | + | |
- | * for those unfamiliar with that anachronistic saying (or its origins), it refers to a side effect of listening to non-digital music media with physical defects (specifically referring to vinyl records with scratches). As the playback mechanism relies upon tracing along the surface, various physical deformities could jump or skip the record, at times resulting in the same sequence being repeated over and over again. Compact Discs with scratches could also suffer from this, especially in certain poorly-implemented digital buffering scenarios. | + | |
- | * I find myself expending energy and resources dispensing advice and help, only to continually experience it falling on deaf ears. Or, perhaps more aptly, going in one ear and out the other, lacking that requisite sticking in the ear sponge that lies between. And certainly not universally... there are those who regularly ask questions and who do listen and benefit. I am not speaking about them (they are wonderful, and if anything I'd like more questions). But those who **continually** experience the same troubles, be it from lack of discipline (procrastination, | + | |
- | * When I exert, in good faith, effort to help, giving some useful suggestions and even explaining some concepts, only to be prompted later with a question clearly devoid that anything meaningful was obtained from the prior exchange, it is disheartening. | + | |
- | * When I see, time after time, people seeking " | + | |
- | * When I observe people avoiding challenging things, perhaps due to inadequate learning in past experiences, | + | |
- | * Yet when I see those who are taking advantage of what I am saying, ARE taking away something from interactions, | + | |
- | * The problem, of course, is when there seems to be a small yet constant group who fits this latter category (of demonstrating proficiency and learning and understanding), | + | |
- | * There' | + | |
- | * There' | + | |
- | * There' | + | |
- | * There' | + | |
- | * The short-term represents the individual projects we encounter each week, milestones on our journey from start to completion of our semester' | + | |
- | * The long-term represents the collective experience and growth obtained through the overall process. Recognizing shortcomings in an initial approach, learning from the mistake, and then demonstrating increased awareness and capability because of it. | + | |
- | * Again, not universally, | + | |
- | * When you are hired/ | + | |
- | * Yet far too many are still stuck in their short-term, brute-forcing ways. And in that desperation I see things like over-helping (getting access to code or solutions that the person does not truly understand, aside from "it works!!1!" | + | |
- | * Those who are adequately on the long term train are noticing some great things: | + | |
- | * intrinsic limitations to current implementation, | + | |
- | * perceptions that the later things are actually getting simpler/ | + | |
- | * the projects, far from being annoying, frustrating, | + | |
- | * more tangible, but: they start on them well in advance of the deadline. These are the people racking up bonus points, and if anything, are putting the finishing touches on things as the deadline looms, vs. fretting over why their code still won't compile, or has serious logic errors. | + | |
- | * So I have to ask: | + | |
- | * Is discrete really all that hard? | + | |
- | * Is discrete the problem? | + | |
- | * I'm only trying to show you insights into the things you will be experiencing (ie taking a "you have to be this high to ride the ride" approach) in the future. If you are struggling, constantly, and with basic things (due to lack of planning and discipline-- I mean, things happen. That's different than procrastination and needing constant hand-outs to get by each checkpoint), | + | |
- | * With that said, while those on track continue to grow, expand, and impress, there are some making excellent progress to transition from being hopelessly overwhelmed to getting nicely on track to benefit from the experience. I just wish, in total, it represented more than a minimal majority (if that). | + | |
- | * If you're clinging on for dear life **BECAUSE FINANCIAL AID** or because you've not thought your long-term plans through, you really want to rethink what you're doing. Discrete is but a mild taste of what is to come. And not from me so much as transfer school or job. Encountering things you've never specifically encountered before yet have to work with it. | + | |
- | * Just saying "I should have paid more attention in the prior class" is NOT a solution. It is a small admission of the problem. Far too many seem to think that admitting they blew a previous chance is somehow a "get out of jail free card". But think about it, how does admitting "I know what my problem is- I don't know how to program!" | + | |
- | * Some have said they'd like to re-take CPROG, perhaps even next semester. But there' | + | |
- | * More than a few people have stated they'd like to sit in on my CPROG class, yet to date a scant few have seemed to seriously follow-through (and those that have, I have considerable optimism regarding their success, both in the present and near future, but also further into the future as well- they are demonstrating their ability to make a sound investment in their future). And by seriously follow-through, | + | |
======Week 5====== | ======Week 5====== | ||
- | * 09/21 @ 8:10am: updated **check** script in **dcf1**. Do a **make getdata** to grab a copy. | + | * Exploring |
- | * And then there was pnc1.. | + | |
- | * I continue to be impressed by various interactions- some great insights gained, questions asked, realizations had. That is what the core purpose of discrete is all about- fostering thinking. So for those who have been (and even finding the thinking increasingly addicting): keep up the good work. | + | |
- | * As I had mentioned in reference to knowledge I encountered during my polyphasic sleep research, cannabis (marijuana, weed, etc.) DOES impact sleep (and not in a beneficial way): | + | |
- | * https:// | + | |
- | * specifically, | + | |
- | * And what benefits does REM convey? | + | |
- | * https:// | + | |
- | * a very pertinent quote from that URL: " | + | |
- | * what's that again? | + | |
- | * The good: REM sleep aids in committing | + | |
- | * The bad: lacking REM sleep is like quitting without saving- experiences and knowledge encountered are not adequately recorded, and therefore it is as if you hadn't even learned it- //clumsy, stupid and unhealthy// | + | |
- | * Various sources are saying, dependent on tolerance, the purported " | + | |
- | * But also to consider, post-" | + | |
- | * Do you know that it isn't THC that may be the " | + | |
- | * the body actually has cannabinoid receptors, and produces some forms of cannabinoids (NOT THC, specifically), | + | |
- | * Similarly, for those who partake in or are enthusiasts, | + | |
- | * there are two common strains of cannabis? | + | |
- | * **sativa** | + | |
- | * **indica** | + | |
- | * and **hybrid** where horticultural efforts are melding the two | + | |
- | * but there are important differences between them (according to: http:// | + | |
- | * " | + | |
- | * "If a sativa is like a strong cup of coffee, an __indica is like a sleeping pill__. Great for people who struggle __to get to sleep__, indicas produce //very sedative effects//. Indica smokers often feel sleepy, relaxed, and have a strong desire to eat." | + | |
- | * notice the underlining on "to get to sleep"; | + | |
- | * so, morals of the story here: | + | |
- | * from a purely biohacking point of view: if you're already doing such things, are you at least HELPING your mental abilities by stimulating them (sativa) and not dulling them (indica)? | + | |
- | * and two: if taken too close to sleep and you haven' | + | |
- | * Please note, I'm in no way promoting the use of cannabis. For several reasons: | + | |
- | * legal/ | + | |
- | * biohacking: while I have never smoked it (nor anything, actually), I did have an opportunity to try some cannabis oil once (a super-refined blend by someone " | + | |
- | * so if your obtainment channels are shady/lack transparency (which, if you're a consumer that isn't in a state with legalized recreational use), are you sure you're getting something that works optimally for you (I'd tend to lean in the direction of " | + | |
- | * similarly, if you're not aware of the growing conditions, how do you know you're not also taking in pesticides and other chemicals? I read that's a HUGE quality control issue as well (leading to its own range of health detriments). So again: why take chances? | + | |
- | * Also, fun fact: sativas grow in more tropical regions, whereas indicas are a favorite of more northern latitude basement dwelling operations (less requiring of tropical conditions). Which again brings us to the economy of the endeavor: if you can " | + | |
======Week 4====== | ======Week 4====== | ||
- | * As of 10:30am Saturday, September 9th, we appear to have 11 submissions for **dcf0** (whether or not they are fully functioning implementations that will pass muster is yet to be determined). Still more than we saw with **pnc0**, so I am hopeful. I also was able to witness the efforts of more individuals productively working on dcf0 (versus the procrastination-fest for the last project). With that said, 11 submissions puts us over 50%. At least doing the work isn't in the minority anymore. :/ | + | * Conditions, compounded |
- | * I've finished putting together the data files for dcf1, updating | + | * We pay pnc another visit, in the form of **pnc1** |
======Week 3====== | ======Week 3====== | ||
- | * Some think labor day is a day to avoid working on anything. However, Monday on the class chat, an elite and respected group of discrete denizens converged and much amazing conversation, | + | * Exploring logic |
- | * As a result of that: you'll want to update the dcf0 data files if you have not done so since 8pm Monday evening. A certain troublesome data file (sample2.bmp.rle) has been fixed, now (hopefully) fully conformant with dcfX v1 encoding specifications. It passes the check script tests with flying colors. | + | * **dcf0** is the next project |
- | * Some metrics: | + | |
- | * of the top 6 performers on pnc0: | + | |
- | * 5 took C/C++ with Hans last semester | + | |
- | * 1 took C/C++ with me last semester | + | |
- | * of the entire discrete class: | + | |
- | * approximately 44% took C/C++ with Hans | + | |
- | * approximately 38% took C/C++ with me | + | |
- | * approximately 18% took C/C++ with Joe | + | |
- | * basically, there goes any attempt at an excuse that NOT taking me somehow left you unprepared. | + | |
- | * I've already had some fruitful conversations with individuals over **dcf0**, so for some, progress | + | |
- | * This week I'll also be unveiling your next project | + | |
- | * As I sit here watching the smoldering ruins of my original dreams of whole-class insights gained from collectively accomplishing the various projects, head in my heads sobbing, wondering what went wrong, I look toward the positives. What have we (hopefully? | + | |
- | * **Important Lessons for Success: | + | |
- | * **__Lesson #0__**: Have regularly kept coding, even after your programming class ended; experiment, test theories, write small programs; keep your skills current through the summer. | + | |
- | * **__Lesson #1__**: Read available project information. When I get questions mere days before the project is due asking how one actually obtains the files, hearing rumors that one doesn' | + | |
- | * **__Lesson #2__**: There' | + | |
- | * **__Lesson #3__**: Listening comprehension. I'm actually not just standing up in front of the room babbling because I like to hear the sound of my own voice (does ANYONE actually like the sound of their own voice?), but that I am relaying important concepts and information that I feel are pertinent based on various patterns (past class performance, | + | |
- | * **__Lesson #4__**: Think! This is actually central to computing, no matter which sub-field of it you are in. We are the people who must think in order to solve other people' | + | |
- | * **__Lesson #4a__**: There are many neat things that come from combining all these lessons/ | + | |
- | * **__Lesson #5__**: **EFFECTIVE TIME MANAGEMENT**. Some have discovered the distinct advantages of grazing on the project. Starting early, and spending only 20-45 minutes on it at a time (or planning to- if you're on a roll, why stop after a set amount of time?). Most people who lack proper time management discipline to this the exact opposite way: they start (too) late (starting late is already too late), and suffer through obstacles because they have no choice, a looming deadline keeps advancing. The people with good time management will encounter a problem, recognize the obstacle, maybe try a few approaches to eliminating it. But if it continues to resist, they recognize this, get up and walk away. The subconscious mind is a wonderful and powerful " | + | |
- | * **__Lesson #6__**: Now onto the lesson some have hopefully come to realize in recent days, and maybe even a subset of those have taken it to heart: **START EARLY!** Sure, you may have been busy, or just outright ignored my early release e-mail in the summer... that is perfectly fine. But when the semester actually starts, and you've got upwards of 1.5 weeks to work on a project, yet my graphs clearly show a huge surge of people just getting started (ie obtaining the project) only 1-3 days before the project is due, that is what we call a lost opportunity. Rushing and fretting and trying to brute force your way through uncooperative code (it actually isn't the code that is uncooperative, | + | |
- | * **__Lesson #7__**: This is the lesson that I wanted to share with you today (as I look at the still-minimal pnc0 submissions on Saturday morning around 7:30am), that is equally valid for those who are regularly following the above-stated lessons, and successfully, | + | |
- | * **pnc0** was due before it was no longer Wednesday. | + | |
- | * It is now // | + | |
- | * While you've been slaving away suffering the consequences of your initial procrastination, | + | |
- | * Case in point: If you're still working on **pnc0** today, and it is in anyway workable (passes SOME tests), you may just want to submit what you have and MOVE ON. Get started on **dcf0**. It is your next project, and it is due in mere days (and at this point, you can STILL get full credit on it... more than that! Bonus points if you submit it early!). | + | |
- | * But what about **pnc1**? Isn't that due the week after? And don't I need everything working in **pnc0** in order for **pnc1** to work? Why yes, yes it is/you do. But **pnc1** is far enough off in the future where, if you were to adopt things like good time management practices, you could continue to plug away at **pnc0**, just in smaller chunks, whittling away at the problems, and you may find you'll start to make far greater progress when it isn't the "OH MY GOODNESS IT IS LATE I HAVE TO FINISH IT NOW zOMG!!!1!" | + | |
- | * **__Lesson #8__**: There' | + | |
- | * So many things in discrete will be based on very simple premises. | + | |
- | * If we are not careful, we will ignore the simplicity and leave complexity instead (wasting time trying to wrangle it into operation). | + | |
- | * Do not be your own worst enemy. Don't be closed minded. There are MULTIPLE paths to solution, and a big part of discrete is opening your mind to experiencing multiple solutions (**pnc0** is a perfect example-- look at all the optimizations, | + | |
- | * **__Lesson #9__**: It may seem harsh, but I prefer to call it " | + | |
- | * And some in the class are already demonstrating they are not just the sum of their parts. They are realizing just how capable they are, and utilize the concepts encountered in these courses to propel them to even higher heights. And I'm definitely taking notice. | + | |
- | * but I'm also taking notice of how many continue to struggle, and although it is still early, a lot of the struggling is based on self-imposed limitations. | + | |
- | * So PLEASE, stop looking ONLY at what is immediately in front of you. You have just experienced 1 week in this class. We're looking to do the same this week, then the next, then the next. If every single inch is a struggle, and you cling on for dear life, perhaps some will make it with that approach, but they certainly won't enjoy it (and it isn't just that my classes may be more intense, think of it this way: I am preparing you for the intensity of later courses. The more prepared you are coming out of my classes, the better you can appreciate the more advanced topics and concepts and projects to come). If you're only taking a short-term view, you can get stuck thinking this is your only path, when in reality many others exist. | + | |
======Week 2====== | ======Week 2====== | ||
- | * The " | + | * Carrying over from an example started in Data Structures, we went through |
- | * Also, a helpful tip to enhance productivity and demonstrate you're applying critical thinking skills: when you e-mail me with a question about a project, it would REALLY help if you identified the course AND project you had a question on. Vague statements like "On the project, how do I...", even though I know WHO you are, does not necessarily clarify which specific project, nor which class. | + | * pass by value |
- | * Some stats on our progress towards completing **pnc0** (as of 9:30am Saturday, August 26th, 2017): | + | * pass by address |
- | * there are 19 (20, counting me) of us in discrete. | + | * return value |
- | * of those 19, 11 have obtained (presumably via running the **grabit** line) pnc0. | + | * we were also reviewing pointers |
- | * of those 11 who have obtained the project, 8 have appeared to start working in some capacity on the project. | + | * Your next project |
- | * of those 8 who have obtained and commenced work on the project, 2 have submitted **pnc0** in a completed, finished state (these 2 also first started working on the project back in July). | + | |
- | * Either you're all experts and have everything under control, or you've not yet really begun work. I tend to suspect more of the latter, and as my inbox has been pretty much silent with respect to questions on pnc0, I have to admit I'm a little concerned. This isn't something you can likely whip off in under an hour; you certainly won't learn nor appreciate the concepts we're endeavoring to explore if you do. You need to dedicate time to these projects, to reflect on what you're observing. It is so much more than just completing project requirements... it is about conceptually understanding and gaining new insights on how to effectively solve problems. In that light, it isn't a race about how little time it takes to complete, but instead how much time you productively and valuably dedicate to the process. | + | |
- | * As I indicated during our first week, it is my intention to release the next project | + | |
- | * Weekly Puzzle funs: Remember, it isn't enough just to come up with a solution. Capturing your work is just as important (especially if I ask to see it!). A lot of people who have been stumped are largely in that state because their methods for progressing through the problem are flawed/ | + | |
- | * and to clarify a question I've been getting related to the puzzle funs: you are just submitting the answers, but you are to possess the work. That way, if I request it, you should be able to produce the work to verify that you did indeed do the project, vs. just copy it from someone else. | + | |
- | * and as for how to submit a project: read to the bottom of the project page, there will be information (even instructions!) located there. | + | |
======Week 1====== | ======Week 1====== | ||
* Welcome to Discrete Structures! (aka Computer Science math! NOT to be confused with Math for Computer Scientists). | * Welcome to Discrete Structures! (aka Computer Science math! NOT to be confused with Math for Computer Scientists). | ||
* This is a class that focuses on the patterns, mathematics (combinatorics), | * This is a class that focuses on the patterns, mathematics (combinatorics), | ||
* We'll endeavor to do this by working on progressively more involved projects, so you'll get to appreciate the concepts we learn through their application in programs, hopefully in combinations with many others we've learned (not just one-shot isolated programs). | * We'll endeavor to do this by working on progressively more involved projects, so you'll get to appreciate the concepts we learn through their application in programs, hopefully in combinations with many others we've learned (not just one-shot isolated programs). | ||
- | * Tuesday we flew through the syllabus and did a same letter division puzzle, effectively running out of time at the very end (but I thought it was super fun, and started later interactions where I had the pleasure of working on 3-4 additional letter division practice puzzles with others). | ||
- | * Speaking of which, should you desire extra practice, I've got a collection of these things ready to go, and we can easily get one written up on the board to do for practice). | ||
- | * I've got 2 whiteboards in the room as well... so we can certainly put them to use. | ||
- | * Thursday I formally introduced (again, for the first time), the **pnc0** project, which you've had early release access to since the middle of July. A couple were already significantly underway and had some excellent questions on implementations logic (things were working, just maybe not in all usage scenarios). | ||
- | * I've gotten the slight impression that some don't like to read; my writing (and by extension, project pages) tend to be quite verbose, in part because I like to pack them full of as many details as possible so you can hopefully answer many of your initial questions (but that assumes you've read said information). Computers process information (they read, and write) ALL the time. If we are to effectively program them, we also need to be effective at processing information meant for us. | ||
- | * If thinking (creatively, | ||
- | ======Week 0====== | ||
- | * Attempting to provide an opportunity to get started BEFORE the semester officially kicks off. If you are interested in keeping your programming skills sharp and current, consider starting work on one of the first projects now, in order to have it done to rack up lots of bonus points once the submission window opens! | ||
- | * The early release project, our first weekly programming project, is **pnc0**, a prime number computation program. Some who have had me in previous classes have had similar projects before, but I caution you: I've done a rather significant restructuring of project requirements (and desired program operation), so you would be better off starting from scratch than trying to utilize any existing code from prior attempts. | ||
- | * Fixed some typos and tweaked some requirements to pnc0 to make it even more awesome. Check the " | ||
- | * Based on some questions I've received, I've started an FAQ document (accessible via the " | ||
- | * **EARLY RELEASE #2 (20170723): |