I am going to teach my first module at Masters level tomorrow: Software Architecture.
Of course, I am delighted and a little bit worried at the same time (sic). Teaching at Masters level is a new experience for me. But, to be frank, I can cope :-)
During the semester, I intend to make my students understand that building large-scale software is tough if one wants the software to be achieve qualities (like reliability) while respecting costs and deadlines. This requires the software to have a formal architecture. The nice thing is that this is a 2+2 module (i.e. 2 hours of lectures + 2 hours of lab weekly). I intend to make the students work on design patterns and existing frameworks a lot.
I am also thinking about making the students work out the architecture of (a small part of) an existing open-source software by themselves. This is bound to be (pedagogically) cool…
Programming Languages
During the second semester, I’ll also, for the first time, teach Programming Languages to a group of 200 second-year students. My intention is to show them the value of alternative programming paradigms in addition to what they already know (i.e. imperative with C/C++ and stateful OO with Java).
I’ll introduce them to logic programming, (lazy) functional programming, message-passing concurrent programming. I am leaning towards Prolog, Haskell and Erlang respectively. But I may also adopt the more radical Mozart.
And, naturally, I will also introduce them to the power of Unix scripting using, guess what, Ruby!
PS: I am assuming here that UoM will still exist in some weeks :-)
21 August 2007 @ 18:31: an update
I’ve just finished my first ever Masters-level course and it has been great! Now, I can go and have something nice to eat :-)
selven says
there are people who come to do their MSc in UoM! Even after the recent events!
Those who are doing that are definitely crazy :)
I wonder why you are still in that univ, you must also be crazy!
Val says
I hope it does exist until ma graduation ceremony!! lol!!
best of luck mate!!
Sundeep says
well well..
as usual..kan noune fini kitter ki ena changement..the PL lectures sound very much more interesting that the previous one..
i sincerely wish to b able to assist that..
anyways..
a bit too late now..
anyways
best of luck avinash..
Olivier says
How about Lisp for a functional language? Should you require cleaner syntax, you could go for Scheme. Haskell does sound cool, but might it not be a tad complicated for second year students?
I suggest the textbook Programming Language Pragmatics, Michael L. Scott. I recently received it and I can only say good things.
Software architecture was definitely in my top 10 favourite courses in university. Coupled with an “agile” development process, perhaps ICONIX which encourages modelling, going through a few iterations may show the benefits of a good architecture.
Yan says
Mozart sounds great! :)
avinash says
To Olivier:
I intend to introduce the students to the beauty of lazy functional language hence my choice of Haskell over LISP or Scheme. But, I also want to show then the power of (real) macros, therefore I may have to show them LISP or Scheme after all… And Scheme will allow me to use DrScheme… I have to think about that.
I own Programming Language Pragmatics and it’s great. I’ll have to read it more thoroughly to see where it might fit. Another great book seems to be Peter Van Roy’s book even though it favors Mozart.
To Yan:
Mozart seems to be great. I’ve not used it too much. I am ordering the book I’ve written about above…
selven says
hmm, am beginning to be happy that i got sick for the dbms paper and the pl&algo paper, since i got an incomplete in that paper, i shall have to follow that class next year :)
*enfin mo retirr seki monn dir about the getting sick part, i never get happy with that.
lol says
lol? sc meme mo pencor gagner
Dilraj says
Hello.
I’ve been lucky enough to follow the first classes. It was cool and has been a nice experience.
As usual, I love having a nice time in class and do my best to participate. I find it bizarre that students don’t participate and share ideas. Even if you’ve got a bad point, I think it’s nice. Like this, we’ll correct you.
But can’t blame anyone: is it because we all go to work that we feel sleepy or tired? Or is it that bizarre attitude of not participating in classes since a young age so that we don’t share our knowledge?
Anyway, I hope to get much an give much in exchange!
Dilraj says
Huh, BTW, mo ti mo casserol pou vine met ene ti l’ambiance, mais mone tender ki minif ti cancelled!
BlueBerry says
“Or is it that bizarre attitude of not participating in classes since a young age so that we don’t share our knowledge?”
Spot on Dilraj. Perhaps you remember our undergraduate CSE Group A classes. Any obvious resemblances? That’s what one of our cherished lecturers of ours once discussed one day: it’s only third world nations(no offence we’re criticising our country also) who think like that!
If it were the same as in the US, would we be studying programming right now?
Dilraj says
@ BlueBerry
To resume, we’ve been crafted for parrot learning (learning by heart), individualistic mode of living (I live for myself and think of my own good always, despite this may harm others), and rat-race competition at all levels (CPE exams, HSC scholarships, being first always in class).
So, then it’s guaranteed that we’ll always say “I don’t know” and “show me how to do it”, keeping in mind “I’m not going to tell you what I know” since “I don’t want you to know more than I do” and that “I should always perform better than you at exams”.
Well, I agree that some form of competition is nice and desirable at times, but this should not harm the principles of group learning, living as a member of society. Group learning should not mean “show me how you find the answer?” but rather concentrate on sharing of ideas towards solving the problem.