jump to navigation

Engineers who don’t like to program November 15, 2011

Posted by mareserinitatis in computers, education, engineering, teaching.
Tags: , , ,
8 comments

I admit that I’ve set myself up for some major disappointment.

My method of grading has been to basically grade assignments in a binary fashion.  Either it’s good enough or it needs to be redone.

The other thing is that I’m determining grades by number of assignments that are complete.  There are some required assignments which everyone must do to pass the class.  Then there are 9 optional assignments.  To get an A, you must complete 7 of those.  A B requires six, and a C requires five.  I didn’t mention the alternatives.

The last two assignments are Matlab assignments.  The one before that is writing up a technical presentation.

For me, I’d much rather do coding than write up a presentation.  (Yuck!)

Most of my students don’t agree.  In fact, based on my first two classes, it looks like less than 10% will be doing either of the matlab assignments.  I’m guessing this will be worse in my Thursday classes because of my cancellation of class last week.

I have to admit that I’m rather shocked…and disappointed.  It doesn’t matter what you’re doing in EE: you’re likely going to need to have a good handle on programming.

On the good side, I’ve introduced them to the material.  On the bad side, the horse is standing by the water and not drinking.

I’m trying to decide, assuming I teach this class again in the future, whether it’s worth it to develop a somewhat scaled down assignment.  Is it better to get them doing a small amount of coding, or is it better to have a bit more breadth in their initial exposure?

Maybe I’ll do an eval at the end of the semester so I can find out.  In the meantime, I’m still bummed out that most of them aren’t going that route.

Forgetting how to be inexperienced November 8, 2011

Posted by mareserinitatis in computers, engineering, teaching.
Tags: , ,
4 comments

I learned to program when I was 9.  My grandmother gave us an old TI-35 console that hooked up to a TV and a tape deck to record the programs.  (Yes, as in cassette tapes…)  She failed to get any games or other programs to run, so in order to get anything useful out of it, I had to learn to program.

It was a huge disappointment for me: I’d really wanted an Apple IIc so I could play Oregon trail on the phosphorescent green screen like I did at school.  On the other than, with 25+ years of knowledge and experience, I think it was the best gift I could’ve ever gotten.  I can make a living programming…but I can’t playing Oregon Trail.

My goal this week was to pass on some of that appreciation of programming to my students.  (I guess I can almost say next generation since my own son is just a couple years behind my students.  That’s sad.)  My informal polling in class has made me realize that only about a quarter of my students have ever programmed in any language ever.

I could have understood this when I was in college…not everyone had access to computers.  It seems like the ubiquity of computers doesn’t necessarily mean one will necessarily have experience using them other than at an apps level.

So I decided they should probably get at least a cursory knowledge of a useful programming language.  Matlab seemed like a good choice because I know several of the upper-level classes use it.  And let’s face it…once you learn to program in one language, it’s easier to go to another.

I found an excellent tutorial.  I liked it because it went through things in a fairly basic manor, which I was sure my students could understand.  It also had exercises.

Unfortunately, my mistake was thinking my students would be able to read, do the examples, and get a decent understanding of how matlab worked.  That’s more or less how I learned it.

Of course…I had already learned other languages when I decided I should learn Matlab.  (It wasn’t around when I was 9, you see…)

I was very surprised to find that the most difficult concept for the students to get was how to write an m-file.  That is, they didn’t understand that you could write a series of commands in the file and then execute the whole file simply by typing the m-file name in the command window.  They wanted to print out the command window or copy and paste their results into the m-file from the command window.

I have to admit that I was impressed with their creativity…but confounded by all the strange things they were attempting.

Finally, I went through a five-minute explanation of the differences between the command window and an m-file, and how the two work.  That seemed to clarify what needed to be done for many of the students.  When I took this approach with my second class, they seemed very calm and significantly less frustrated than the first class.

I really hoped this would be a positive introduction to programming for the students, but I can tell I’ve managed to make it frustrating for one group.  I guess it’s really hard to put myself in their place and figure out where they’re going to have problems.  It’s only when I throw some of them in and see how they react that I can change my approach to fit their needs.

