Covering Programming Language Syntax With Reading Assignments, A Failed Experiment?

Similar documents
Just in Time to Flip Your Classroom Nathaniel Lasry, Michael Dugdale & Elizabeth Charles

Improving Conceptual Understanding of Physics with Technology

WHY SOLVE PROBLEMS? INTERVIEWING COLLEGE FACULTY ABOUT THE LEARNING AND TEACHING OF PROBLEM SOLVING

HCI 440: Introduction to User-Centered Design Winter Instructor Ugochi Acholonu, Ph.D. College of Computing & Digital Media, DePaul University

PSYCHOLOGY 353: SOCIAL AND PERSONALITY DEVELOPMENT IN CHILDREN SPRING 2006

University of Waterloo School of Accountancy. AFM 102: Introductory Management Accounting. Fall Term 2004: Section 4

AC : DEVELOPMENT OF AN INTRODUCTION TO INFRAS- TRUCTURE COURSE

Required Texts: Intermediate Accounting by Spiceland, Sepe and Nelson, 8E Course notes are available on UNM Learn.

Albright College Reading, PA Tentative Syllabus

A Hands-on First-year Electrical Engineering Introduction Course

ECON 365 fall papers GEOS 330Z fall papers HUMN 300Z fall papers PHIL 370 fall papers

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

MATH 205: Mathematics for K 8 Teachers: Number and Operations Western Kentucky University Spring 2017

Promoting Active Learning in University Classes

Course Content Concepts

MATH 1A: Calculus I Sec 01 Winter 2017 Room E31 MTWThF 8:30-9:20AM

Integrating simulation into the engineering curriculum: a case study

Data Structures and Algorithms

Office Hours: Mon & Fri 10:00-12:00. Course Description

Changing User Attitudes to Reduce Spreadsheet Risk

COURSE DESCRIPTION PREREQUISITE COURSE PURPOSE

Copyright Corwin 2015

Physics 270: Experimental Physics

EEAS 101 BASIC WIRING AND CIRCUIT DESIGN. Electrical Principles and Practices Text 3 nd Edition, Glen Mazur & Peter Zurlis

High School to College

12-WEEK GRE STUDY PLAN

Firms and Markets Saturdays Summer I 2014

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

Course Syllabus p. 1. Introduction to Web Design AVT 217 Spring 2017 TTh 10:30-1:10, 1:30-4:10 Instructor: Shanshan Cui

Course Policies and Syllabus BUL3130 The Legal, Ethical, and Social Aspects of Business Syllabus Spring A 2017 ONLINE

Faculty Feedback User s Guide

University of Pittsburgh Department of Slavic Languages and Literatures. Russian 0015: Russian for Heritage Learners 2 MoWe 3:00PM - 4:15PM G13 CL

ASTR 102: Introduction to Astronomy: Stars, Galaxies, and Cosmology

Process to Identify Minimum Passing Criteria and Objective Evidence in Support of ABET EC2000 Criteria Fulfillment

Designing a Computer to Play Nim: A Mini-Capstone Project in Digital Design I

School Leadership Rubrics

Foothill College Summer 2016

Evaluation of a College Freshman Diversity Research Program

Course Specifications

CLEARWATER HIGH SCHOOL

REPORT ON CANDIDATES WORK IN THE CARIBBEAN ADVANCED PROFICIENCY EXAMINATION MAY/JUNE 2012 HISTORY

State University of New York at Buffalo INTRODUCTION TO STATISTICS PSC 408 Fall 2015 M,W,F 1-1:50 NSC 210

Student Perceptions of Reflective Learning Activities

CIS 2 Computers and the Internet in Society -

Many instructors use a weighted total to calculate their grades. This lesson explains how to set up a weighted total using categories.

CS Course Missive

Instructor Experience and Qualifications Professor of Business at NDNU; Over twenty-five years of experience in teaching undergraduate students.

