Thursday, September 29, 2011

CCSC: Programming Competition Thoughts

Last weekend, several CS students from Ball State traveled to Huntington University, in Huntington, Indiana for the Consortium for Computing Sciences in College. We listened to several talks on various topics relating to CS. We also presented on our experience with Scrum and Agile, in addition to the Morgan's Raid project. Our topics were well received, and the team as a whole had a great deal of fun.

In addition to the talks and presentations, we six students also participated in the programming competition, in groups of three. No one on my team (myself included) had ever done a programming competition before, so it was a bit of a change from the usual. The other BSU team had a few members who had been before, and it showed. They ended up placing 3rd out of 16 teams, with our team placing 8th.

I wasn't upset with our showing, and I was happy that the other BSU squad did well. My team had slight issues with some basic parsing that we probably shouldn't have, which leads me to a few thoughts on the event:


Parsing, Parsing, Parsing
    All of the problems required the teams to parse data that was input by the judges. There was some confusion as to what the end of document character was. If I was going to study one thing to prepare again, it would be basic I/O.

Divide and Conquer
    Our team developed a strategy in the midst of the chaos. One member had a good hold on one of the problems, so we turned the keyboard and monitor to him and let him run. Myself and the third remaining member turned our collective attention to another problem. We ended up running out of time, but this approach seemed to work. I worry about putting a lot of faith in one person understanding something. If they end up faltering, that's a lot of wasted time.

Three Heads Are Worse Than Two
   I'm used to doing pair-programming, so doing trio-programming was strange. We weren't sure how to divide the work. We had a single machine and a single (very small) monitor to share. We made use of extra desk space and spare paper to write out code by hand. If I had to do it over again, I'd suggest having the three of us look at all of the problems, decide which ones are easiest, and work through them in that order - splitting off and working in pairs when necessary.



I had a lot of fun, and I look forward to doing the ACM International Collegiate Programming Contest in less than a month. It'll be a bit more difficult, so I'm working through some Project Euler problems to help prepare. I'll be sure to chronicle the events leading up to the contest.

Saturday, September 24, 2011

CCSC: Quick Thoughts

The Ball State crew got back this afternoon from the Consortium of Computing Science in Colleges Midwest Conference, which took place at Huntington University. I'll probably take some time to think of some larger ideas, but I wanted to jot down a few thoughts and reactions before I retired for the day.

Overall, I had a lot of fun. The group we went with was interesting and quirky, so the conversation was always chuckleworthy.

Four of us from the Morgan's Raid project presented on Scrum and demoed Morgan's Raid itself. The feedback was very positive, and those that came to see our poster/presentation asked great questions. It's harder to explain something to someone else than it is to think about it yourself, so it was a good exercise.

The Programming Competition was fun, too. My group of three had never participated in anything like this before, so we aimed to take it seriously but have fun. I was a little disappointed with our results(2 successfully completed problems). The winning team had 6, and the other BSU team had 5, I believe, placing them 3rd. I was happy to hear that they placed in the competition.

My team was a few minutes away from getting at least two more problems submitted. Could've, would've, should've I guess, but after discussing the whole competition there was mention of going to another, larger competition in November. My guess is that we'll try to do it. Travelling is fun, and four out of the six of us who traveled this weekend will be graduating next May, so we're all trying to get as much out of the time we have left. We also got to work and socialize with two of the other BSU CS students who will be involved with the Spring Virginia Ball Center project. I hadn't really met them until this trip and they seem like good fellas, so I'm looking forward to things a bit more than I was (which was a lot already).

Huntington University had some great architecture and a nice campus. While I wish I had attended last year, I am happy that I had another chance to experience it. I'd highly recommend attending it as an undergrad.

I'll look at the Programming Competition in my next post.

Friday, September 16, 2011

CCSC Midwest Conference

The Consortium for Computing Science in Colleges is having their Midwest conference at Huntington University next weekend, up near Ft Wayne. During the conference there will be a few presentation sessions, several talks on various topics, and a programming competition. I've never attended, so I'm paraphrasing their website. Somewhere along the way I made it a goal of mine to participate in the programming competition. I've had a few friends who did it and it sounded like a blast.

I'm happy that the four of us leftover from the Morgan's Raid spring team were able to come together and get the paperwork in on-time to present on not one but two topics. We'll be presenting/demoing Morgan's Raid. We also will be submitting a competition poster about our experience with Scrum as undergrads. After writing the abstract, I'm not looking forward to making a scholarly poster. Another reason why I wouldn't want to be an educator: scholarly writing.

We'll see how the programming competition, the presentations, and the demo shake out, but it should be a great time. I haven't worked with two of the guys going with us, but the other five of us have a great working relationship, and it's always fun to get to meet other people from your field.