Teaching any class for the first time is a frustrating experience.

One week without a computer October 18, 2011

Posted by mareserinitatis in computers, Uncategorized.
1 comment so far

Recently, a friend told me that he became so addicted to the computer game Civilization that the only way he was able to stop playing was to break the disk.

“Whoa,” I thought. “That’s pretty extreme.”

On the other hand, I think I might have just gone through something similar, though breaking the hard disk on my computer was certainly not intentional.

I spent a week without my computer, and I found that I didn’t miss it as much as I thought I would.  Granted, I have access to a computer at work and also have an iPhone.  However, I don’t like ‘web surfing’ with my iPhone all that much, and I try to get work done when I’m at work.  (Although when I’m there in the evenings, I leave Twitter open.)  After I got my computer back, I went on a camping trip.  The computer needing some work done, and camping is no place for a computer anyway.  (Although the iPhone was awesome for sending smug messages to friends, letting them we were enjoying smores and beautiful stars…while they were not.)

After that week, I concluded that I spend way too much time on the computer doing useless things.  Not a surprise.  I am also trying not to fall back into bad habits now that I have my computer up and running again.

I hope that blogging isn’t a bad habit, though.  That one is hard to give up.

What doctors and computer techs have in common September 28, 2011

Posted by mareserinitatis in computers.
Tags: ,
5 comments

I don’t particularly care to deal with either doctors or computer techs.  Occasionally, you’ll find an awesome one…but a lot of them can be a pain.

When I was an undergrad, I was trying to get a poster printed at the computer center on campus.  Tried most of the day, and nothing seemed to be working.  Finally, I asked them if they had any NT computers that could print to the plotter.  Yeah…but they claimed it would make no difference.  I didn’t care.  I went to the computer running NT (which is what I’d been using on the lab computer), and was able to print it off without a hitch.  On the way out the door, the guy was still insisting that it shouldn’t have made a difference.

The problem seems to be that some computer techs think that they are always dealing with computer illiterates.  Maybe relative to them, I am, but that doesn’t mean I’m stupid, either.  When my computer started giving me problems, the first thing I did was to back it up and then start running the disk repair utilities.  When they crashed, I ran a hardware check.  Sure enough, there’s an error, so I wrote down the code and looked it up.

I tried to get things fixed through the warranty program I purchased (non-apple), and they said it could be 3-4 weeks before I get my computer back…and I would have to mail it out of state.  Sorry, but there’s no way I can go without it for a month.

Instead, I opted to call the two companies in town that do apple repairs.  The first person was not terribly helpful.  I told him it was a hard-drive error, and he said he would still have to run the diagnostic to see if it was.  Hello?!  If I can give you the number, it’s pretty obvious you’re just trying to gouge me.

The other person, however, took the number, talked to me on the phone about what I wanted for a replacement and said he could order and have it in by Thursday.  He asked if I was okay with restoring my data to the new hard drive, and since I was, he said it would probably take 1/2 hour to swap hard drives, so he could do it while I waited.

Guess which person I’m going to take my business to?

On a slightly related note, I feel naked not having my computer bag with me all the time.

Blue screen of (MacBook) death September 26, 2011

Posted by mareserinitatis in computers, meta.
Tags: , , ,
1 comment so far

I didn’t know that macs had a blue screen of death, but I encountered it.  On Saturday, I was working, when suddenly my desktop disappeared and was replaced with deep blue nothing and a moving cursor.

Not good.

I hooked up an external drive, backed everything up (once I rebooted), and then ran some diagnostics.  Looks like my hard drive bit the dust.

I’m in the midst of waiting for things to go through the red tape for the warranty (non-apple) that came with the computer when I bought it.  (The U bookstore was selling specially priced bundles.)  So far, they said I needed to provide a copy of the original receipt.

Yeah, right.

Fortunately, UMN bookstore actually had a copy and sent it to me, and I’ve passed it along.  No clue how long this will take.

