Implement placement tests for coding courses

Tenley Jackson, Columnist

Coding can be described as a form of literacy. Different coding ‘languages’ translate tasks to be processed by computers. Introduction to Computer Programming courses, required for most engineering and natural science majors at UT, teach students a variety of languages from MATLAB to Java, similar to spoken language classes like Mandarin and Spanish. 

For traditional language courses at UT, placement tests are used “not only to determine the level of work appropriate for students but also as the basis for credit by exam.” Despite the way that coding parallels language, the same standard is not applied to introductory programming courses, leaving students with stratified skill levels crowded into one ‘beginner’ group. 

For students with no computing background, this can be intimidating and stressful; for students with proficiency beyond their placement, a semester of learning is wasted. You wouldn’t place a fluent Spanish speaker in a first-year Spanish course. Likewise, why would you place a proficient programmer in the same class as absolute beginners?

It just doesn’t make sense. Max Wiesenfeld, a computational engineering freshman, came to UT with several years of coding experience including coursework through Columbia University, a 5 on the AP Computer Science A test and a full-time programming job. 

“I was not allowed to skip COE 301, which was a little ridiculous.” Wiesenfeld said. “I was informed that regardless, I would not be able to switch out, that all COE (computational engineering) students were required to take this course.”

For professors, teaching a class with large disparities in student background poses its own challenge. Coding is not a common high school requirement in Texas, so the level of familiarity across students varies dramatically. 

“That’s kind of the main struggle for this class,” said introductory computing professor Ann Chen. “People may assume the intro level coding class should be easy, but terminology is pretty tough, mostly because you’ll have to pay attention to the fact that students are coming in with different backgrounds.” 

Dr. Chen described the bimodal split: experienced students become bored, and beginner students play a stressful game of catch-up.

“What I have observed is that in my class, perhaps 40% or 30% have absolutely no coding background, and then there are 40% of students who get bored; and then there’s another 10% who get super bored, who didn’t feel like they learned anything at all,” Chen said. 

There’s an argument to be made that higher skill level computing students shouldn’t complain about an ‘easy A’, but a course designed to start students from scratch just isn’t helpful to this group. When half the class is unstimulated, it becomes ineffective. UT should allow these students to test into the class best-fit for their skill level, 

In contrast, beginner students have a steep climb ahead. Sabrina Skolnick, an aerospace engineering freshman, started COE 301 with zero coding background and found herself comparing her work to classmates with more experience. 

“Obviously, they’ve had a lot more practice with problems, and this isn’t new to them. I had to put a lot more work into the classes to make up for that difference,” Skolnick said.

Time spent on the coursework is massively different across student skill levels, presenting a challenge for both students and professors.

While some skill variance should be expected in courses like computer programming, adjustments must be made to avoid a one-size-fits-all curriculum. 

Placement exams for programming classes just make sense. Coding languages are just that — languages — and prior fluency matters in the classroom. UT should recognize this stratification of incoming student skill levels and adjust for it, just as they do for traditional language courses. 

Jackson is a Plan II and journalism first-year from Boerne, Texas.