Carolina Course Evaluation Item Bank Last Revised Fall 2009

Leveraging MOOCs to bring entrepreneurship and innovation to everyone on campus

ACC : Accounting Transaction Processing Systems COURSE SYLLABUS Spring 2011, MW 3:30-4:45 p.m. Bryan 202

COURSE WEBSITE:

University of Massachusetts Lowell Graduate School of Education Program Evaluation Spring Online

STA2023 Introduction to Statistics (Hybrid) Spring 2013

Communication Studies 151 & LAB Class # & Fall 2014 Thursdays 4:00-6:45

BSM 2801, Sport Marketing Course Syllabus. Course Description. Course Textbook. Course Learning Outcomes. Credits.

Physics XL 6B Reg# # Units: 5. Office Hour: Tuesday 5 pm to 7:30 pm; Wednesday 5 pm to 6:15 pm

Syllabus - ESET 369 Embedded Systems Software, Fall 2016

Extending Learning Across Time & Space: The Power of Generalization

Cleveland State University Introduction to University Life Course Syllabus Fall ASC 101 Section:

Number of students enrolled in the program in Fall, 2011: 20. Faculty member completing template: Molly Dugan (Date: 1/26/2012)

Language Acquisition Chart

Instructor: Matthew Wickes Kilgore Office: ES 310

Spring 2014 SYLLABUS Michigan State University STT 430: Probability and Statistics for Engineering

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

National Survey of Student Engagement at UND Highlights for Students. Sue Erickson Carmen Williams Office of Institutional Research April 19, 2012

Students Understanding of Graphical Vector Addition in One and Two Dimensions

Class Meeting Time and Place: Section 3: MTWF10:00-10:50 TILT 221

Alabama A&M University School of Business Department of Economics, Finance & Office Systems Management Normal, AL Fall 2004

RM 2234 Retailing in a Digital Age SPRING 2016, 3 credits, 50% face-to-face (Wed 3pm-4:15pm)

INTRODUCTION TO DECISION ANALYSIS (Economics ) Prof. Klaus Nehring Spring Syllabus

BUS Computer Concepts and Applications for Business Fall 2012

Required Materials: The Elements of Design, Third Edition; Poppy Evans & Mark A. Thomas; ISBN GB+ flash/jump drive

ITSC 1301 Introduction to Computers Course Syllabus

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

Pre-AP Geometry Course Syllabus Page 1

Undergraduates Views of K-12 Teaching as a Career Choice

Shank, Matthew D. (2009). Sports marketing: A strategic perspective (4th ed.). Upper Saddle River, NJ: Pearson/Prentice Hall.

PBHL HEALTH ECONOMICS I COURSE SYLLABUS Winter Quarter Fridays, 11:00 am - 1:50 pm Pearlstein 308

Worldwide Online Training for Coaches: the CTI Success Story

CONCEPT MAPS AS A DEVICE FOR LEARNING DATABASE CONCEPTS

COMS 622 Course Syllabus. Note:

STRATEGIC LEADERSHIP PROCESSES

Student-led IEPs 1. Student-led IEPs. Student-led IEPs. Greg Schaitel. Instructor Troy Ellis. April 16, 2009

MAT 122 Intermediate Algebra Syllabus Summer 2016

Psychology 101(3cr): Introduction to Psychology (Summer 2016) Monday - Thursday 4:00-5:50pm - Gruening 413

AC : DESIGNING AN UNDERGRADUATE ROBOTICS ENGINEERING CURRICULUM: UNIFIED ROBOTICS I AND II

Connect Mcgraw Hill Managerial Accounting Promo Code

BIOH : Principles of Medical Physiology

CWSEI Teaching Practices Inventory

A STUDY ON THE EFFECTS OF IMPLEMENTING A 1:1 INITIATIVE ON STUDENT ACHEIVMENT BASED ON ACT SCORES JEFF ARMSTRONG. Submitted to

