June 15, 2019
June 15, 2019
June 19, 2019
Computers in Education
Computer programming is a highly useful skill with significantly growing demand in the technology-based trend of science and engineering fields. Nevertheless, teaching and learning programming has always been a challenge for both educators and students of all levels. The differences between expert versus novice programmers, and knowledge versus strategy approach investigated in the literature [1-3] are among the reasons behind the foregoing challenge in education of programming. Many studies have thus far investigated challenging topics in programming from both students’ and educators’ perspective , and have introduced different approaches such as “syntax-free”, “literacy”, and “problem-solving” to address those issues . However, taking short breaks from computers and practicing the knowledge of programming “on paper” can substantially improve students’ learning experience with various topics of programming, particularly basic concepts such as loops, arrays, and recursion.
In our sophomore-level Biomedical Computing course ([…] course number de-identified for the purpose of double-blind review), we integrated a “programming without computer” approach into teaching MATLAB programming in biomedical applications. Many students in our class, as discussed in the literature , had issues with basic concepts such as variables, selection structures, and loops, mostly not being able to predict the output of a given program. Hence, we required the students to complete in-class assignments without using MATLAB, and write down the output of a very short program with MATLAB syntax on a piece of paper. These short programs were thoughtfully designed by the course instructor, each addressing a specific detail in using a single concept such as loops. For each program, the students were given a few minutes to write down their responses, with the course instructor and teaching assistants walking around the class and helping those who were struggling with the problem. The same approach was also incorporated in short quizzes in the beginning of each session. For each quiz, a free game-based learning platform (http://kahoot.com) was used to display three multiple-choice questions on the screen for all students, asking them to use their cell phones as response remotes and participate in the quiz. Each question consisted of a very short program followed by multiple choice potential outputs . The students were required to go through each program and select the single correct “program output” in 30 to 60 seconds (depending on the complexity of the question) without using MATLAB.
Many students provided positive feedback in the course evaluations regarding the “programming without computer” approach and short quizzes. Since using cell phones are typically forbidden during class time and exams, allowing students to use their cell phones as response remotes broke the routine of the class, and made students excited to take the quiz: a rare behavior observed among students in educational settings that should be taken into account by educators.
The proposed approach agrees well with previously introduced techniques for teaching programming. A multitude of students -mostly novice programmers- memorize sections of code as templates and try to “plug and chug” those templates into different programs without realizing the fundamental syntax and formulation differences. This method encourages students to ponder upon each and every question separately, and unconsciously avoid forming mental patterns in programming. Consequently, students will learn the fundamentals of each programming concept in depth, before getting involved with numerous details of syntax. This technique can be also incorporated into exam questions to evaluate students’ performance in a more inclusive fashion. Due to the qualitative nature of this study, no data was recorded for statistical analyses. However, an improved study design with control groups will be incorporated in the future to more quantitatively investigate the effect of this technique on students’ performance and learning experience in computer programming.
 Robins, Anthony, Janet Rountree, and Nathan Rountree. "Learning and teaching programming: A review and discussion." Computer science education 13.2 (2003): 137-172.  Winslow, Leon E. "Programming pedagogy—a psychological overview." ACM Sigcse Bulletin 28.3 (1996): 17-22.  Davies, Simon P. "Models and theories of programming strategy." International Journal of Man-Machine Studies 39.2 (1993): 237-267.  Milne, Iain, and Glenn Rowe. "Difficulties in learning and teaching programming—views of students and tutors." Education and Information technologies 7.1 (2002): 55-66.  Fincher, Sally. "What are we doing when we teach programming?." fie. IEEE, 1999.
Rezvanifar, S. C. (2019, June), Programming Without Computer: Revisiting a Traditional Method to Improve Students’ Learning Experience in Computer Programming Paper presented at 2019 ASEE Annual Conference & Exposition , Tampa, Florida. 10.18260/1-2--33200
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: © 2019 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