On increasing enrollment of computer science courses
Published: Tuesday, February 4, 2014
Updated: Tuesday, February 4, 2014 06:02
On Jan. 28, 2014 The Tufts Daily published an article on the computer science department struggling with course over-enrollment, and having been a teaching assistant I want to provide the graduate student perspective. My name is Michael Shah and I’m in the Ph.D. program in the computer science department.
I will define what a graduate student is, as we are often are confused with being professors (which I enjoy) or being an undergrad (which is a compliment to our eternal youth and charm.) The mysterious people (i.e. graduate students) you see wandering late at night in Halligan Hall have completed a bachelor’s degree and are pursuing a master’s or Ph.D. A degree at the Ph.D. level extends beyond coursework, and your primary focus is to research an area of computer science so well that you are the world’s expert on that topic. You earn this degree if you want to perform research in the industry or enter the field of academia. The key to securing a job is to perform stellar research. “Stellar research,” how about being a “stellar teaching assistant?”
Unfortunately, being a “stellar teaching assistant” is not enough to grant you a Ph.D. and send you into the workforce. Graduate students are funded as either teaching assistants or as research assistants. This funding gives us a small stipend and tuition remission. When we are teaching assistants in computer science, our responsibilities can include holding office hours, grading, teaching a lab, hosting review sessions, attending class, answering e-mail, moderating a forum and assisting the professor. The hours certainly add up. (We honestly would grade and return homework faster if we could!) When you are funded as a research assistant, you sit yourself down, stretch the fingers out a little and research intensely on a very hard problem.
The graduation timeframe equation is hereby presented. If X time is allocated to teaching assistant duties, X time must be deallocated from research, adding X time until we graduate. (A plug for my former Computer Science 15 students: remember if you allocate anything, you should always check to deallocate it as well.) The increasing enrollment in computer science classes means the time spent with each teaching duty grows at least linearly in the average case with regards to how many students exist in the class. (One hopes the average case time complexity of adding another student does not make this time exponential!)
With the above equation in mind, you should not be surprised when you see a graduate student dazedly wandering Tufts beyond a reasonable hour (i.e. after Brown and Brew closes, or maybe that is a reasonable hour? Anyway.) However, let me tell you in my two and a half years at Tufts I am charged up with the enthusiasm the undergraduate population has for computer science! I have been in courses large and small, lower level and upper level, and the students have always been hungry for knowledge. So bring on the students — but to you, students, come for the right reasons.
To the set of all undergraduates who want to major in computer science: What will continue to make our department successful and give you the greatest educational outcomes is for you to really learn to fall in love with computer science. Computer science courses are very difficult — starting with the introductory course. The ability to reason through a problem and then implement it one step at a time on a machine (a very dumb machine) is a skill that needs to be constantly practiced. You are going to have to work hard! And if you work hard, we are willing to take the time to help you through the entirety of your journey (and beyond!)
To the set of all undergraduates who heard it was cool to take computer science courses: I think it’s fantastic so long as your motivation is to understand computers, write software/apps, develop computational thinking skills and prepare for the “Internet of Things” (whatever that is). Rarely have I seen hard working students who want to add a skill outside of their comfort zone be dissatisfied with their experiences. It makes us graduate students warm and fuzzy inside when we see you succeed. We want you to take your computational skills and apply them in fields like biology (do robo-bees sound cool? Google it), chemistry, physics, classics, photography, origami or somewhere we would not imagine a beneficial intersection to the world. (Plug for myself, I am open for such collaboration — the crazier the better.)
To the set of undergraduates who want an “A” or to avoid another dreadful course: If you’re trying to dodge a course, I hope computer science will surprise you. I have heard tales of undergrads who switched to computer science during their senior year and loved it. You might get lucky by trying something new, but if you don’t, you should be prepared for long hours at the lab. If you’re just trying to get an “A” I can always can sense it. I encourage my students to fight for their points, because I think it makes you think about the assignment for at least that much longer (a little sneaky teacher trick). Then again, I do not care what grades you get. Having computer science on your transcript is only useful if you truly understand the science. I think there are other wonderful courses at Tufts you could spend your time on and earn top marks in.
To the faculty in the computer science department: keep up the good work, we’ll try to help the best we can. The more efficient job we do in assisting with teaching duties, the more time we can spend as a department doing research. We want Tufts to be the best research school in our respective areas! Inverting classrooms, grading projects with students and using resources like Piazza are all solid moves that help save everyone time (even while allowing for bigger enrollments) and make being a teaching assistant a more interesting role than just grading alone at a desk.