Posts Tagged ‘Oakland University’

Back when I was still attending Oakland University (and still trying to cope with the calculus and physics requirements necessary for a CSE degree) I needed to fill in a class period.  Money was tight so I was looking at 1 and 2 credit options that would help fulfill my major requirements.

I’d had a CSE110 class with professor Marsh and liked his teaching style and I noticed that he was doing one of the ‘language labs’ for that semester, in of all things, Fortran programming language.

For those of you that are not CSE geeks, a language lab is just that – a one credit lab to help students learn various programming languages.  As a lab, it wasn’t necessarily a requirement to show up during the scheduled time for the class.  In fact, most professors (including Mr. Marsh) wouldn’t even show up in the computer lab during that time period but would just make themselves available for questions during their class period.  It was pretty much up to the students to pose questions and learn the material on their own, the professor only making themselves available to help them through any trouble spots.

Professor Marsh wasn’t the type to post grades or leave graded papers on his door, but he would place the weekly assignment with a reference to what pages in the text book were relevant to completing it in a slot outside his door.  There were 10 assignments total for the whole semester.

Now I say that he didn’t show up in lab and I had already talked to him about it prior to the semester starting.  But he did apparently show up in the lab briefly on the first day.  As a student employee of the computing department, I was in the lab much of the day anyway so I didn’t bother to go to the scheduled time period.  Not even on the first day.

The assignments themselves were a cinch.  I wasn’t aware of it at the time, because I never once went to Mr. Marsh’s office during the first five weeks of class other than to pick up the new assignment and turn the previous one in via a slot in his door, but most of the other students apparently were frequent visitors.  As a result, some of them found out that I was a good reference for assignments and thus I was getting feedback on any visits Mr. Marsh did make and any special instructions on assignments because inevitably, another student would come to ask me what I was doing for assignment #x.

About 6 weeks in he gave us an assignment for something called a magic box.  I can’t remember the particulars, but recall it was something like a bizarre sudoku.  A different number in every box but with each row and column adding up to the same integer.  There was apparently a formula to build these at any size using consecutive integers from 1 to the product of the X times the Y dimensions minus one – so long as the grid was a square (X = Y).  He included the formula on the assignment and wanted us to write a program to make one of any size and then print out various examples based on specific dimensions.  (something like 5×5, 10×10 and 25×25)

I ran into my first problem and needed to go see Mr. Marsh for the first time that semester.  My problem was not programming the formula.  That was a breeze.  My problem resulted from the fact that Fortran was built to be a math/number intensive language and not a text formatting language.  I (and all the other students) found that when trying to display your output for any boxes greater than 3×3, the differences between the 1 digit and multi digit numbers quickly caused your columns to go all out of whack!  The output looked horrible.  I didn’t like my output to look horrible.

So I went to see Professor Marsh and he told me basically what I’d already discovered.   Fortran wasn’t built for text formatting.  While I was there, he remembered that he had my first 5 assignments.  I knew that they were all correct so I hadn’t bothered to pick them up.  But when he handed them to me, I quickly noticed that on every single one of them I had scored a 9 out of 10.  I was like, wtf????

So I asked him about it.  He told me that on the first day of the lab, he’d explained to everyone that you need to write out manually the solution to the problem to show that your program works.  Since I wasn’t in the lab on the first day, I was never made privy to this fact.  I was irked.

I said, “Come on Mr. Marsh!  If I had any reason to believe that my program wasn’t doing what the assignment required it to do, I would have been down in your office just like I am now to find out how to make it do what it’s supposed to do!”

Mr. Marsh started to laugh and pointed out, “Don’t panic, I grade my labs on a curve and right now you’re the top of it.”

This fact this surprised the hell out of me because I knew there to be a number of other proficient programmers in the class – and that the only way I could be on the top was if they were consistently getting more than 1 point worth of ‘wrong’ programming in their assignments since they all ‘knew’ to include a manual proof and thus weren’t loosing the 1 point per assignment that I had.  (Fortran is not complex and the problems he gave were easy – at least to me)

So I left with my 5×9-point papers, still irked that no one had told me about the manual proof requirement, but even more irked that the output of that particular lab was going to look like crap.  I would not be outdone by a programming language!!!!

I can’t remember the exact specifics, but it was something akin to this that I came to as a solution.  I figured out that I could, in fact, get Fortran to draw a single space.  And of course, Fortran could do great math and like most programming language, had simple control structures.  I was able to build a little subroutine that would divide numbers by incrementing powers of ten, incrementing a counter each time if the result of the division was greater than 1 and exiting the loop the first time that it wasn’t greater than 1.  For non-programming types, this in essence counts the digits in a base 10 number system.

I could then take the dimensions I was using for a given execution of the program and square them (X*Y)-1 and run it through my subroutine as this would give me the ‘maximum’ number of digits.  Then for each square, I run the value in the square across the subroutine again to get the number of digits going into that square.  By subtracting that number of digits from the maximum number of digits, I could get the number of ‘leading’ spaces I would need to get the columns to properly line up on the print-out.  In essence, writing my own little sprintf for inserting leading spaces on shorter numbers.

I also learned that I could send a command to the printer to make it go landscape and use a much smaller font when sending my output.  So for chuckles and giggles, I not only did a 5×5, 10×10 and 25×25 but then also output a 50×50 and a 100×100 just to show I could!

