New Horizons

Again in that curious state where the term is over, but not quite done with. We’re still waiting for all grades except algorithms and of course software engineering where we got the grade right away as the exam was oral. Up to now, we had always been lucky in that our professors graded extremely quickly, i.e. within days; in one case within 24 hours. This time, three of them are taking their time. In fact, the grade in business administration can’t come earlier than March anyway, because the deadline for handing in the written versions of our presentations is not before February 28.

Still the next term is casting its shadow before, and more so than ever. The second half of our study program is about to begin, the half in which we no longer follow a course strictly prescribed by a tightly packed curriculum, but start shaping our own destiny just a little. In any case I find I am consciously changing things. I won’t call it a change of pace, because as you’ll see in a moment I’ll likely be as busy as ever before. But let’s say I am about to broaden my horizons.

One thing that recently occurred to me is that come next term we’ll finally be done with math, in all shapes and sizes. I had thought so after the first term and had been almost ridiculously wrong. Now, four more math courses later, it’s finally true. And mind you, I am almost sad, for as hard as I’ve fought at times with math and its variations (logic, automata theory, algorithms, graph theory), in a way it was meaningful, enlightening, and sometimes fun. I wouldn’t have dreamed I’d ever say so, but somehow I’ll miss it.

And that may be the reason for my decision to do a math tutorial course for freshmen together with a co-student from our study group. Before the third term started our first-term math professor had asked me to do a tutorial for her Math 101 course in the business informatics program. With the extremely demanding second term still fresh on my mind, I had not dared accept her offer, saying I would love to do a tutorial course, but preferably later in the study program. Besides, naturally I would have liked it better to teach our “own” freshmen, i.e. applied CS students, though I kept that reason for myself.

Well, I missed my chance there. Because this term the same professor is reading Math 101 for the applied CS program, but the tutorial course will be done again by the co-student who stepped in last term. Fair enough in any case, apart from her being really good at math as well. But this term, our algorithms professor as well will be reading Math 101, for the technical CS program, and he asked several people in our core group if we would like to do the tutorial course for him.

Almost everyone quickly said no. I was somewhat ambivalent. Compared to doing a tutorial course for applied CS students, this was decidedly second choice. Not only do we tend to find the hardware obsession of our technical CS peers somewhat peculiar. It’s also an almost exclusively male program which makes for a very odd social dynamic. More than a quarter of a century later I still find it positively strange that I once went to a male-only high school, and I consider single-gender groups in whichever context highly questionable.

But then I do enjoy math, after a fashion, and I do enjoy teaching. What really tipped the scales however was my sense of duty–or let’s say, social responsibility. You see, we had a math tutorial course in our own first term, and it helped us a lot. For that to happen, somebody had to do it, and somebody did, and I was grateful. For that, I want to give something back.

Of course, it’s a time investment without any useful return. The pay is abysmal, it’s not something that will look good on your resume (not if you do it in math, leastways–now programming might be different), and since I have already more than a decade of experience teaching at universities I won’t learn anything I don’t already know. But never mind. As I said, I will be doing it together with a co-student. That’s highly unusual, but he feels the same about tutorial courses as I do, and it will lessen the workload for both of us. Besides, the professor is going to experiment a little with the “flipped classroom” concept–the students read or watch videos before they attend class rather than after–and I’m just curious how this will work out. It might be fun, and in any case it’s different from hearing lectures and repeating flashcards.

The other new thing I am starting right now might be an even bigger step into a world decidedly different from what we’ve been doing so far in this program. At some point, evidently, we will need a project for a BA thesis. Basically there are three ways to find one, or maybe even four if you include the most random of all: you could decide on a professor and then simply ask him for a subject. Other than that, professors sometimes announce available projects on their bulletin boards; you can start working in a software company and they might provide you with a project that’s also useful to them; or you join a collaborative research project at the university.

I do wonder why of all these possibilities only the last ever appealed to me? Must be my academic background. I had always planned to look around for existing projects starting with the fourth term. And then destiny stepped in.

It’s funny how you sometimes miss the most obvious things. Back in the second term our databases professor had repeatedly advertised his own research project, and after I scored the best point total in the final exam he twice tried to recruit me for this project. But that was during the third term when I was struggling to survive, and I didn’t take much notice. Besides, somehow I may have been, at least subconsciously, suspicious–can something be good if you need to promote it so much? Even more so since the promoting didn’t end. When we started designing our project for software engineering, part II, the technical assistant who set up our Confluence board etc. happened to be on the team of the said research project. When he saw that we had to decided to do a transport network simulation, he pointed out that we ought to join forces–for afterall, the research project was about multi-actor simulations as well. Why did we want to reinvent the wheel, he said, when it was all there already?

It still didn’t make sense to us, for a term project for a software engineering course is not only smaller in design by some dimensions than a major research project, but more to the point, the idea of such a project is reinventing the wheel, on a minor scale. It’s an exercise, after all–a playground for technical and team organization instruments. So we said no thanks, but we’d gladly have a look later–after the exams that is. That still didn’t put an end to the recruting effort. By coincidence, the technical assistant was minute-taker in the oral exam in software engineering for one of our group and again tried to recruit him right on the spot!

