This weblog serves as a source for announcements about CMPSC112: Data Structures at Allegheny College.
Blog
CMPSC112 Sorting Videos
My apologies for not aggregating the links immediately after class. An oversight on my part. However, if you had wanted them urgently, I suspect someone would have written or called. You didn't, so I won't feel guilty...
In no particular order...
Also, to be clear (I've said these things at various times in various settings):
1. For use on Saturday, a cube, 1". No unfolded cubes (it isn't a cube), and hand-written.
2. The exam is cumulative, but lists have been covered thoroughly in the midterm.
3. You should verse yourself on the above sorting algorithms.
4. I expect you will know your own algorithm well, given the amount of time you have spent with it.
Bitwise errors...
In case you were wondering, I think you should look for the mistake I made as you work through the winning conditions in my bitwise code from Lab 7a. It wasn't intentional, but as it happens, I encoded a win condition that is not actually a win. As you decipher the bitwise code, you'll find my mistake.
Clearly, my unit tests were sub-optimal.
Sorting...
For those of you who wonder why you need to understand sorting...
See you in a few...
Lab Up!
I kept this lab brief. Five list problems and read chapter 7; we'll do Q&A on Wednesday/Friday regarding the material, and your take-home will be over next weekend.
That's brief, but I'm going to be up early to hit the road. As always, drop email if you have questions. I'll be out of email contact Thursday, Saturday and Monday because of travel. If something is really pressing, give a call. I'll try and have Skype open Friday AM between 9AM and 10AM (username jadudm).
Lists
Before break, we started into lists. Specifically, linked lists.
I thought I'd point out a few resources online surrounding linked lists. By pointing out these resources, I'm not trying to imply that you might, if you're so inclined, possibly take a look. Instead, I'm suggesting that you should master the material surrounding lists by any means possible. These resources represent textual and video sources that may help you attain that mastery. Naturally, content I generate and exercises I provide will help, but this is the year 2009: there are lots of other resources you can leverage, and ultimately, you are responsible for your learning.
Pointers
You might want to take a look at this video with Binky, where he talks about pointers. You've seen this more than once already (and it was, inherently, part of the quiz regarding equality). You'll need to right-click and download the video, though.
Binky and Pointers (Java edition)
Lists
From Berkeley, there are a pair of lectures on linked lists. I think this presentation of material represents a hard-core "talking head" lecture format, but it is thorough. This material is also in the course text, so they should complement each-other.
CS61B Lecture 7: Lists I
Analysis
From MIT, an overview regarding the analysis of algorithms. It really doesn't start until ~20 minutes in. This is looking forward, but I wanted to capture the link.
MIT OpenCourseware: Intro to Analysis of Algorithms
Coming Soon...
In searching the web, I've realized that there is less material online than I had hoped that I actually like for introducing the concepts surrounding linked lists in a visual manner. I'm going to do my best to come up with a few videos of my own.
Stacks!
Stacks and queues and heaps and gobs!
Actually, I just thought I'd mention that a sequence of videos introducing the Stack as a data structure are now online. This sequence includes a game-like video made with Phun. It's amazing. Computer Science Cinematography at its finest.
We'll get to Stacks on Wednesday of next week.
Materials from Wednesday, Sept 23rd
I've posted the materials we used in class today (PDF) online. (Since this post is going up before class, technically, they are the materials we are going to use in class.)
Also, I've made some additional information on testing (PDF) available to you. These are a few pages from Objects First with Java by Barnes and Kolling.
Videos on Refactoring/Testing
I have posted two new videos; they are short (4.5 and 6 minutes). I would appreciate it if you would watch these videos once or twice before class tomorrow and come prepared to do a refactoring exercise.
I will give you a piece of code tomorrow (or perhaps earlier via email). I will then ask you, with a partner, to identify parts of the code that could be extracted into separate methods—a process like that depicted in the videos. Then, we'll write some tests for those methods, and call it a day.
Energy was a bit down on Monday. I still have no voice, so I'm putting together this activity as a way to push you into exploring the material vs. me talking about it. So, show up caffeinated (if that's what you do) and be ready to reorganize, improve, and talk about some code.
Note: if you don't know what refactoring is, you should read the Wikipedia entry on it at the least.
Overview, next lab
I've updated the overview, and posted the next lab. I'll be filling in the overview more in the coming days to give you a better 2-to-3-week view.
Note, I'd like to have a graded, in-class exercise a week from this coming Friday. I called it a "quizzy" to make it less threatening. It will cover material up to and including testing and exceptions. The purpose of this assessment is to see where everyone is as we move into our first data structure.
Scheduling
This is a "meta post," and I'd appreciate your taking the time to read it. I'll be brief... for me.
I've pressured myself to have a complete, 14-week schedule laid out for the entire semester—with detail down to the day. At times this has made it difficult for me to work on the course schedule, because I constantly feel like I don't know where to start.
(Does this sound familiar? Perhaps like trying to start an assignment? The challenges of writing don't ever go away...)
I've spoken to several students from class, and they've said that as students at Allegheny they're comfortable:
- Knowing the overall direction of the course
- Knowing when major assignments are due
- Having a clear vision of the next 2-3 weeks
... and beyond that, they expect that things will adapt and change over the course of the semester. At some level, this feels like a more detailed version of the statement I made in class that the "schedule should never come as a surprise."
This is what I would like to do: I will make sure you have the dates for major writing assignments, so that you have a sense for when they will be hitting in the semester. I'll strive to fill in the details in-between in a timely manner, and make sure you have ample time to do any reading/prep for classes (i.e. the "no surprise" policy.) We'll typically have a clear (detailed) roadmap looking forward 2–3 weeks, but not necessarily more.
Is that fair? By all means, do let me know if you feel it isn't. It seems to make sense to me, and it seems more reasonable than the expectations I set for myself. Feel free to comment (anonymously, if you like) below with any feedback you might have.
RELATED: We will, weather permitting, go outside again on Friday.


0 Comments