Friday, September 9, 2011

SCRUM for Two

The Digital Archaeology Simulation project is still alive. If you're unfamiliar with it, it was a 5 week course this past summer that attempted to create a video game geared at 4th graders which realistically depicts the anthropological and archaeological process. It was quite the courageous endeavor, as starting something like this and expecting to finish it completely in 5 weeks is borderline insane. So with that in mind, we set out to complete the guts of the game, and complete them we (mostly) did.

A fellow member in the project and myself are finishing things up(applying the shiny graphics) by working with a few artists, but it's proving to be quite difficult. After having SCRUM guiding us (and some stellar Product Owners), we're now on our own. We both have a lives and other obligations/family outside of schoolwork, so finding time to work on this is proving to be challenging.

I mentioned that we were guided by SCRUM. I really miss it. I don't know how to translate standup meetings, the retrospective meetings, the product backlog, all down to a level that makes sense for two people. We just don't need the daily standups, but the standups definitely helped me personally to stay motivated. Maybe we need them more than I realized. If they last a minute, but that minute saves hours, then it's worth it in my book.

However, not having a strong product backlog might be the biggest issue. Two-player development may not need the hand holding that a large dev team might, but having something to look at and know where you're headed next is invaluable. We could get away with not having daily standups, but a well-maintained backlog would be a game-changer.

The biggest reason we don't have a lot of this nailed down is because we don't have a set time and place to meet and work. Our schedules are too different this semester to sit down daily. Working on this project this past summer, colocation was a given. In the spring during the Morgan's Raid project development, we had a lot of success mainly because of this time and place that was established and well-structured through the course.

This past week we both sat down and worked on a quick backlog, just to give us some bearings. We also received some graphics which we had been waiting on, allowing us to get them in the game. I've said it before, but it still blows me away to see a game take shape right around me. In our case, it really changes the way the game feels.

I feel that we're on the cusp of wrapping up the brunt of the pre-alpha work and we're both excited to get things into the hands of testers. Here's to continuing our progress...one foot in front of the other.

Thursday, September 1, 2011

An Update On Things

It's been over a month since I last blogged, which is longer than I meant. Needless to say I've been busy.

The biggest of my tasks involved our(my wife and I) move from Muncie to Fishers. Meaning I will have to commute every day to class for the next 9 months. Quite a bummer, but we decided it was easier for her (being the sole bread-winner for the time being) to live closer to her work.

I also started back in with classes this past week. I'm excited for a lot of things about school this semester. This will be the last batch of classroom classes that I'll be taking, as well as the last on-campus classes I'll be taking. In the spring, as I've blogged about, I'll be taking part in a Virginia Ball Center project about the Underground Railroad. It'll take place off-campus, so this is sort of the beginning of the end.

My classes won't be too challenging, I don't think. I'm finishing up a couple requirements: a statistics class, a course on Theory of Computation, a 3D Graphics class, and finally an independent study where I'll be doing some Kinect development.

I'm also planning on attending CCSC programming competition and potentially presenting on something.

I'm enjoying the 2 hours of commuting every day as well as anyone can. I'm looking into some books on tape, since radio gets repetitive quickly. Also, my automobile's A/C went out yesterday, so lets pray for cool weather(!).

My wife and I are really enjoying the area we moved to. The apartment complex is quite a bit nicer than where we lived in Muncie. They also have a pool, a (small) workout facility, and an indoor (carpeted, whaa?) half-court basketball court. My better half has had a bit of time off until she starts working, so she's been enjoying some R&R while I'm away in Muncie.

This past weekend we checked out the local library and we were pleased. They have a lot of books (surprise!), so we were both able to check out something that interested us. I stumbled upon the technical books, so I picked up 97 Things Every Programmer Should Know. It's a decently short book (< 250 pgs), and each "thing" is only 2 pages long. My instincts say that lists of important concepts like this aren't usually objective, so you're taking a risk that the author knows what they're talking about. In this case, the "things" are written by a slew of industry experts. I recognized a few names, so I thought I'd give it a whirl. It's proven to be a good book to pick up for 20 minutes and set down.

So far, I've known just about everything I've read. This is comforting. Sometimes I don't quite know the technical terms the author(s) use, but I know the concepts once they explain them. The fact that I know the majority of what I'm reading is a testament to the education I've received, which I've realized that (like a lot of things in life) it's really what you put into it. If you go to class and that's it, I don't think it'll completely prepare you for the work that awaits you. I've been fortunate to bump into some great people and situations, and I've learned a lot from these experiences.

We'll see how my classes go. I'll definitely blog about the programming competition, as well as the Kinect development if it gets interesting (which I think and hope it will).