So much effort needs to be rewarded I guess. So when the exams were over, I contacted the assistant and said I’d love to take a look at their project if the offer still stood. We agreed on a date, and one co-student–the same who will team up with me for the tutorial course in fact–said he’d come along, while the other two in our group were not interested.

And then, believe me, only then did I sit down to find out what this research project was actually about! Let it be a measure of how little time I had, during my second and third term, to look either left or right, but it was the evening before the actual meeting that I first looked at the website for that project, and at a research paper the assistant had sent us with his recruiting email. As I said, all the time I had rather been missing the obvious. For the project is about a general model for large-scale multi-actor simulations, be it ecosystems, or cities, or whatever. And I have always been obsessed with simulations. In fact, it’s the one thing I find most fascinating about computers–that they can simulate complex environments. It’s almost hilarious. Before I read that paper, I wanted to go to the meeting simply to do the polite thing and show interest. After I had read it, I would have killed to be allowed to work on that project! All other projects I had heard of so far suddenly paled in comparison. Even more so since most of them involve working with hardware in one way or another. Self-driving cars, anyone? Robots? Ambient assisted living? Just not my cup of tea, I suppose.

What’s almost equally hilarious, given that, is that the meeting almost miscarried. The assistant still thought he had to convince us to connect our term project to their research project. He kept pointing out where they overlapped, while we kept pointing out that coupling them was not only an overkill for a term project, but also that the two others in our group would be decidedly uninterested in increasing the effort for that project (for one of them the study program is rather challenging, and the other–my programming partner–will be working two days a week henceforth). After 30 minutes or so I think we had managed to get that message across, only to be rewarded by a somewhat blank look in the assistant’s face that said “then why the hell are you even here?”It’s funny how a conversation can be so loaded with diverging expectations that it’s almost impossible to see the obvious. Finally he said something like “of course we are always looking for people who want to contribute”. Bingo! That took some doing.

So two days from now the other guy (should I call him my project partner, henceforth?) and I will be properly introduced to the technology and procedures of that project that has finally fallen into our lap by a somewhat circuitous route. We will be working on importing open source map data and writing a simulation layer as groundwork for simulating cities. Yes, this will likely involve a lot of work, starting with new languages like, probably, C# and Python, or whatever else they use, plus frameworks, version control, and all, but I find it really exciting! And there will be no time pressure, you see–it’s a long-term project. The assistant (he is sort of the actual manager of the project, I think, even thought it’s chaired by our erstwhile databases professor) said putting in half a day per week would be a useful contribution. And with only four courses rather than the usual five next term, I think (or hope!) I can afford that, even given the additional workload for the tutorial course.

Not the least advantage of this project as well as the tutorial course is that I will be doing things without my programming partner, working with whom has for a long time been almost as demanding psychologically as it is productive otherwise. Remember that we also won’t be together in the “compulsory choice” module, for which he alone has picked a course that’s officially open only for students in the fifth term or higher. So we will work together only in the three standard curriculum courses: computer networks, intelligent systems, and software engineering, part II. That reduced exposure to his overwhelming productivity (and self-assuredness) will be rather good for my self-esteem and peace of mind.

Of course, sometimes I am also a bit scared of all the new things I am getting myself into with all that. I still feel a bit overwhelmed by my vacation project, acquiring a working knowledge of Angular which I find somewhat counterintuitive so far. The book I am working with (ng-book 2 by Nate Murray et al.) has nearly 700 pages! Though of course much of that is code samples, and I won’t be needing even nearly all of it to use Angular in our term project. In addition, I have decided to finally learn Git properly. We have been using Git as version control for our study projects practically from day one, but apart from just pushing everything to the remote server and never looking at it again, everything else in Git is still a mystery to me. (Reset? Rebase? Branches? Heads?) About time to change that. Ever the book person, I naturally have a book for this as well, Learn Git in a Month of Lunches by Rick Umali (Shelter Island, NY: Manning, 2015). I must say I enjoy it. It embraces didactic repetition, and even for somebody who like me is always slow on the uptake, finally things are starting to make sense.

My wife, it must be said, is also somewhat skeptical. As a practical person, rather than join a research project she would have me go work for real money and do a BA thesis there. Undoubtedly she has a point and there’s not a lot I can say, except that this project is what I really want to do, and working on a major project that’s actually being used by people all over the world will give me experience that’s professionally relevant even though unpaid. She also opposed my doing the math tutorial, in spite of her having done tutorials during her studies with just the same motivation–somebody has to do them–but she feels we can’t afford the additional time and it’s not worth it. At that point though I simply pointed out that there was equally little need for her being on the parents’ council in both school and daycare for our kids.

So I’ll see what next term will bring. There are, of course, a lot of imponderables. For instance, none of the three professors we will have in computer networks, intelligent systems, and the compulsory choice module is yet known to us. There might be nasty surprises in store. It’s hard to predict the workload for a course before you are four to six weeks into it–they are very uneven. Depending on that, doing a tutorial and working on a research project in addition to the software engineering project on which we have agreed to spend one full day per week might turn out to be too much. We might have to make a few compromises. But that, as I said, we shall see in due time. Right now, I find all of this rather exciting.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s