Second to last week of classes; some have made some good progress on the EoCE, a couple functioning egyptian ratscrew implementations.
Break 2
Yay! Break.
Week 12
End of Course Experience (EoCE) is ready. Jubilant celebration!
Week 11
smh0 is our long-promised sorting project (likely part 1 of a series); sorting is an important concept, and common example. This will probably NOT be the last time you encounter a sort in your Computer Science journeys.
wpfA continues the weekly puzzle fun into hex! A difficult 6×6 (but no less fun!), word math, and another sudoku for your solving fancy. You're welcome.
Week 10
Hey, week 10!
wpf9 continues the puzzle fun; this week's third puzzle, by popular request, is a sudoku. You're welcome.
This was actually the first sudoku puzzle I've ever done; I found it quite delightful.
Based on some of our tic-tac-toe exploits from last week, I felt we should linger delve a bit more into algorithm creation. I've spun up what should be a super-spiffy and fun project (yol0), which should satiate your hunger pangs for new and exciting discrete projects.
I believe I've evaluated everything up to this point. So at least discrete is caught up. Really close in data, still a bit behind in unix.
Week 9
wpf8 starts us on the highest level of difficulty with our logic grid puzzles. Back to 4×4. New word math, AND a third puzzle! Yay!
Because I deserve nice things, nbm0 will be extended another week. You're welcome.
I believe this is the last week to drop a class with a 'W'. If such thoughts are on your mind (not meant to refer to this class, just in general), you'll likely want to spring into action soon.
Registration for the Spring 2017 semester begins this week.
Week 8
As promised, the next project deals with number base conversions. nbm0 is ready for your implementation.
we're onto 7×7 on medium difficulty logic puzzles! wpf7 also awaits.
Break Week
I had a couple questions related to dcf2- that made me happy. I wish I had gotten a few more, to know that we won't have yet another last minute struggle.
Week 7
This week has more than a few notable events worthy of our attention:
the effective halfway point of the semester is this week
this is our first week of class in the month of October
we have a knowledge assessment this week (looking at Wednesday)
I'm giving you off from going to regularly scheduled classes next week
wpf6 provides a fresh batch of fun- 6×6 logic grid of medium difficulty. A lot more indirect clues in this puzzle. Be sure to cross-reference eliminated boxes with correlated clues.
We'll look to continue our tictactoe in-class implementation; I rigged up a grabit project, so you can get the latest copy of the code.
seems they have found a way to improve upon the memory usage of the sieve of eratosthenes… although the article is light on details (pretty much void of them), it does give some clues on the potential optimization path, and what's neat is that most will probably be able to read the article and follow along with a good level of familiarity.
I am thinking about having a knowledge assessment next week at some point (day yet to be determined, although probably monday 10/03 or friday 10/07), where I'll have you work with some concepts we've been regularly touching on in the class (probably some algorithm or action taken on an algorithm).
Well, dcf0 had some interesting results. I'd say we had the following categories:
people who got it / went over the top
people who either didn't read the specification, or had conceptual problems (a lot of writing ASCII integers to files)
people who just couldn't get it working / didn't do it at all
far too many of the latter category, and really impacted by basic programming/syntax issues. for() loops and arrays aren't some fad-of-the-week… you really do need to know how to use them, fluently and regularly.
dcf2 is the new project, wrapping up our explorations in this space. If dcf0 was any indication, I think people need to draw a lot more pictures and seek out the tutors for a lot more basic C help.
Remember, the dcfX projects are reading/writing binary data! Some of it may be ASCII data, but that is by no means exclusive. You want to use %c pretty much exclusively when reading from/writing to files.
Week 5
We go down the RLE rabbit hole a little deeper with dcf1.
Also, we restart the logic grid puzzles on medium difficulty, smaller board, slowly ramping ourselves up again.
Looking to also introduce another form of logic puzzle this week (so we'll then have 2 a week to do, all for the purposes of helping to sharpen your mental reasoning and logic skills). Believe it or not, this stuff will help you… but it is an indirect capacity. You won't see any tangible payoff until it has developed enough. So keep at it! By the end of the semester you may discover some sharpened reasoning abilities (and therefore improved coding/debugging skills)
Week 4
One of the aims of this class is to learn (and strive) to write cleaner code, more optimal algorithms, and improve ourselves. After wading through some pnc1 submissions, it looks like there's some work to still be done in that department.
PLEASE: consider throwing things out and starting from scratch if the one-off logic errors plague you for hours.
PLEASE: make sure the code you submit actually COMPILES.
PLEASE: if there's an output validation mechanism (ahem: primerun), run it and verify it conforms.
Most of you were fine. A few were beyond fine. But there were more than I'd prefer seemingly having trouble. I've also noticed struggling people are super great sponges at sucking up any published code snippets (written on the board, shared, compared, etc.). Remember, I don't mind conversing and helping and suggesting, but when the code you have just doesn't work, and there are no comments in sight that even try to explain this thing that is there, going forward I'm going to be a lot stricter on evaluating that, even if the code mostly or entirely works.
Comments like: “declaring a variable”, “ending a loop”, “having an if statement” are NOT what I'm looking for. Explain how you implemented the odds, or the sqrtopt… explain why you have an if() statement breaking in the middle of the loop (and no, not with “breaking out of the loop”— but WHY are you doing that?).
we'll be taking on a new project this week (possibly also the first in a series; I've already got ideas for 2 follow-up projects). So be prepared for the fun that is approaching!
Week 3
The first projects have come due; I'll get around to evaluating them and the results will show up in the output of the status tool. I'll let you know when this has been done.
We've been progressively stepping up the logic grid puzzles… last week a 5×5, this week a 6×6. I've found that the larger they are, the easier they get (but also the more details that need to be monitored).
Also the third prime number project- this week takes a turn into potentially new territory for many of you, as we explore algorithms that through the utilization of more space, can net us rather impressive gains in time.
Matrix operation explorations; we finished add. I asked you to do a subtract. We'll probably venture into multiplication.
Week 2
We continue our matrix explorations this week, plugging away at matrix addition. Already a considerable amount of insights gained with respect to pointers, data file formatting, etc.
Our algorithmic analysis continues with prime numbers! pnc1 has us exploring further optimizations, with some impressive runtime improvements.
The weekly puzzle seemed to challenge some people- this is good. The puzzle represents some very important concepts that you all should be familiar with employing. Part of the role of the weekly puzzles is to further develop these skills.
Week 1
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), logic, and algorithms that are inherent to computing.
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).
This is a GREAT complement course to Data Structures. For those who are taking it this semester (many), or have taken it (some), you'll likely find some reinforcing cross-over… I hope to use some of the things we'll be building in Data Structures (ie linked lists, stacks)
Your first programming project should be a fun one (for everyone), and a familiar one for many.
Unlike in Data Structures, where we spend most of our time as library developers/API implementers (MAKING libraries), in Discrete Structures we'll be spending a lot of our time on the application development side, USING libraries.
Data Structures tends to be abstract/theory hard, where Discrete's difficulty stems predominantly from the challenges of what I'll refer to as “3rd grade math”. Many of the initial mathematical concepts you first learned in elementary school are what are at play here. You likely do not remember too many of those concepts (they weren't emphasized as anything special or different at the time).