Along with my first offering of CMPT 383, I just finished my 13th offering (!) of CMPT 470. I haven’t changed the backbone of the course much in that time: it mostly feels good to me, and other than moving with shifting web technologies, I haven’t felt the need to change the course style.
But now I’m taking a good hard look at the course. I still like the overall flow, but there are some things I want to change.
I did a survey of the current students to get some feedback, but they lack perspective, having just finished the course. I figure I can get some eyeballs from course alumni here and am looking for some more meaningful feedback.
Question 1: Weekly Exercises and Grading Scheme
When I did CMPT 383, I gave weekly exercises, thinking that they might feel a little bit hand-holdey for an upper-division course. Much to my surprise, they worked better there than they do in 120 and 165: more-senior students are in a much better position to appreciate the micro-lessons that the exercises encapsulate and better understand why they are helpful. It’s also a chance to give problems on everything, not just a few things in major assignments.
I have realized that I want to do weekly exercises in CMPT 470, replacing the three assignments. The problem is: the assignments are worth 30% of the course. The weekly exercises would receive minimal marking and feedback (likely marking scheme: 2=most/everything correct, 1=some stuff done, 0=little/nothing done). With that little “grading”, 30% is too much to give to them: 20% is more reasonable.
So, I have 10% of the final grade to reallocate somewhere. Any suggestions about where an extra 10% of weight should be distributed? (The old grading scheme is online.)
[To give you an idea, I’m imagining that some of the exercises will be like “learn these three important CSS techniques and use each to style this sample page”; “find security holes in this sample mini-app I have created for you”; “pick Rails/Django/whatever and do the tutorial on their site”; “deploy your tutorial code on your group’s web server”; “do something with jQuery”]
Question 2: Content
I have certainly done my best to keep with the times, and talk about new web-related topics as they have become relevant. But like I said before: the overall backbone of the course has remained the same.
Are there things that I should have spent more lecture time on than I did? Things that took up too much time?
I definitely want to move JavaScript stuff a little earlier in the course: it deserves to be at least a little more front-and-centre than it has been.
Question 3: Other Stuff?
I have a few other smaller tweaks in mind, and am open to other feedback.
In particular, I plan to (explicitly) open the technology evaluation to a wider array of technologies: JavaScript frameworks, databases. This past semester, I started to realize that the server-side frameworks (Django, Rails, Cake, …) are all fundamentally the same (at the depth that’s possible in the techeval). There are other pieces of technology that are more interesting choices at this point, and they might as well evaluate those.
I’m happy to take any half-baked thoughts on any of this here, or by email.
August 26th, 2010 at 4:30 pm
Hey Greg!
I like the idea of the small weekly assignments, but maybe you get them to do a a heavier assignment (much smaller than final one) as well to take that 10%.
I love the idea of teaching javascript early on. I also recommend teaching some html5 and css3 topics. I would suggest maybe adding a mobile web section as well. It is growing huge and that is the best course to teach it in. It would be an easy weakly assignment to add a mobile css to a site or something along those lines. I work with phonegap(www.phonegap.com) now and it is pretty much making a mobile website,(using css, html and javascript) throwing it into a native app to give it access to native features such as accelerometer, camera, etc. A small section for mobile would be really neat in cmpt470.
August 26th, 2010 at 4:43 pm
Question 1
With the extra 10% you could do a ‘midterm’ assignment that uses some/many/all of the concepts from the previous small assignents. Have a 2 week deadline, and then it will give your TA something to actually mark.
I love the idea of mini-assignments. For 307 Peters does a mini-quiz each week, and I found that to be a great way to learn and retain the material rather than one big midterm, I see mini-assignments to be the same sort of thing.
Question 3
LOVE the idea of opening up to other web techs. I think that it is a really great chance to dive into something a little more interesting, and besides, you’ll probably go crazy if you have to listen to another RoR/Django presentation.
August 26th, 2010 at 4:44 pm
Also serverside javascript http://nodejs.org/
August 26th, 2010 at 4:47 pm
Re: Question 1 – alternately, it could be like Communications classes and you could offer a ‘class participation’ mark. Each incident of sleeping, text, gaming, or otherwise being annoying loses 1%…
… I wish I could implement that in some of my meetings.
ALSO if you have any promising 4th year kids that want to stay in Vancouver, are technically talented, and looking for a Systems Analyst/Project Management type of job you should send them my way!
ALSO (this is getting epic, clearly I should just email you) I’ll be at the Career Fair doing a presentation at 5pm on Sept 21, you should come!
August 26th, 2010 at 5:50 pm
0.
1.
>> learn these three important CSS techniques and use each to style this sample page
Cascading is an oft poorly understood CSS technique.
2.
>> find security holes in this sample mini-app I have created for you
Somehow, I enjoy the thought of “I’ve posted your mark for this week at this web address. Currently, it’s a zero. I’m not going to change it. Perhaps you can?”
2. Some of the weekly exercises you’ve chosen are more involved and in-depth than others. “Find Security Holes in this Mini-App” or “Learn and demonstrate the following N CSS techniques” are both rich in outcomes that you can grade. If you plan well enough ahead, you can even automate some grading… maybe you can find your 10% in there somewhere.
3. As for content, your current deck is astonishingly complete. During your Javascript portion, you may consider briefly covering some of the new magic that HTML 5 is bringing to the table, like Video, or Canvas, or Offline Storage, or CSS3 features, or …
7. There is no 7.
9. For database stuff, make sure students know to use InnoDB, not MyISAM (if they’re using MySQL) – otherwise FK relationships can be defined but MySQL will not enforce them. This bit Benton in the ass and he’s still sore about it. Alternatively, just use PostgreSQL.
August 26th, 2010 at 7:11 pm
I’m sorry Curtis, but your point numbering is invalid: http://www.research.att.com/njas/sequences/index.html?q=0%2C1%2C2%2C2%2C3%2C7%2C9&language=english&go=Search
Feedback rejected.
August 26th, 2010 at 8:48 pm
As for the mobile development section.. well, when I was in 470, you had a Mobile guy come in and deliver a single-class on mobile web development, and even then I thought it was a bit too much time to devote to that.
The ‘mobile web’ is a clusterfuck of incredibly bad web browsers, and Safari for the iPhone. Mobile apps are all either iPhone-specific or ‘scaled way down’ to work on shitty IE and Blackberry browsers.
By the time people – and here I mean people, not early-adopters with more money than sense – actually start using mobile web applications regularly, the browsers will hopefully have caught up to the point where ‘mobile development’ is as oxymoronic as “IE6 development” is today.
Admittedly, I’m saying this from the perspective of a cranky dude with a flip-phone and a work-provided Blackberry.
August 27th, 2010 at 7:39 am
I love the idea of semi-weekly labs. These were a highlight of 383.
As far as some new technology: long polling (with something like Comet) would be interesting, as pushing content is starting to become fairly commonplace (Facebook, Twitter, etc).
Phil
August 27th, 2010 at 1:36 pm
When I speak of ‘mobile web’, I am not referring to the clusterfuck of incredibly bad web browsers. iOS/android/webOS/ and now blackberry 6.0 all have very sophisticated webkit based browsers which don’t suck. No one tries to surf on the web on their piece of shit little Motorola razor. (Blackberry’s are also pretty horrible though)
More and more companies are realizing how important it is to have a mobile website. Think about how many people surf the web on their phones and how shitty it is to go to a site that doesn’t support mobile. The mobile platform is the only thing common between all of these platforms. Why develop multiple times for different phones when you can develop once.
Blackberry’s have always been super shitty to develop for hopefully now with their new OS things change for them.
I personally think their is value in teaching about the mobile web and some of the techniques people can use to convert their websites to have a mobile version. We know that this field is just going to continue to grow as more and more smartphones hit the market.
I am a little biased since I work in the mobile industry. I just wanted to give some more points on where I was coming from.
September 1st, 2010 at 9:43 am
I agree that it’s important to talk about mobile sites. The small screen size will dominate usage, even with a “good” browser. I think the most important lesson for 470 is the way the small screens require a different site layout. The development technology is only useful to the extent that it encourages and enables developers to make good designs for small screens—which means designs that differ from those for large screens.
Sounds like Curtis is referring to hacks that make sites acceptable to current limited browsers. I agree that this is short-term stuff and doesn’t merit class time. But screen-size design issues will endure.
Bear in mind my biased perspective …
I agree with broadening the evaluation topics to more than server-side technologies. It’ll help the instructor avoid boredom.