course for STEM students other than Computer Science. (CS) major. Typical attendees are required to attend either CPSE or the Java-based first programming ...
Session F4G
Work in Progress - Using Graphical Programming to Contextualize a Conventional Programming Course Ali Jalal-Kamali, Eric Freudenthal ajalalkamali @miners.utep.edu, efreudenthal @utep.edu Department of Computer Science The University of Texas at El Paso Abstract – “Computer Programming for Science/ Engineering” (CPSE) is an introductory programming course for STEM students other than Computer Science (CS) major. Typical attendees are required to attend either CPSE or the Java-based first programming course of the CS majors’ sequence (CS1). The previous curriculum for CPSE was a traditional introductory programming course with chronically low enrollment despite less its substantially relaxed learning outcomes. Post-reform, CPSE has become a popular alternative to CS1. Pass rates in CPSE are substantially higher than both local and national pass rates for CS1 and equivalent courses, and in-class tests of CPSE students indicate that 70% satisfy the majority of CS1 outcomes, which exceeds the pass rate for most CS1 sections at our institution. While both CPSE and CS1 teach the Java language, CPSE integrates inductive teaching strategies developed by the second author’s iMPaCT program that exploit the relaxed syntax of the Jython language. Like immersive foreign language programs, lessons during the first half of the course exploit the relaxed grammatical requirements of a simpler programming language (Jython) to introduce programming concepts (semantics) incrementally in a conversational manner. These early lessons are motivated by accessible graphical problems that incidentally review foundational math concepts. “Computer programming for Science/ Engineering” is an introductory programming course for STEM students other than CS majors. While using iMPaCT techniques, this course benefits from deductive teaching techniques as well. Below are the reformed CPSE’s learning objectives: 1. Computational Thinking (CT). Students should be able to understand, modify, and design algorithms implementing computations that they understand. 2. Imperative Programming. Students should be competent at using scalar variables, arrays, controlflow constructs, user-defined methods, sorting, and raster graphics to solve problems.
3.
Miscellaneous programming concepts presented in motivated contexts such as object oriented constructs, exceptions and I/O.
The reformed course’s immersive discovery-learning pedagogy was adapted from the iMPaCT [5] “Media Propelled” introduction to “Computational Thinking” project. This pedagogy bares much similarity to conversational instruction of foreign language. From the first day of CPSE, students are engaged in the implementation, analysis, and modification of simple computational programs they fully understand. After a half hour survey of variables and algebraic expressions students are immersed in the implementation and examination of a simple iterative program that generates a line such as the program in Figure 1. Subsequent exercises focus student attention on foundational computational and imperative programing concepts by requiring students to modify the program in order to achieve qualitatively different outcomes such as raising or lengthening the generated line.
Figure 1. Program drawing y = 20 using summation
Figure 2. Generated image
978-1-61284-469-5/11/$26.00 ©2011 IEEE October 12 - 15, 2011, Rapid City, SD 41st ASEE/IEEE Frontiers in Education Conference F4G-1
Session F4G As in immersive language instruction, the selection of topics introduced early in the course is as important as the set of topics whose introduction is delayed. In order to focus student attention on computation, much syntactic and semantic complexity is delayed. For example, students who modify the line-drawing program of Figure 1 are not yet aware of variable types, function, and class definitions. Instead these concepts are introduce “just in time” in a highly motivated context. As illustrated by this first program, students are initially introduced to programming using the Jython language (a variant of Python) – which has the feature of permitting interactive evaluation of expressions and neither requiring function or variable declarations. This permits students to focus on the analysis of the computation rather than syntactic constructs irrelevant to the problem being solved. In this manner, the course immediately engages the students in computational thinking. Subsequent exercises lead students to discover principles underlying increasingly complex computations which motivate the introduction of more a variety of programming constructs such as functions, objects and exceptions. TRANSITION TO JAVA After programming in Jython for approximately nine weeks (of a fourteen week semester), the students are gently introduced to Java. By this time, students are familiar with imperative programming and computational thinking, and their initial Java programs implement algorithms they have previously implemented in Jython. This familiar context permits students to initially focus on differences between Java and Jython syntax.
Table 1. Fraction of Students Demonstrating Mastery of Skills (n=25)
Skill Simple iteration Variable declaration and assignment Interpret class definition Arithmetic expressions Instantiate objects Nested iteration Catch exceptions Modify a class definition Read from and write to console Modify a sorting algorithm Declare and use arrays Detecting errors in loops Appropriate use of comments Properly use if/else Invoke (call) a method Translate a Python program to Java Explicit type conversion Construct original (simple) program Correctly define return type Define method from abstract description
Fraction with competency 100% 100% 88% 80% 80% 72% 72% 68% 68% 68% 68% 64% 64% 56% 56% 56% 52% 52% 52% 44%
ACKNOWLEDGEMENT This report is based on work supported by the National Science Foundation through grants IIS-0829683 and DUE-0717877 and gifts from Texas Instruments Inc. and Calculex, Inc. Assistance in project planning and evaluation was provided by the NSF-BPC Computing Alliance of Hispanic Serving Institutions (CNS-0837556). Any opinions, findings, and conclusions or recommendations expressed in the paper are those of the authors and do not necessarily reflect the views of the NSF or other sponsors.
REFERENCES ENGAGEMENT VS. MOTIVATION Typical attendees are required to attend CPSE, and according to the surveys at the beginning of the semester, less than 10% of them are also interested in programming. However, they are very well engaged in the class, as they are highly challenged as well. Improvement in classparticipation, quiz grades, assignment submissions, increment in asking questions, coming to office hours, and doing the extra credits, present a high engagement of students. Also, the students who have taken CS1 before, admitted in their comments, that this course was more interesting and engaging while being challenging as well.
Eric Freudenthal, Alexandria Ogrey, and Rebeca Q. Gonzalez, “Eliciting Integrated Understandings of High School STEM Curricula Through Programming”, Proc. 40th ASEE/IEEE Frontiers in Education Conference, 2010. Eric Freudenthal, Mary K. Roy, Alexandria Ogrey, Tanja Magoc, and Alan Siegel, “MPCT – Media Propelled Computational Thinking”, Proc. Annual Symposium of the Special Interest Group on Computer Science Education (ACM SIGCSE), 2010. Eric Freudenthal, Rebeca Gonzales, Sarah Hug, Alexandria N. Ogrey, Mary “Kay” Roy, and Alan Siegel, “A Computational Introduction to STEM Studies”, Proc. ASEE Annual Conference, 2010. Python Software Foundation, “Python Language Reference”, 2010. [Online]. Available: http://docs.python.org/reference/ [Accessed: May 20, 2010]. “Media Propelled” introduction to “Computational Thinking” project (iMPaCT) [Online]. Available: http://www.cs.utep.edu/impact
LEARNING OUTCOMES The left column of Table 1 enumerates skills measured by test instruments during the Spring 2011 section of CPSE. The right column of this table indicates the fraction of students who demonstrated mastery of each skill.
978-1-61284-469-5/11/$26.00 ©2011 IEEE October 12 - 15, 2011, Rapid City, SD 41st ASEE/IEEE Frontiers in Education Conference F4G-2