I wrote a summary report for the SI curriculum committee describing of how I saw the various technology courses in SI fitting together. I figured I would share the report more broadly to help students decide which courses to take.
In the future SI572 is likely to be renumbered SI672 – but for this post, I use the old numbering scheme.
Nothing here is official – it is just my own opinions.
These are the courses we have that are technical:
SI502 – Networked Computing: Storage, Communication, and Processing
SI502 is a very introductory course that is required for all students unless they pass the SI502 place out test. It is very much a survey course covering Python, Networks, HTML, CSS, Database, Search, and Security. The place out test insures that students with even a moderate amount of prior technical expertise bypass SI502. At this point about 1/5 of our incoming MSI’s bypass SI502. SI502 is taught at a very moderate pace and students have small discussion sections to insure everyone gets the attention they need to master the course material. SI502 is taught to about 140 students each Fall. There is a book “Python for Informatics” – www.py4inf.com written specifically for SI502.
SI539 – Design of Complex Websites
SI543 – Programming I
SI543 is a traditional “first programming class” in the Java language. While it starts “at the beginning”, it moves quickly through quite a bit of material with the students building desktop-style applications including simple graphics and real-time (i.e. game-like) interactions with their applications.
SI572 – Database Application Design
How these Four Courses Fit Together
SI502 and SI539 are designed as courses for people with little or no programming background. SI502 in particular is designed for students who are “nervous” about computing and technology. The pace of both courses is sufficiently slow to insure that we don’t lose students. After SI502, students should have a good understanding of programming and technology but not be independent programmers. By the end of SI539 they should be well on the way toward being an independent programmer. Both SI543 and SI572 expect that incoming students function at about the level that students at the end of SI539. It would not hurt to add a very suggestive loose pre-requisite to SI543 and SI572 that says “Suggest an introductory programming course like SI539 or equivalent”.
In this section, I show several paths taken through these courses by different types of students.
Just Starting out In Technology
These students come in dreading SI502 and we work very hard in SI502 to get them excited about technology enough to want to take SI539 at least. These students are the target audience of SI502 and we make that very clear. Their sequence is either:
SI502 -> SI539 (if they get a little confidence)
Solid Programing But No Web Experience
Some of our incoming students have a very narrow Computer Science background where they were not exposed to the web at all but are solid “pure-programmers”. They tend to place out of the SI502 course and start in SI539
SI539 -> SI572
Self-Taught Web Programmers on the Web
Some of our incoming students have little formal training in programming or their formal training was a long time ago, but they have been playing with web technologies all along but their knowledge is spotty and they want better coverage in terms of their skills. They also need to see how programming is done on desktops. There is usually no point in them taking SI539 – it is too easy and too slow to keep their interest.
SI572 -> SI543 (EIther order works actually)
Interest In Data Analysis
Sometimes students are uninterested in building web applications and just want to do data analysis.
SI502 -> SI601 -> SI618
Traditionally SI601 (Data Manipulation) and SI618 (Exploratory Data Analysis) have been perl courses because that is how the teachers in those courses had developed their assignments. But there is a possibility with someone new teaching these courses they might switch to Python. That would make them articulate nicely with SI502 – particularly given SI502 is very data-oriented and includes a module on regular expressions.
Skilled Web Master
These students start with SI572 and move through this set of courses:
SI520 – Graphic Design
SI572 – Database Applications
SI634 – Application Platform Configuration (Drupal)
SI635 – Application Platform Customization (Drupal)
SI658 – Information Architecture
This is a great set of courses that exposes the students to a wide range of applicable technologies and techniques.
Gaps and Opportunities
Given the demands and interests that I am hearing from the students in these classes, I get a sense there is a demand for these topics – we may only need 7 weeks on each topic:
– A course in mobile computing (Java/Android and/or Objective-C/Apple) is taught.
– A course where we cover advanced data manipulation – would help SI508, SI601, SI618 and similar courses get started in their topics with less remedial instruction in each course
– A course that combines Graphics and CSS to make sophisticated, gorgeous and functional web sites
Over the past four years, we have gotten to a pretty good understanding of our four core programming courses and where they fit in our curriculum to serve our entire range of MSI students that range from nervous beginners to students with computer science undergraduate degrees and work experience in web programming. Probably the biggest key fact is to understand the SI502 and SI539 are very different courses than SI572 and SI543. SI502 and SI539 are broad courses designed to gently build confidence and competency whereas SI572 and SI543 are real, solid programming courses that produce graduates with real programming skills relevant to the marketplace.