He did give us a break that all we had to show manually on that assignment was a written out version of the 5×5 so I submitted that with my program and got 10 points on it (and on each additional program until the end of the semester).

Read Full Post »

Originally posted to Facebook Notes

No term limits, but no consecutive terms

I was quite fortunate in that I ran low on money after my music scholarship ran out and ended up compromising by taking some of my core liberal arts credits through night extension courses at Oakland Community College through both the Auburn Hills and Farmington Hills campuses. I say fortunate because larger universities seem to be gathering places for a lot of left-wing thinkers and it tended to be a source of conflict at both Oakland University and Eastern Michigan University where I later transferred after moving to Ann Arbor. (although one of my most enjoyable college classes of all was a business ethics course run by a brilliant philosophy teacher at EMU who was admittedly a liberal)
O.C.C. however, especially in their extension courses (which were often run by professionals from the community rather than tenured faculty), more often than not had conservative minded teachers. One such class was a basic economics course run by an obvious supply-side thinker. All that is neither here nor there to my idea of how to handle term limits, however, one day in class he was discussing the principle of ‘velocity of money’ and this potential solution struck me.

The notion was that I, at the time, foresaw one of the biggest problems with the entrenched incumbency existing in our government as being a lack of new ideas. The same out-of-touch guys keep getting elected and re-elected through combination of their celebrity/name-recognition, franking privilege, party backing, practices like gerrymandering and the use of their pulpit. I don’t really support the notion of term limits because it reduces choice, but at the same time the desires of the founding fathers was not to have ‘career politicians’ holding the same office for life. Moreover most of them were reluctant to even hold office themselves and quickly reverted to civilian pursuits as soon as their one or two terms were complete.
THAT was the intention of their interest in republican rule. To encourage the common man to serve as leader if his ideas resounded with the people, but then to return to the common. The problem was in essence, a lack of ‘velocity of ideas’.

The economic principle was that you did not need to increase money supply to stimulate an economy. You simply needed to seek means by which to increase the ‘velocity of money’ – to make the existing money supply change hands rather than stagnate in savings or investments. In short, to encourage spending to stimulate production to revitalize the economy. Gross National Product goes up faster with increased velocity of money than with any other means.

Therefore if you are going to address problems with stagnant ideas in politics, you need to increase the velocity of ideas. You need to get back to – or at least attempt to approach closer to – the founders’ intentions. Encourage the common man to enter politics and discourage the career politician from stagnating in office.

The answer was obvious. Don’t limit terms – just don’t let anyone hold the same office twice in a row. The big argument on term limits has always been ‘it takes a while for someone to learn the system’ – I replace the word system with the word ‘game’ because that’s pretty much what it is… political game playing. Well guess what, if everyone is coming in to the office fresh (or at least reasonably fresh), far less entrenched ‘system’ of game playing to learn.

Would this mean no career politicians? NO, not at all. But tell me it would be a bad thing for someone that wanted to make a career of it to have to leave the Senate to take a seat for 2 years in the house or back at his state level before again running for the 6 year term!

Instant run-off ballots!

This one is by far not my idea. It’s actually been done. The concept of an instant run-off ballot is that you are not restricted to one choice. I see this as a benefit also because many times third parties with legitimately viable ideas are overshadowed by people’s desire ‘not to waste a vote’ on a candidate they think is unlikely to win. The old Douglas Adams argument comes into play:

“The people are people, the leaders are lizards. The lizards hate the people and the people hate the lizards. It’s a democracy! […] of course people vote for [the lizards], if they don’t, the wrong lizard might get in.”

An instant run-off ballot gives you the ability to make more than one choice in order of preference or to vote no preference at all on candidates you do not like. i.e. if you really like what the reform party candidate is saying but don’t want to waste your vote afraid that party ‘x’s popular candidate will win over your second choice in party ‘y’, you make your first choice for the reform candidate and your second for the party Y candidate.

After ballots are collected, if there is not a ‘super majority’ (over 50%), they take whoever’s name is the last on the list (least number of ‘first choice’ votes) off the list and tally in any ‘second choice’ candidates on those voter ballots to add to the existing totals and so on until one candidate has earned 50%

I think this kind of a process with so many conflicting ideas out there makes a lot more sense than the current ‘this guy or that guy’ method of the bi-cameral, one-person-one-vote-for-one-candidate nonsense we have in place today. And it would go a long way to introduce new concepts into politics as those 2nd (and beyond) choices needed to be tallied in.

Proportional salaries for politicians

I commented briefly on this in another response to someone on another facebook page who was referring to government dictation of executive pay as a factor of corporate profits and company well being. I’m ever and always saying we should hold our politicians to the same standards they try to introduce, legislate and enforce BEFORE giving them any audience for ridiculous notions sold as ‘fairness’.

Therefore, politician salaries should be proportional to the ‘average income’ of people whom they represent. It wouldn’t have to be a 1-to-1 correlation but should be across the board in any political wing (states could decide their own ratio, federal ratios should be uniform in the house and senate) and should be fixed so that only a public vote could change the ratio. (I also firmly believe that politicians should NOT be allowed to arbitrarily vote on their own compensation, benefits or what have you – that is insane!)

This would shift the incentive of politicians from ‘what they could get to give to their voters’ to what they can do to improve the lives, salaries and self-sufficiency of their voters overnight!

Read Full Post »