So, anyway, now you know I might not be around too much until it’s fixed except maybe on twitter (because that’s the only thing easy enough to read on my iPhone).

Which century am I in? June 15, 2011

Posted by mareserinitatis in computers, work.
Tags: file formats, pdf, tif
2 comments

Yesterday, I submitted a couple abstracts for an industry conference.  Shortly after I pressed the submit button, received a request to fill out a release form.  While it’s not the same thing as an IEEE copyright form, the sponsor of the conference was asking for permission to steal our stuff use anything we present in promotional materials…with proper attribution, of course.

I downloaded the forms and realized that I couldn’t save them once I’d filled them out.  After pondering how I would submit them, I came upon the clever idea of printing them and then scanning them with the photocopier down the hallway.  So I signed on the dotted line and sent them off.

A short bit later, I get an email (from an actual person! not automated!) asking what format they’re in because they can’t read the document.  I look and realize that they’re .tif files.  I email the person back with this information, and say to let me know if they need a different format.  Of course, I wasn’t really expecting an answer.  Sure enough, I get an email a short bit later: please send them as an acrobat document.

My computer has no conversion software, so I run down the hallway again.  After fiddling with the copier, I find out that, yes, default is .tif but it’s possible to scan to .pdf.  I do this and send them off, not hearing anything further.

What I can’t figure out is if it’s really that hard to read a .tif file and they should feel stupid for not doing so or if I should feel stupid for not trying to send a .pdf the first time.  Or better yet, why is the default on the copier .tif?!

Bad encounters with programming guides May 5, 2011

Posted by mareserinitatis in computers, engineering, research, science.
Tags: ,
2 comments

Like almost everyone who has experience writing code, I’ve been guilty of doing a crappy commenting job.  I write a piece of code and go back months or years later to realize that I have NO idea what I did and nor does anyone else.  Thus, I am now at the opposite end of the spectrum.  There’s a loop of some sort, there’s a comment explaining what it does.  If there’s an equation I’m solving, the equation is in my comments.  If I pulled material, such as an algorithm from a book, information on the book, including the page numbers involved, are added to my code.

Seriously.

As you may guess, I now hold everyone to those standards…and their code almost never holds up.  However, there are different levels of crappy code.  Specifically, there are three of them.

The least offensive level of crappy code is that which is reasonably well-commented but has stupid variable names like Fred, Wilma, Betty, and Barney, i.e. names that have no bearing on what the variable actually does.  I almost never see this.

The second level omits these useless variable names, choosing instead to use names that actually relate to their functions.  However, comments are sparse, at best.  If you have good familiarity with the algorithm, there’s a chance you might understand it…maybe.  This is actually most of what I see.

The third and most egregiously awful level combines both of the worst aspects of the coding errors mentioned above: no commenting and nonsensical variable names.  When you ask the person how other people are supposed to keep track of their code, you’re told you simply need to know how it works.  I’m not normally a violent person, but it is infuriorating enough to make me want to throw my favorite software engineering text at them.

So please – if you’re writing code, please do an adequate job of coding AND use appropriate variable names.  I’m too short on books to lose too many.

Buggy March 12, 2011

Posted by mareserinitatis in computers, engineering, work.
Tags: , ,
2 comments

I’ve been having problems at work of a technical nature.  Things have been generally difficult the past two weeks because I’ve found two problems with the software I usually work with.

I have to admit that when I’m using commercial software, my expectations are pretty high.  If I were using my own software, I would expect bugs.  Part of programming is debugging, sadly.  But if you’re paying for the software, that gives a different perspective.

The first problem was really strange.  I spent over a week trying to fix things myself by changing my models.  Nothing I did seemed to work, so I finally gave up and contacted the developers.  Yep, definitely a bug.

The second problem was more of an annoyance, and I was able to find a workaround myself.

The problem with this is that I spend a lot of time not knowing if these problems creep up because of my own incompetence with the program or if there really is something wrong with the program.  I therefore spend a significant amount of time trying to check myself and talking with the other engineers who are familiar with the software.