Photography: Photojournalism and Digital Media Jim Lang/B , extension 3069 Course Descriptions

The SREB Leadership Initiative and its

MGMT 479 (Hybrid) Strategic Management

AST Introduction to Solar Systems Astronomy

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

George Mason University Graduate School of Education Program: Special Education

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

Algebra Nation and Computer Science for MS Initiatives. Marla Davis, Ph.D. NBCT Office of Secondary Education

NCEO Technical Report 27

Transcription:

Covering Programming Language Syntax With Reading Assignments, A Failed Experiment? Thomas Murphy 1 Abstract Introductory Computer Science courses are often taught using object-oriented programming languages such as C++ and Java and computer aided design tools such as Microsoft s Visual Studio and Borland s JBuilder. This can result in extensive course coverage of programming language syntax and software use at the expense of Computer Science concepts. An attempt was made at having students learn programming language syntax through their reading assignments. This was to avoid spending the increasingly large amount of class time covering the volume of syntax associated with object-oriented programming languages. Introduction Many students, including engineering and science majors, will only take a single formal course in Computer Science, thus it is important that they are exposed to some of the important concepts in Computer Science (Shackelford, Shackelford and LeBlanc). Spending an appropriate amount of time covering important Computer Science concepts has becomes increasingly difficult when the introductory course involves a complex programming language and a sophisticated software development tool. It is easy for introductory Computer Science courses to become courses in programming language syntax or programming in a specific language. A brief survey of some commonly used introductory programming texts (Deitel and Deitel 2001, 2002, Liang) illustrates just how much syntax and software use is commonly encountered in introductory programming courses. For example, approximately 20 pages of chapter 1 in (Liang) cover how to create a standard print welcome program using JBuilder and approximately 10 pages of chapter 2 in (Deitel and Deitel, 2002) to do the same using the command line. The mentioned textbooks are popular textbooks for introductory programming classes. They do a good job of covering syntax and have a lot of sample programs. Since many textbooks do a good job of explaining syntax and provide examples of the use of the syntax, students should be able to learn at least some programming language syntax through a combination of reading their textbook and looking at program examples (this is how many experienced programmers learn new programming languages). An attempt was made at having students learn some of the programming language syntax necessary for an introductory programming course through their reading assignments. This was done to avoid spending the increasingly large amount of class time covering the volume of syntax associated with object-oriented programming languages. The intended benefit was to free up more class time for emphasizing Computer Science concepts. 1. Associate Professor of Engineering, School of Computing, Armstrong Atlantic State University, 11935 Abercorn Street, Savannah, GA 31419-1997, E-mail: tommurphy@ieee.org 1

