Friday, March 20, 2009

Sunday, March 1, 2009

Weeks 5 and 6

Yes, I have again fallen behind with this blog. Emily was back in the hospital, this time with issues from her surgery and the drug cocktail that she has been on since November. We have now gone a full week without a return visit, so I think we are done with that (I hope).

Week 5 began the new reading assignment: Database Design with UML and SQL by Tom Jewett. This anything but an entertaining read. Rather, it is a very dry explanation about databases and their mechanics. I miss Extreme Programming.

I took the test on Monday. I was completely unprepared, but was willing to accept the consequences as I just wanted to be caught up. The test was surprisingly reasonable, and although I didn't understand the syntax being used in the problems, Glenn included a page of output that allowed me to reverse-engineer what was happening. For being so unprepared, I did pretty well.

In class, Glenn explained the next assignment (Australian Voting), and then spent the week covering more of the more "interesting" aspects of the Python language. He had planned a discussion on Classes within Python for an upcoming week, but I was able to convince him to cover it early. This lecture was especially useful and his variation on the Australian Voting problem was best solved using an object-oriented approach.

Week 6 began with the completion of Australian Voting. I paired with David Garcia on this project, and he was an excellent partner. Not only was he an assett on the actual project, but he was extremely accomodating with my having to balance things against Emily being in the hospital.

The readings for the week were from the Database Design book, and a paper on Gender Issues in Computer Science. The paper was truly a boring read, and I'm somewhat stunned that someone spent the time to research the topic as the results of the paper seem obvious to me.

As we are now 1/3 through the semester, some thoughts on the class....

We have yet to have a lecture on anything relating to actual engineering. No discussions on the methodologies, techniques for creating good documentation, anything... All information on the subject has come from the readings alone. I can appreciate the trial-by-fire approach to doing things, but I was hoping to be lead a little more... That is why I am here...

While I find the lectures on Python interesting, and appreciate Glenn's love of the strange aspects of programming languages, the syntax that he shows us contradicts the lessons from my previous classes, and from the Extreme Programming book. That is, to write code that is easily readable, and to avoid clever syntactic implementations when something clearer might be available.

Sunday, February 15, 2009

Where's the blogging?

I have missing from the blogosphere for several weeks, and with good reason. My significant other has been hospitalized twice in two weeks for unrelated things. First, it was an asthma attack from allergy shots (previously undiagnosed asthma), and then it was a gall bladder attack. She is now home, sans gall bladder, and we are thinking that everything should be fine for a while. Of course, we thought that before the gall bladder attack... but I digress...

That said, I have been in and out of class, and thus am limited on what I can say about the class.

Week 2 began with a reading assignment: A paper on the Mariner 1 bug, one on the Patriot missile system bug, and a paper on the Ariane 5 bug. Monday was the first of the semesters daily quizes, which featured two questions regarding what the specific bugs were in the Mariner and Ariane projects, and a question on "what is the output of this code?". I had forgetten how much Glenn like to focus on the specific and the strange, from the readings to the coding.

The rest of week 2 was a typical Downing class. Throw some code up on the projector, call on someone from his roster sheet, and ask "What is going on here"? As typical, the student can barely get an answer out before Glenn chimes in with his "Well, clearly this is happening. Wouldn't you agree?" It is a unique and sometimes intimidating teaching methodology. We also began reading Exteme Programming Installed.

Week 3 began with the first project, the Downing ubiqiutous 3n+1 problem, due. Not a difficult problem, but I spent more time trying to get Subversion to work, and trying to determine the correct Python syntax for what I wanted to do. There were also two readings, one on the Extreme Programming methodology and another some guy's take on what to do and not to do when engineering software.

Here's where things went wonky for me. I missed class on Wednesday do to the aforementioned asthma, but was able to make it Friday.

Week 4 began with project #2, the Primes problem, due and another of Downing's favorite readings, All I Really Needed to Know about Pair Programming
I Learned in Kindergarten
. Monday's quiz asked questions from a reading not yet assigned, and the lecture was lecture on Python's array-type objects, and how they behave. I missed both the test review on Wednesday and the test on Friday. Thankfully, Glenn was generous enough to allow me to take the test on Monday.

And thus, we are caught up....

Thursday, January 29, 2009

Tips on getting Subversion working

It took some trial and error to get Subversion running. Perhaps someone can make use of my lessons learned:

The instructions at the bottom of the link that Chris provided need some tweaking. Try:

1. make the repository using their instructions.

2. make a repository in your new repository for this project
$ svnadmin create /u/svn/repos/username/projectname

3. create passwords. Change your own password, just to ensure that you know what your password is.

4. edit the access file.

5. import your work.
$ svn import . http://z.cs.utexas.edu/svn/username/projectname
This opens a vi editor. The purpose is to add a comment to your import. Enter some useful text (ie. importing project). Press ESC, then ":exit" to exit. Hopefully it should then prompt you for a password, or user name then password. Enter as appropriate.

6. checkout a copy:
$ svn checkout http://z.cs.utexas.edu/svn/username/projectname

You should now have a working copy. Be aware that it created a new folder for the working copy. If you were in ./foo, the working copy is in ./foo/projectname.

Here is a link to the Subversion user manual: http://svnbook.red-bean.com/nightly/en/index.html

Week One

This blog is about my experiences taking CS 373 Software Engineering at the University of Texas in Austin, taught by Glenn Downing.

The first week was a short week. On the first day of class, Glenn spent 25 minutes explaining the syllabus and then turned the class over to a guest speaker. The speaker, whose name I cannot remember, worked for Microsoft and was on campus promoting the Imagine Cup 2009. He gave his best spiel with the hope of getting students interested. Too bad the deadline for registration was the next day.

Day two came, and Glenn spent the entire class period explaining the first assignment: 3n+1 in Python. Not a difficult problem, and one that most of the students have previously solved if they had taking one of Glenn's other classes. This being a software engineering class, there were some additional requirements beyond actually solving the problem: Provide a suite of unit tests, provide html documentation of all code written, and make use of Subversion.

A final thought: Interesting to have an assignment before having an actual lecture...