But it’s really a relief to get that email saying, “It’s not you!” It’s nice to know that sometimes it’s not my brain that’s buggy.

The Program Prayer February 9, 2011

Posted by mareserinitatis in computers.
Tags: , , program prayer
4 comments

A few of you know that I’m having to relearn Fortran.  It was the first college class I took (while still in high school), and the version I’m learning now is considerably newer.

As I’m going through this, I’m remembering why I like Matlab.  The one thing that bothers me about Fortran is that it will deal with integers and reals in different ways, and that can be problematic if you have a mixed-type operation.  My main irritation with Matlab is that I will use i as a counter and later try to use it as an imaginary value.  (Of course, I always forget I can use j because that’s just not proper…I still have difficulties adjusting to that usage in certain contexts.)

I’ll bet I’m not the only one who gets annoyed at various language quirks.

Anyway, while digging through some files, I came across something from the same time period I took Fortran.  In fact, the printing on the paper is from a dot-matrix printer. If there is one thing I am thankful for, it is that technology has created quieter printers.

The Program Prayer

Our program, which art in memory,
“Hello” be thy name.
Thy operating system come,
Thy commands be done,
On the printer as it is on the screen.
Give us this day, our daily data,
And forgive us our I/O errors
As we forgive those whose logic circuits are faulty.
Lead us not into frustration,
But deliver us from power surges,
For thine is the algorithm, the application, and the solution,
Looping forever and ever.
Return.

Model Building: the integration of art and math January 3, 2011

Posted by mareserinitatis in computers, electromagnetics, engineering, math.
Tags: , ,
add a comment

As time goes on, I am really enjoying the trend toward more sophisticated computational tools. (Although I should also specify that I’m not crazy about the increasing prices…)

In elementary school, I learned to program in basic. I was using a TI computer hooked up to a TV. I had a tape recorder to save my programs. My first program was to make a ‘christmas card’ complete with blinking lights. This was an example program in the TI Basic text that came with the computer. I also very quickly learned the meaning of the word ‘debug’ because some of the flashing lights were floating above the Christmas tree rather than on it.

As I went through high school and then college, I picked up other variants of basic as well as ForTran and C. I found programming to be relatively boring, however, unless I got to do something related to graphics. Being able to create images, and better yet, make them move, made programming a lot of fun for me. I think my favorite formal programming experience was learning Logo, where I used it exclusively on old Apple IIs to draw pictures.

To be perfectly honest, however, drawing pictures doesn’t have the same fascination for me as it used to. I really enjoy it, but I like kicking it up a notch.

When I build my models for electromagnetic simulation, I start by creating a physical model. It’s drawing, but it’s mathematical. Items have to be a precise size, so more often than not I have to spend time doing some arithmetic to get things to fit together correctly. I draw shapes, but I may have to modify them using a mathematical relationship to the other objects.

More fun than drawing, however, are building models where you can change the dimensions of various objects. Take an interdigital capacitor, as an example:

There are a lot of things I might like to change if I were to model one. How long are the fingers? How wide? How much spacing between them? What thickness should the substrate be? Or superstrate? How about the metal?

An IDC is a simple example. When I model something that has several parts, I have to make sure that I create every part with a set of variables that will change the part dimensions if the model changes. This is where the math can be very fun. If I take my capacitor example above, I have two parts. If I change the finger lengths, I will have to change the position of one or both of the pieces that bridges all the fingers. The bridge piece will change length if I change the finger width. And if I change the gap, both the position and length will change.

Debugging these models can be fun, as well. I am often amused if I forget to apply a variable to a dimension that is supposed to change because the results will look very strange. If I don’t change the position of a bridge piece when I change the length of the fingers, it’s going to be a big mess. But it’s fun to see what the mess looks like.

Anyway, building models is a very fun aspect of my job, one that requires both math and a bit of artistry. It requires an eye for detail, because you need to make sure that everything lines up as it should be. The fact that I get to apply electromagnetics to it is a bonus.

Follow

Get every new post delivered to your Inbox.

Join 1,006 other followers