This paper summarizes the experiences of teaching several introductory programming courses, specifically covering programming language syntax during class time versus encouraging students to learn the programming language syntax through their reading assignments. Goals and Methodology Previously, the author had covered a significant amount of programming language syntax (C++) in introductory programming courses. This was considered necessary due to the complexity of objectoriented languages such as C++ and JAVA. The primary goal of this work was to move coverage of some of the programming language syntax to reading assignments thus freeing up class time for Computer Science concepts such as: algorithm development, problem solving, program development, and code modification and reuse. A secondary goal was to illustrate to students that they could learn technical material on their own through reading the textbook. Reading and understanding technical material from books/journals is an essential part of life-long learning. Formally having students learn programming language syntax via reading assignments was initially tried in an introductory C++ programming class during the spring of 2001. The course is 4 credit hours, meeting 3 hours a week for lecture and 2 hours a week for lab. The class was predominantly made up of freshman and sophomore Computer Science and Computer/Electrical Engineering majors. The course was taught using C++, Microsoft s Visual Studio, and Ford and Tropp (Ford and Trop 1999) as the textbook. At the time, the Deitel and Deitel textbook (Deitel, 2001) was used in the second programming course. Students were strongly encouraged to also purchase this book. In subsequent semesters the Deitel and Deitel textbook (Deitel, 2001) was used for this course. The class was clearly told at the start of the semester (and periodically reminded when it appeared they were not reading) that much of the syntax details would not be covered in class and that they were responsible for learning this through reading the text. The course syllabus given to students at the beginning of the semester and available via the course web site contained a detailed weekly schedule of topics and reading assignments. In addition, at the beginning of each week daily topics and reading assignments were posted on the course web site. This was considered necessary to remind students of their reading assignments and to account for times when the course did not exactly follow the outline in the syllabus. Since less syntax was to be covered in class, a way of encouraging textbook reading to learn the syntax was necessary. Several good methods of encouraging textbook reading without sacrificing student homework effort are suggested in (Gray). Briefly, the reading summary (RS) method involves having a randomly selected team of students summarize the days reading assignment at the beginning of class. The problem summary (PS) method involves a randomly selected team of students summarize one of the homework problems. The combination of these was used by Gray to encourage textbook reading. His classes consisted of 4-6 teams of 2-3 students each. The courses ranged from freshman to senior level. As many introductory programming courses have a much higher enrollment than this (my courses are usually 25 30 students) and do not use teams an alternative to the RS method was sought. Two methods of encouragement/punishment were used to encourage students to complete the reading assignments. It was hoped that a combination of unannounced quizzes and in class assignments would be enough to encourage students to complete the reading assignments. Students were told at the beginning of the semester (and periodically reminded) that they would have unannounced quizzes and class work covering their reading assignments. The quizzes and class work were designed to be fairly easy if the reading assignment had been performed and as the case in (Gray) were made a significant percentage of the final grade (20%). The quizzes/work were given approximately once a week. 2

A variation of the problem summary (PS) method was already being used in my programming courses and is a fairly common teaching method in programming courses. Specifically project solutions and other examples were discussed in detail usually by the instructor but occasionally by students. This was done to illustrate design process, algorithm and program development, and as a side benefit some syntax was covered. In addition, some of the more complex C++ syntax, such as creating objects, was specifically covered in class. Expectations and Results It was expected that there would be initial resistance to the idea of learning programming language syntax through reading assignments, specifically that this would be perceived as extra worked required by the instructor of this particular section. Students often expect that everything they should learn will be specifically covered in class. Class time was specifically set aside at the beginning of the semester for catch up so as to leave time to cover some syntax if it became necessary. Once students got used to the idea and realized that a significant portion of their grade depended upon quizzes/work based on the reading, it was expected that they would perform the reading assignments more diligently and the catch up time could be used for additional programming examples. Assessment of whether the reading assignments were being completed was accomplished via the quizzes/class work (served dual use as both encouragement and assessment), through instructor observations, and through a written survey given during the last week of class. The survey can be found in the Appendix. In addition, some anecdotal information of whether the reading was completed is discussed. The sections quiz/class work average was 5.4 out of 10 with only one student achieving a quiz average above 9/10 and the next highest being just above 8/10. Recall, the quizzes and class work were designed to be fairly easy if the reading assignment was done. I had expected an average of around 8/10. For comparison, the class s project average and lab average were both around 7.5/10 and nine students had project averages exceeding 9/10. From this, one can infer that the students did not take the quizzes and thus the reading assignments very seriously. The results of the written surveys were surprising. 16 out of 20 students completed the survey (7 dropped before the survey was given). The self reported GPA of these students was 2.9/4.0 and 14 of the students were either Computer Science or Engineering majors. When asked if they performed the reading assignments, 6 answered yes and 11 answered no (rarely, barely etc were included in nos). When asked to list up to three of the most helpful things in learning course material, lab work was mentioned most often followed by posted program examples. Class lectures and projects tied for third. Specific ratings (averages) of helpfulness of various course materials (from 0 to 3 with 3 being most helpful) are summarized in Table 1 (column labeled reading section). Another section of the same course taught by a different instructor was used for comparison. This section covered the same topics in a similar manner except that more syntax was explicitly covered during class time and reading assignments were not as strongly emphasized. Similar projects and exams were given, and the final grade distributions of both sections were similar. 17 out of 24 students completed the survey (7 dropped before the survey was given). The self reported GPA of these students was 3.2/4.0 and 12 of the students were either Computer Science or Engineering majors. When asked if they performed the reading assignments, 6 answered yes, 8 answered no, and 3 did not answer. When asked to list up to three of the most helpful things in learning course material, class lectures was mentioned most, followed by lab work, and going over solutions. Specific ratings (averages) of helpfulness of various course materials (from 0 to 3 with 3 being most helpful) are summarized in Table 1 (column labeled comparison section). 3

