General student aversion to reading and student approach to 'programming by searching the web for solutions' are commonplace observations in classrooms. For obvious reasons, these are detrimental to learning the fundamentals. The cost of textbooks (printed or electronic) as well as attitudes towards learning come together to create impediments that frustrate teachers, as well as employers. It is not uncommon to hear graduating students make statements such as "I am graduating with a computer science degree but I don't feel like I know how to program." [2]

The end of the academic year always leaves me with mixed feelings. On the one hand, there is the satisfaction in graduating another class of budding computer scientists. On the other, it is also a time of reflection: What worked? What needs more work? How is my classroom evolving? And so forth. I am writing this column at the end of an academic year aware that it will be published at the start of a new academic one. This column will, therefore, serve as a reminder to myself, and hopefully to the readers, of two observations from the past year(s) that will impact how I will teach and run my courses more effectively in the new year.

In the courses we teach, we ask students to purchase one (or more) texts for the course and we give out reading assignments for students to either review some classroom content, or augment it, or to prepare them for the next class. Alas, most students don't venture to do the readings we assign them. This, my first observation, happens to have a catchy internet meme:

TL;DR Too Long; Didn't Read

TL;DR is a student mindset that is increasingly prevalent in our classrooms. It should come as no surprise to the reader, I hope, that most students in your classes rarely do the assigned readings. A precursor to doing the reading is to have access to the text. Many students never purchase the required text(s). Affordability of the texts plays an important role here. In our college, we are required to make one or more copies of all required texts available in the library. But, who goes to the library anymore? I have also observed that students will purchase a used copy of an older edition; or, they will purchase, rent or, more likely, obtain by other means an electronic version of the text. With multiple online ordering options available these days one can also purchase a cheaper, international edition. Newer versions of popular texts, published as "Global Editions," carry the warning indicating the content of the text may differ from the original:

"This Global Edition preserves the cutting-edge approach and pedagogy of the original, but also features alterations, customization, and adaptation from North American version."

Interestingly, the issue of access can often be circumscribed by using freely available online learning materials. Many of our colleagues are using these in their introductory courses. However, failing to do the reading has more to do with individual motivation, commitment, learning attitudes, and styles. Asking students to undertake significant reading in a semester when they're also taking three or four other courses is a challenging proposition. 'Cycle stealing,' to use a computing metaphor, from the daily lives of 18–21-year-olds to do some reading is an almost intractable expectation. I know from informal observations that less than one-fifth of my students spend the amount of time expected outside the classroom each week on my course.

ins01.gif

If we were to forgo readings to augment and enhance learning, perhaps we should be focusing on learning and learning outcomes. When students do not read the content of what you might be trying to teach them, we can try to ensure that they at least are able to learn to write the programs that embody those concepts. Sure enough, most students do decently on most programming assignments. Perhaps they are doing just-in-time learning, or maybe they are getting by with assistance from teaching assistants and/or peers. More than likely they use another substitute for actual learning:

ins02.gif

Programming, for many of our students, begins with a Google/web search, followed by copy and paste (see tweet from [4]). If an electronic text is provided, then copy and paste is still the preferred methodology for writing code. Work on programming assignments typically begins with a scramble to search for a solution online. Searching for answers to programming problems invariably yields top hits on solutions posted at Stack Overflow. Never mind that about half the answers posted are often either incorrect, or misleading. Better answers offer links to actual reference manuals. But then you still must read the description. Unfortunately, as hip as our students may be to the trendiest internet memes, RTFM (read the manual) isn't one of them. And, we're back to where we started.

So how to bust the TL;DR and Stack Overflow habit?

Unfortunately, this is not an easy question to answer. I do believe that individual motivation and engagement plays a big role. Several in our community are using the flipped classroom model. However, that still leaves the responsibility for doing the reading to the students. Many of us give short quizzes to see if the students are keeping up with the materials. These do, to some extent, serve to remind students of the importance of doing their homework.

I have also observed that, when faced with impending graduation and the task of starting a career, many students do a whole lot of reading in preparation for their technical job interviews. Obviously, it would be futile to try and cram the past three years' worth of readings into a weekend of intensive readings. To prepare for technical interviews, students are not reading the texts we prescribed to them. If they ever bought (or rented) the texts, they no longer own them. Instead, numerous books are now available that promise to prepare you enough to "nail" or "crack" technical interviews. With titles like, Cracking the Coding Interview (now in its Sixth edition!) and Elements of Programming Interviews in Java, [1,3], etc. Whether these books work or not, or even if the students read them, you certainly see students clutching these while walking around the campus during recruiting season. Also, it should come as no surprise that most of these books essentially present the same core concepts we try to teach in our courses.

ins03.gif

Do we ever teach or provide an opportunity in our courses for students to find and learn to read the reference manuals? Often, we neglect to do that. It is important to recognize, even among ourselves, that knowing the core algorithms and data structures is different from knowing how to implement them. We need to be more deliberative about these distinctions and prepare our pedagogical plans accordingly. I have started holding closed-labs for my classes, including upper-level courses. In these labs, one can limit the use of web searches and teach them how to use online reference manuals for finding answers. This is an important skill. However, the model may not be feasible for large classes at many universities. But, integrating reference lookups during lectures also helps. Perhaps this might be a possible solution to break the Stack Overflow habit.

ins04.gif

We would like to believe that if our students undertake all the requirements for a computer science degree—take a dozen or more computer science courses, complete a capstone course in computer science, perhaps even do an internship or two along the way, participate in hackathons, and at the end have a better than passing grade point average—then they will be well on their way to becoming a computing professional. For many of them, there is proof in the knowledge that they have secured a well-paying job in the industry. And so, we can revel in graduation festivities, wish them all good luck, and bask in the satisfaction of another successful academic year and a job well done.

Dear reader, if you didn't TL;DR this column, thank you!

References

1. Aziz A., Lee, T-H, and Prakash, A. Elements of Programming Interviews in Java. Version 2.0.0. Self-published by authors. 2016.

2. Jovic. B. I'm graduating with a Computer Science degree but I don't feel like I know how to program; https://softwareengineering.stackexchange.com/revisions/43528/1 May 12, 2010. Accessed 2017 May 10.

3. Laakmann McDowell, G. Cracking the Coding Interview - 189 Programming Questions & Solutions. Sixth Edition. (Palo Alto, CareerCup, 2016).

4. @nixcraft Another thank you note for the degree in programming or CS. Twitter Tweet; https://twitter.com/nixcraft/status/851059153103593474. Accessed 2017 May 10.

Author

Deepak Kumar
Computer Science
Bryn Mawr College
Bryn Mawr, Pennsylvania 19010 USA
dkumar@brynmawr.edu

Copyright held by author.

The Digital Library is published by the Association for Computing Machinery. Copyright © 2017 ACM, Inc.

Contents available in PDF
View Full Citation and Bibliometrics in the ACM DL.

Comments

There are no comments at this time.

 

To comment you must create or log in with your ACM account.