June 12, 2005
June 12, 2005
June 15, 2005
10.1235.1 - 10.1235.12
Teaching the Programmer’s “Bag of Tricks” Brian J. Resnick, P.E. University of Cincinnati
Prior to entering academia, the author provided supplemental programming education to the new hires for a manufacturer of an embedded system application. Over a twenty year period, he observed the skill set of graduates from a variety of educational institutions, and discovered that they understood the syntax but were unable to conceive or express a solution to many of the problems at hand. They had limited exposure to the problem-solving techniques of the programmer.
This paper presents an approach for teaching programming that evolved from the experiences of enabling those new hires to perform their job. It describes how to prepare to learn a language, presents visualization techniques and problem assignments that take a student from zero to full- speed, and concludes with a series of programming axioms and background information that is essential to every programmer. The author applied this approach to one course of Data Structures in C++ for third-year students who had previously received one or two courses in other programming languages. Selected comments from a survey of the students are included.
Computing Curricula 2001 , a joint task force report from the Computer Society of the Institute for Electrical and Electronic Engineers and the Association for Computing Machinery, describes six different strategies for teaching introductory computer science. The two most widely used are the traditional Imperative-first paradigm and Objects-first, the rapidly growing approach that emphasizes objects and object-oriented design. Both place programming first and start the student with a mainstream general-purpose language.
For each strategy, Curricula 2001 provides a guideline for a two-course sequence, but strongly suggests their three-course curriculum because “the two-course sequence is no longer sufficient to cover the fundamental concepts”. Two or three courses may be the recommendation, but the reality is, as Hankley  notes, that most engineers receive just one service course wherein they learn the syntax of a language.
This limited and language-centric education results in today’s engineer, someone who can cause a program to print “Hello World”, count to ten in a loop, and sum the elements of an array, but who does not know when to use an array or what to put into the array to solve a problem.
There are two problems: one is the single course limitation, and the second is the content. Piper, Castle, Fuller and Awyzio  address the second problem by proposing a hybrid approach to the core curriculum for the University of Wollongong, which combines the Imperative-first and
Proceedings of the 2005 American Society for Engineering Education Annual Conference & Exposition Copyright © 2005, American Society for Engineering Education
Resnick, B. (2005, June), Teaching The Programmer's "Bag Of Tricks" Paper presented at 2005 Annual Conference, Portland, Oregon. 10.18260/1-2--14592
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2005 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015