Course Material Reading section Comparison section Class Lectures 2.2 2.7 Reading Assignments 0.9 1.1 Posted Program Examples 2.6 2.3 Lab Work 2.8 2.7 Projects/Homework 2.6 2.5 Quizzes 1.9 1.4 Exams 2.0 1.7 Going over solutions 2.7 2.7 Table 1: Average Ratings of Helpfulness of Course Material It was expected that students would consider class lectures, posted program examples, lab work, and projects the most helpful. Quizzes and exams were expected to be the least helpful. From that standpoint the results were as expected. However the very poor rating of reading assignments was unexpected especially for the section where reading was strongly emphasized. Before the semester started, I expected that emphasizing the reading assignments would lead to more students performing them and more students considering reading their textbook helpful in learning the course material. However, the low percentage of students performing the reading assignments and the low helpfulness rating was not entirely unexpected. As the semester progressed, anecdotal evidence suggested such. It became apparent before midterm, that students were not satisfactorily performing the reading assignments. Quiz grades were very poor, in class work was being done poorly and taking too long, and I was getting questions on program example syntax that made it apparent that most students were not performing the reading. In addition, during the lab many students had problems identifying errors from the compiler messages and line numbers. Most errors in introductory classes are syntax errors. The class was reminded of the importance of syntax and the reading assignments, but things did not improve much by the end of the semester. Even more unexpected was which students said they did the reading. The expected grade of students was compared to whether or not they did the reading assignments. The combined results of the two sections was: only 1/7 who expected an A did the reading, 3/8 who expected a B did the reading, 4/9 who expected a C did the reading, and 2/3 who expected a D did the reading. No student expected to get an F and one student who did not do the reading expected to get a B or C. The self reported GPA of students who did the reading versus students who did not was about the same 3.1/4.0 versus 3.0/4.0. Conclusions and Other Attempts Overall, the attempt at covering programming language syntax using reading assignments was disappointing. By midterm, anecdotal evidence suggested that students were not satisfactorily 4

