This is nothing new. Since course registration has had a web interface, there have been those who find the system clunky, inefficient, and useless for a wide array of situations, the least of which is registering for classes. I know at least 3 people in my grade level who have done the same thing. I've done the same thing. People before me have told me how they did the same thing. This is all at one university. The NYTimes is making these guys out to be heroes of programming and ingenuity, when this is almost a first step for a college/university programmer.
Did they share the program with other people? Why did 6+ people all rewrite the same program? Or did they have different specific uses?
From the first example of the article, it says that within the time span of one semester there were 8000 students who had used the software. In another example, the site used to compare courses at Berkeley now has over 50,000 registered users. Berkeley even paid them for the website afterwards because of the value they saw in it. They all produced something that lots of students use to solve problems/increase efficiency in academic life. That's not a trivial thing to do.
It's always encouraging to hear about schools like Stanford and Berkeley that are actually supportive of student-run initiatives like these. I just graduated from McGill University, and throughout most of my undergrad I was one of the admins of a website (wikinotes.ca) for sharing notes and other student-created course materials. We got little to no support from the administration, despite attempts at reaching out, and the only reason we knew that they heard about us was a mass email - filled with misinformation - sent out to profs warning them about us.
I know McGill's infamous for being especially bureaucratic, but it can't be impossible to get their support. Those who got their school's administration to support their project, what did you build and how did you do it?
I actually really enjoyed the article, and can relate: about a month ago, I started building openYorkU, a RESTful API for York University, because their data was not in any accessible format, and was just listed (in a .pdf). I thought student-made apps would work much better, and I should work on something all students can use.
Some examples of why it's useful; when looking for courses - there wasn't any way of searching. I couldn't just look for all first year courses, that are 3 credits, and in courses A, B, and C. I also couldn't find all the restaurants, still open beside me that serve coffee (all the data York provided was on a .pdf). With an API, this stuff is simple.
It's still a work in progress, and I haven't had much time to work on it lately, but if you're interested in checking it out: https://github.com/mlisbit/openYorkU-API . This article definitely encouraged me to continue on with the project. More Universities should have open data like University of Waterloo.
I wonder if any of these systems are accessible to the disabled. If your awesome mobile app to grab classes means that blind or motor-impaired students lose access, is that really an improvement?
To be fair, the original systems often are not very accessible for the disabled. My university uses peoplesoft and it's a steaming piece of shit. The blind/impaired are better off contacting the undergraduate office/registrar, which they often do (it is so much easier).
Interesting. I work at the University of California, and accessibility is a required element of any new campus-wide system. Many legacy systems lack accessibility, but that doesn't mean we don't improve them when new stuff comes out.
We do have a Disabled Students program, which provides a lot of help, but which is also expensive for the university.
In my small experience with my college, new systems are usually better than the old system for accessibility. The old systems are terrible, log you out every 5 minutes, separate systems with separate UI, markup, access etc. But you are correct we need to think about these issues.
I actually had a lot of luck creating such a timetable website[0] for NTNU in Trondheim, Norway. Initial version did hacky scraping, eventually I found a database, after the site site gained traction the IME Faculty (IT, Maths, Electrical engineering) got in touch about the site.
At this point they actually paid me to opensource the code and hired me to setup a copy for them. We never got their version to take off, as mine was to well established. So eventually we shut their instance down, and mine lives happily on despite the fact that I've long since left the university.
IME also did some great follow up putting quite a bit of effort in creating an API for "me". The problem was that the central IT services could only provide payed access to their WSDL based XML service. So IME basically payed them for access and then reexported it with their own API[1] + caching.
On a side note, most of the code[2], except for the importers should be generic enough to use at other schools :-)
I go to the University of Michigan, and there is a huge amount of fragmentation in IT services. APIs are out there, but it's tough to know where to go. A group I'm a part of is going to approach the right people to hopefully fix this.
The article links to a guidebook[0] of suggestions and best practices that was produced by student devs involved in such projects and who were brought together at a Campus Data Summit organized by GitHub.
[campusdata.org member here] - if you're working on something similar at your school and want to join forces, join the mailing list is at campusdata.org.
Love that my school (BYU) is used for the photo but we are not a member org yet. Joined the mailing list thanks for pointing that out, didn't know there was one.
I've done something similar, although not directly interactive to course registration and classes yet.
My university, West Virginia University, was granted a few hundred million dollars by the US DOT and President Nixon back in the early 1970s to create a Personal Rapid Transit (PRT) [0] system that would transport handfuls of students to and from the various campuses and other locations in the city. Built by Boeing and NASA JPL in the 70s, the overall system hasn't seen a large system overhaul since then. Because of that, it tends to go down often during the middle of the day, leaving students stranded at the various stations with no way to get to and from the various campuses for classes.
I, relying heavily on the PRT, built an app that monitors the PRT uptime status and alerts users [1]. This comes in handy all the time as it notifies students that the PRT is down typically before any announcements are ever made at the stations, allowing students to plan transportation ahead of time and catch the correct bus to the campus.
The app made it to my university's news [2], the city's student run newspaper [3], and I've gotten a few hundred users within the first week of operation.
The app is completely free and open source, written in Go [4] for the server logic and Java for the Android client [5]. And it also supports Android wearables and Google Glass. Please feel free to submit pull requests and issues as you see fit, I'm trying to improve the Go component's error handling, http.Client connections, and MongoDB database sessions/connections.
Unrelated to the PRT Status app, I'm planning on making a web app that allows students to register for courses in the view of a calendar. Currently, our registration system kinda sucks in that you have to write out course times and do somewhat intensive planning to make sure your proposed classes don't interfere with other class times. So my idea is to let the students choose the courses they need, and then the service will automatically generate multiple possible schedules in a week calendar view that shows block times and course registration numbers should they choose that schedule configuration.
You might be able to save some time by having Scheedule [0] add your school. It was created at UIUC, and I've found that it works very well. I know it provides some other functionality beyond class scheduling (via FB integration), but most people I know just use it to plan their schedule.
Edit: It looks like schools are added based on a voting/popularity system, which wasn't what I was expecting.
Edit 2: Classwhole [1] is another UIUC creation that's been open sourced [2] and might work for you.
Ha, that's interesting. I wrote a very similar "sniping" app (for myself not for others) back in 1999. Back then I had a Motorola pager (one of the large-screen fancy ones) and I could receive short messages via email. I wrote a (horribly constructed) Visual Basic app to check the course enrollments and report to me, in near real-time, when a class opened up.
I made a python script to do the similar thing(it actually register the course for user when there is spot) against University of Manitoba's Aurora student system. With modern browser automation tool this can be done easily :)
Ha, glad to see I'm not the only one that just constantly waited for somebody to drop the class I want to register in before getting alerted.
The problem with my University (Notre Dame) is that we have everything hooked up to the Banner system . . . which is terrible. Course Search is terribly designed and not user-friendly, along with the Course Registration system not being the best either, it's quite frustrating.
This has always happened, because it doesn't take a genius to create a class registration application better than the monstrosities that some horrible overpaid vendor managed to cobble together for a couple million dollars. If there's any change indicated by this article, it's that these schools aren't threatening legal action or expulsion to have them shut down.
I find comments like this funny. If this is the case why not go out and make those millions?
True, you do just say anyone can make something better, so perhaps it's a labour cost but then your comment doesn't make sense since the vendor is not overpaid.
The reality is these systems are huge, often not re-usable between institutions and you are vastly under estimating their complexity.
These students are usually just improving a very small part of very large system.
Which is cool, API everything and let students make better parts of systems where it counts. That would be my lesson.
> I find comments like this funny. If this is the case why not go out and make those millions?
Because marketing and sales don't simply boil down to having a superior product? You're making a strong market quality efficiency argument here that I'm pretty sure that you don't even agree with.
Also, I'm happy and well compensated in my own industry.
28 comments
[ 15.9 ms ] story [ 1465 ms ] threadFrom the first example of the article, it says that within the time span of one semester there were 8000 students who had used the software. In another example, the site used to compare courses at Berkeley now has over 50,000 registered users. Berkeley even paid them for the website afterwards because of the value they saw in it. They all produced something that lots of students use to solve problems/increase efficiency in academic life. That's not a trivial thing to do.
I know McGill's infamous for being especially bureaucratic, but it can't be impossible to get their support. Those who got their school's administration to support their project, what did you build and how did you do it?
Some examples of why it's useful; when looking for courses - there wasn't any way of searching. I couldn't just look for all first year courses, that are 3 credits, and in courses A, B, and C. I also couldn't find all the restaurants, still open beside me that serve coffee (all the data York provided was on a .pdf). With an API, this stuff is simple.
It's still a work in progress, and I haven't had much time to work on it lately, but if you're interested in checking it out: https://github.com/mlisbit/openYorkU-API . This article definitely encouraged me to continue on with the project. More Universities should have open data like University of Waterloo.
So I guess that in a sense, everyone is wrong.
We do have a Disabled Students program, which provides a lot of help, but which is also expensive for the university.
At this point they actually paid me to opensource the code and hired me to setup a copy for them. We never got their version to take off, as mine was to well established. So eventually we shut their instance down, and mine lives happily on despite the fact that I've long since left the university.
IME also did some great follow up putting quite a bit of effort in creating an API for "me". The problem was that the central IT services could only provide payed access to their WSDL based XML service. So IME basically payed them for access and then reexported it with their own API[1] + caching.
On a side note, most of the code[2], except for the importers should be generic enough to use at other schools :-)
[0]: http://ntnu.1024.no/ or http://ntnu.1024.no/2014/fall/adamcik/35/ for a sample timetable
[1]: http://www.ime.ntnu.no/api/
[2]: http://github.com/adamcik/plan
[0]: http://campusdata.org/guidebook/
My university, West Virginia University, was granted a few hundred million dollars by the US DOT and President Nixon back in the early 1970s to create a Personal Rapid Transit (PRT) [0] system that would transport handfuls of students to and from the various campuses and other locations in the city. Built by Boeing and NASA JPL in the 70s, the overall system hasn't seen a large system overhaul since then. Because of that, it tends to go down often during the middle of the day, leaving students stranded at the various stations with no way to get to and from the various campuses for classes.
I, relying heavily on the PRT, built an app that monitors the PRT uptime status and alerts users [1]. This comes in handy all the time as it notifies students that the PRT is down typically before any announcements are ever made at the stations, allowing students to plan transportation ahead of time and catch the correct bus to the campus.
The app made it to my university's news [2], the city's student run newspaper [3], and I've gotten a few hundred users within the first week of operation.
The app is completely free and open source, written in Go [4] for the server logic and Java for the Android client [5]. And it also supports Android wearables and Google Glass. Please feel free to submit pull requests and issues as you see fit, I'm trying to improve the Go component's error handling, http.Client connections, and MongoDB database sessions/connections.
Unrelated to the PRT Status app, I'm planning on making a web app that allows students to register for courses in the view of a calendar. Currently, our registration system kinda sucks in that you have to write out course times and do somewhat intensive planning to make sure your proposed classes don't interfere with other class times. So my idea is to let the students choose the courses they need, and then the service will automatically generate multiple possible schedules in a week calendar view that shows block times and course registration numbers should they choose that schedule configuration.
[0]: http://en.wikipedia.org/wiki/Morgantown_Personal_Rapid_Trans...
[1]: https://austindizzy.me/prt/
[2]: http://wvutoday.wvu.edu/n/2014/08/15/student-employee-develo...
[3]: http://www.thedaonline.com/news/article_c3405ca8-281b-11e4-8...
[4]: https://github.com/AustinDizzy/prtstatus-go
[5]: https://github.com/AustinDizzy/prtstatus-android
Edit: It looks like schools are added based on a voting/popularity system, which wasn't what I was expecting.
Edit 2: Classwhole [1] is another UIUC creation that's been open sourced [2] and might work for you.
[0] http://www.scheedule.com
[1] http://www.classwhole.com
[2] https://github.com/kryali/classwhole
http://www.aarongreenspan.com/authoritas.html
The problem with my University (Notre Dame) is that we have everything hooked up to the Banner system . . . which is terrible. Course Search is terribly designed and not user-friendly, along with the Course Registration system not being the best either, it's quite frustrating.
True, you do just say anyone can make something better, so perhaps it's a labour cost but then your comment doesn't make sense since the vendor is not overpaid.
The reality is these systems are huge, often not re-usable between institutions and you are vastly under estimating their complexity.
These students are usually just improving a very small part of very large system.
Which is cool, API everything and let students make better parts of systems where it counts. That would be my lesson.
Because marketing and sales don't simply boil down to having a superior product? You're making a strong market quality efficiency argument here that I'm pretty sure that you don't even agree with.
Also, I'm happy and well compensated in my own industry.
Luckily, they implemented their own auto-zen rolling wait list and notification system too.