performing the reading assignments. The final written survey and quiz averages confirmed this. Thus it ended up being necessary to go back to covering more of the programming syntax during class. A better method of encouragement/punishment is necessary for this idea to work in the future. Using unannounced quizzes as the incentive failed and even though I was initially reluctant to attempt Gray s RS method, the embarrassment factor during a poor oral presentation may be the necessary incentive. The reluctance of using the RS method was due to several factors: 5-8 minute summaries using up 10%+ of a fifty minute class, student tardiness and absences, and some aversion to setting up teams just for this purpose. I seldom use a team approach for work in introductory programming classes since encountering several cases of a good student pulling his poor friend along to upper division classes. In later courses, and more informally an alternative approach was tried. The detailed reading assignments were continued, some syntax was covered during class, but I started using the lab period to both introduce and reinforce the programming language syntax. Working examples illustrating the syntax for the concepts covered that week were provided to students. Students were required to run these and then make minor to substantial modifications (play with the code) depending upon the topic. The instructor and a lab assistant were available to answer any questions (short of writing and typing the modified code). This approach worked much better and worked especially well in a summer JAVA course taught to predominantly Information Technology and Information Systems majors. The summer course was a short semester, so the course met 2 hours every day. 30-45 minutes were used for lecture followed by the rest of the time doing programming work in the lab. The hands on use of the language and compiler with the instructor/assistant as backup worked well for most students. There were several students who relied too much on their neighbor and required an overly large percentage of instructor/assistant time. Some experiments even though designed to be straightforward and short often took average students 1 to 1.5 hours. And for the complex syntax of GUIs and objects even good students had difficulty finishing. Even using this approach, it was very difficult to get students to use their textbooks. Most lab projects cited specific pages in the textbook, but it was apparent that few students read the background material even during the lab period. Using a lab period to introduce/reinforce syntax allowed more class time to be used for Computer Science concepts. However, this requires lab space, extensive lab time, well thought out lab assignments, and good help. The JAVA course would not have worked nearly as well without the excellent teaching assistant I had. References Deitel, H.M. and Deitel P.J. (2001) C++ How to Program, third edition, Prentice-Hall, Upper Saddle River, New Jersey. Deitel, H.M. and Deitel P.J. (2002) JAVA How to Program, fourth edition, Prentice-Hall, Upper Saddle River, New Jersey. Ford, William H. and Tropp, William R. (1999) Introduction to Computing using C++ and Object technology Prentice-Hall, Upper Saddle River, New Jersey. Gray, Robert I. (2001) A Solution to the I-Never-Do-the-Text-Reading-Assignment Problem, Proceedings of the 2001 ASEE Southeastern Section Conference, April 1-3, 2001, Charleston, SC. 5

Liang, Y. Daniel (2002) Introduction to JAVA Programming with JBuilder 4/5/6, second edition, Prentice- Hall, Upper Saddle River, New Jersey. Shackelford, Russell L. (1998) Introduction to Computing and Algorithms, Addison-Wesley, Reading, Massachusetts. Shackelford, R. L. and LeBlanc, R.J. (2001) Introducing Computer Science Fundamentals Before, Proceedings of the 27 th Frontiers in Education Conference, Volume 1, Pages 285 289, 1997. CSCI 1301 Course Survey Appendix Rate your level of knowledge of the following topics before and after completing CSCI 1301. (1 indicating little or no knowledge of the topic and 3 indicating good knowledge of the topic) Topic Before CSCI 1301 Little Good After CSCI 1301 Little Good Program Format 1 2 3 1 2 3 Conditional Structures (if, switch) Iterative structures (for, while) 1 2 3 1 2 3 1 2 3 1 2 3 Functions 1 2 3 1 2 3 Classes and objects 1 2 3 1 2 3 Rate the helpfulness of each of the following in learning the course material. (0 indicating not applicable, 1 indicating little or no help and 3 indicating very helpful) Not Little Very App help helpful Class lectures 0 1 2 3 Reading Assignments 0 1 2 3 Posted program examples 0 1 2 3 Lab work 0 1 2 3 Projects/Homework 0 1 2 3 Quizzes 0 1 2 3 6

Exams 0 1 2 3 Going over solutions to labs, projects, quizzes, and exams 0 1 2 3 List up to three things from above that were most helpful in learning the course material (1 being the most helpful). 1. 2. 3. What is your major? What is your overall GPA (out of 4.0)? What grade do you expect to receive in this course (A, B, C, D, F)? Did you do the reading assignments (yes or no)? Additional Comments/Suggestions may be written on the back.. 7

Thomas Murphy Thomas Murphy is an Associate Professor of Engineering at Armstrong Atlantic State University. Prior to this he taught in the Department of Mathematics and Computer Science Department at Georgia Southern University and in the Department of Electrical and Computer Engineering at The Citadel. He received his PhD and M.E. in Electrical and Computer Engineering from the University of Florida and his B.S. in Electrical Engineering from the University of Notre Dame. His interests are primarily in the areas of signal processing, digital logic, control systems, and computer applications in these areas.