Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.


381 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!


  1. 1. An Active Learning Pedagogy for Teaching the Programming Courses in a Community College Setting AHMED TAREK Cecil College AFACCT ‘14 Conference Prince George’s Community College Session: 2.3 – January 09, 2014 11:40 A.M. – 12:50 P.M. E-mail: atarek@cecil.edu
  2. 2. Presentation Outline (FOCUS: Community College Teaching & Learning)  Content Layout in a basic Computer Science Course  Student Background in a Community College Programming Course  Aligning Course Materials More Towards Student Learning – the Issues Encountered on the Pathway  CECIL COLLEGE and Its Support in Implementing the Active Learning Pedagogy – the Three Academic Monitoring Phases (AMPs)  Active Learning Pedagogy Imbued to Student Learning  Outcomes of the Active Learning Approach  Comparison of Active Learning Pedagogy to Old-fashioned Passive Style of Teaching Programming
  3. 3. Content Layout in A Programming-based CS Course  Most of the Computer Science courses involve Computer Programming or Computer Software  For a Programming Oriented CS course, the community college instructors are required to teach 4 basic components  How to create a computer program in an adopted programming language from the scratch, then compile and execute it  The programming languages syntax for the adopted language  The programming language structures for the language adopted  Actual Computer Science core materials using the adopted programming language  The focus of this discussion concentrates upon an effective, and efficient teaching of the above four basic ingredients to the community college learners coming from diverse backgrounds
  4. 4. 4 Basic Components Elaborated  Teaching how to create a computer program from the scratch, then compile and run it  100% Interactive  The Instructor needs to show the entire process in the Classroom  Verify with each individual student to make sure they can perform the activity  Teaching the Syntactic Portion involves  Discussing the Syntax relating to the Core Computer Science concepts  Demonstrate programs involving the Syntax discussed  Verifying student perception on the discussed materials  All of these are required to be carried out when the class is in Session  Teaching the Programming Language Structures  This involves teaching the basic Control Structures in the programming language under use  Teaching different Selection Structures  Teaching Different Iterative Structures  Teaching other pertinent Control Structures (break, continue, etc.)  Discussion and Demonstrations are required to be done in-class
  5. 5. 4 Basic Components Elaborated Continued.  Teaching the Computer Science Core  Depending upon the nature of the course, the Instructor needs to teach the core materials using the adopted Programming Language as a Tool  This involves teaching Arrays, Lists, Stacks, etc.  Discuss applications for each one of the Items taught  Demonstrate applications as well as implementations of the Items taught  Students learn the materials better in-class with hands-on activities  All of the above clearly articulate that a Hands-on Active Learning Pedagogy is essential for the Student Learning of a Computer Programming Oriented Course  Let’s Demonstrate these 4 basic Ingredients using an Example
  6. 6. Core Computer Science Problem Statement  Students will need to write a Java program that inputs 10 nonfractional numbers out of the keyboard into an Array and then add those numbers in a loop. Finally, their program will need to display the numbers as well the result of the addition.  In order for the students to successfully complete this assignment, they need to know the following  What is an array  How to declare integer variables in Java  How to read keyboard inputs in Java  How to load values in an array  What is a loop  How to write loop control statements in Java  How to display values to the output console screen, etc.  For all of the above, students need to know Java Syntax for each one of them  Overall, they need to know how to write, edit, compile and execute their 6 Java program
  7. 7. Downloading & Installing Java Software  Though Java software is available for free from Oracle, the students need to know  The correct version to download  The System requirements, etc.  This demands knowledge on their own computer 7
  8. 8. Downloading & Installing Java Software Continued.  Students need to visit the URL: http://www.java.com/en/download/index.jsp  Click on the button that says Free Java Download as follows:  Downloader shows the recommended version  Students Agree & Free Download starts as follows: 8
  9. 9. Downloading & Installing Java Software Continued.  Once Installing, the software notifies about the Status of Progress  Once Installed successfully, the confirmation screen appears as follows: 9
  10. 10. jGRASP zip jgrasp/jgra jgrasp/jgra The Installation Story is Not Done Yet!  Wait! You are not done with your software installation yet!  Need to Install a Java editor  An editor provides Interface for typing and editing Java programs  Instructs the Java compiler to compile programs and generate byte code  Instructs the Java Virtual Machine (JVM) to execute the byte code  So, visit jGRASP editor home page at: http://www.jgrasp.org/ & click on the Download link on the left pane  Find out the most suitable editor and click on the appropriate button  Editors are available for: Windows OS, Apple Mac OS X & Linux  Students follow the direction to download and install the jGRASP editor on top of the already installed Java compiler 10
  11. 11. The Installation Story is Not Done Yet Continued.  Once successfully installed, students receive notification  All these Installation activities are 100% hands-on  They need Active Learning Approach – as the installation involves minute details 11
  12. 12. The Programming story Begins!  The programming story starts next  Students open the jGRASP editor and type in the World famous: “Hello World!” program to begin their journey with the Java programming  So they learn about the basic skeleton of a Java program as follows: class className { public static void main (String args[]) { Statements }}  Towards this Endeavor, students learn the common Java output command: System.out.println(“Output Message”);  Learn how to save a program with the class name that contains the method main()  How to compile and execute Java programs 12
  13. 13. The Programming Story Continues!  Their fruit follows: of the loom  When they see an output from their hard work – they feel more confident and better interested in programming  Thanks God! Everything that they have learned so far are hands-on & Active Learning Oriented! 13
  14. 14. Teaching of Active Syntax to Novice Programmers  Student journey with the computer programming continues  Next the Instructor teaches Java Syntax  Teaches syntax for variable declaration, such as dataType variable1, variable2; Example: int sum, no_elements;  Teaches syntax for Array declaration dataType[] array_name = new dataType[array_size]; Example: int[] arr = new int[10];  Teaches syntax for comments that is ignored by the compiler // or /* */ Example: // Java program for array calculations  Teaches syntax for keyboard data entry Scanner Object_name = new Scanner(System.in); dataType varname = Object_name.nextInt(); Example: Scanner keyin = new Scanner(System.in); int val = Keyin.nextInt(); 14
  15. 15. Teaching Active Syntax to the Novice Programmers Continued.  Teaches syntax for importing Java package & its significance import java.packagename.class_name; Example: import java.util.*;  Teaches syntax for relational and arithmetic operations <, <=, >, >=, ==, != *, +, -, / Example: if (i < 10) sum = sum + arr[i]; 15
  16. 16. Teaching Language Structures  Next the Instructor teaches syntax to the Iterative for loop for(initialization_expression; terminating_condition; update_expression) { Statements } Example follows: for(int i =0; i < 10; i++) { sum = sum + arr[i]; }  Then the Instructor teaches syntax for String concatenation String str2, str3; String str1 = str2 + str3; Example: System.out.println(“The sum of the array elements: “ + sum); 16
  17. 17. Teaching Computer Science Core concepts  Next, the Instructor teaches the concept pertaining to Prompt Example: System.out.println(“Please input the next array element: “);  Following the Prompt & Prompting, the instructor teaches different core concepts relating to the assignment Example: Teaches array data structure and its implementation in Java. int arr[10]; for(int i = 0; i < 10; i++) { arr[i] = i; sum = sum + arr[i]; } 17
  18. 18. The Final Product  Students accumulate their various learning into a single output product in Java as follows: // This program reads in 10 integer elements from the // keyboard to an array, and then adds those 10 array elements import java.util.*; class ArrayAddition { public static void main(String args[]) { Scanner keyin = new Scanner(System.in); int sum = 0; int[] arr = new int[10]; for (int i = 0; i < 10; i++) { System.out.println("Please input the next array element: "); arr[i] = keyin.nextInt(); sum = sum + arr[i]; } System.out.println("The array elements are as follows: "); for (int j = 0; j < 10; j++) { System.out.print(arr[j] + " "); } System.out.println(); System.out.println("The sum of the 10 array elements is: " + sum); }} 18
  19. 19. The Final Product Continues. 19
  20. 20. Student Background Analysis  In a Community College setting, we have students coming to Programmingbased Computing courses with diverse skills & background  Some are inherently programming strong and skilled in computer  A few are a novice programmers and not so acquainted with computers and computing  A good number of the students are bearing average skills of computer programming  In such a diverse community, the instructional delivery needs to be designed focusing the majority, keeping enough space for the relatively weaker group as well  Also, enough encouragement is provided for the relatively stronger population through bonus points and other incentives 20
  21. 21. Aligning Course Materials More Towards Student Learning  While hands-on active learning pedagogy helps align the course materials more towards the student perceptions, but the relatively weaker group remains as a concern for the Instructor  Therefore, the instructor needs to pay enough attention towards the student skills in programming logic development as well  A possible approach is to help students gradually build up the strengths in programming logic while learning the computing curricula through a programming language as a tool  Following few slides articulate this pedagogical approach towards active learning 21
  22. 22. Developing Skills of Programming Logic  In general, prior to coming to an Intro to Programming class, the students are given the skills required to develop programming logic at a lower level class  For instance, prior to CSC 109, students develop their logic based skills in their CSC 106 Intro to Programming Logic class  These logic based skills are of paramount importance, since it helps students     Think like a computer Develop the computer problem solving skills Develop the problem solving steps in a logical way Visualize the control flow during the computation in a computer, while the computer is solving the problems  Visualize how computer actually works and computes 22
  23. 23. Developing Skills of Programming Logic Continued.  Students coming to an Introductory programming class without adequate knowledge or skills of programming logic face  Hard time in understanding computer programs  Hard time in writing codes  Hard time in analyzing the computational problems  Under these circumstances, the instructor needs to take a lead role in remedying the students out of the situation  To help out this group of students  The instructor adopts an ACTIVE LEARNING APPROACH  Shows how to develop logic in solving a computer-based problem relating to the day’s discussion  Shows each and every step in writing the code to solve the problem  Then assign the students with a similar problem 23  An Example follows:
  24. 24. Developing Skills of Programming Logic Continued.  Instructor shows the logic and code on how to write Java programs to work with circles  Gives an in-class assignment to the students to write Java code to work with rectangles  The details of the APPROACH / TECHNIQUE follows:  For circles, the instructor demonstrates how to write the Java Circle class as follows: class Circle { double radius; // Define radius of the circle Circle() // Default Constructor { radius = 0.0; } // Set radius to 0.0 Circle(double r) // Regular Constructor { radius = r;} // Class Methods double get_radius() // Return the radius of the circle { return radius; } 24
  25. 25. Developing Skills of Programming Logic Continued. double get_area() // Get the area of the circle. Use  = 3.1416 { return 3.1416*radius*radius; } double get_circumference() // Get the circumference of the circle { return 2.0*3.1416*radius; } void set_radius(double rad) // Method to change the radius of the circle { radius = rad; } } // The Closing Curly Brace to conclude the Circle class  Next the Instructor shows the students how to write another class called UseCircle within the same Java file to use the above Circle class  The Instructor mentions them to include the public static void main(String args[]) method (the driver method) within this UseCircle class  The Instructor wouldn’t forget to mention them to include all Java code that would use the class Circle to put inside the public static void main  A possible implementation of the class UseCircle follows: 25
  26. 26. Developing Skills of Programming Logic Continued. class UseCircle { public static void main(String args[]) { Circle circ = new Circle(); // Using Default Const. circ.radius = 10; // Set radius using data member within the Circle class through a Circle object System.out.println( "The radius of the circle is : " + circ.get_radius() ); System.out.println( "The area of the circle is : " + circ.get_area() ); System.out.println( "The circumference of the circle is : " + circ.get_circumference() ); circ. set_radius(20.0); // Change radius of the circle to 20. System.out.println("After changing the radius: "); System.out.println( "The radius of the circle is : " + circ.get_radius() ); // Show new radius System.out.println( "The area of the circle is : " + circ.get_area() ); // New area System.out.println( "The circumference of the circle is : " + circ.get_circumference() ); // Calculate new circumference for the circle } } // First curly brace closes the method main. The second one closes the class UseCircle  Following shows a screen shot of the output from the above Java program’s execution. 26
  27. 27. Developing Skills of Programming Logic Continued. 27
  28. 28. Developing Skills of Programming Logic Continued.  As an indicator of their perception to the learning of Programming Logic, next the Instructor would ask them to write a class for Rectangle and would tell to write another class that contains public static void main(String args[]) that would make use of the rectangle class.  A possible implementation for this in-class, hands-on assignment follows: // In-class Hands-on Assignment class Rectangle { double width; double length; // Default Constructor Rectangle() { width = 0.0; length = 0.0; } // Regular Constructor Rectangle(double w, double l) { width = w; length = l; } 28
  29. 29. Developing Skills of Programming Logic Continued. // Class Methods double get_width() // Get the width of the rectangle { return width; } double get_length() // Get the length of the rectangle { return length; } double area() // Get the area of the rectangle { return width*length; } double circumference() // Get circumference of the rectangle { return (width+length)*2; } } void set_sides (double w, double l) { width = w; length = l; } 29
  30. 30. Developing Skills of Programming Logic Continued. // Following class in the same Java file uses the Rectangle class. class UseRectangle { public static void main(String [] args) { Rectangle rect = new Rectangle(20, 30); System.out.println( "The width of the rectangle is : " + rect.get_width() ); System.out.println( "The length of the rectangle is : " + rect.get_length() ); System.out.println( "The area of the rectangle is : " + rect.area() ); rect.set_sides(40, 50); System.out.println( "The width of the rectangle is : " + rect.get_width() ); System.out.println( "The length of the rectangle is : " + rect.get_length() ); System.out.println( "The area of the rectangle is : " + rect.area() ); } } 30
  31. 31. Developing Skills of Programming Logic Continued. Following is a screen capture of the output from this hands-on in-class assignment 31
  32. 32. Active Learning at Cecil  Active Learning is always Welcomed at Cecil College as a rapidly advancing institution  Active Learning Pedagogy (ALP) is reinforced by three Academic Monitoring Phases (AMPs) at Cecil  AMPs help the College track down the student progress during different stages of the regular semesters (spring and fall) in each of our classes and help to alert the students who are distracted from their academic goals, help out the relatively weaker groups as well as help to bring the deviated groups back to track again  Towards the beginning of the semester, each instructor is sent a note to visit his or her MyCecil Account (a website maintained by the college), and complete the Academic Monitoring Phase I by tracking down student attendance and academic progress  The response received from the faculty helps the Academic Advising contact the identified student groups with academic and/or attendance concerns and 32 helps to follow-up with them
  33. 33. Active Learning at Cecil Continued. 33
  34. 34. Active Learning Reinforcement at Cecil  Towards the middle of the semester, the Instructor receives the Notice for Academic Monitoring Phase II and completes Phase II by tracking student attendance and academic progress  This helps the college to identify students with constant concerns since the beginning of the semester and take stronger actions to bring that group of students to track  This also helps Academic Programs track student retention and success as well as the outcomes of any previous follow-ups from the Academic Advising  At the same time, Academic Advising can measure the fruitfulness of their follow-up procedures and may adopt the necessary corrective means  For instance, following is an excerpt from Academic Monitoring Phase II notice to the faculty:  “! Over 300 phone calls and 350 letters were completed to students on your behalf to support course success! Together our efforts will have an impact…now onto Phase II!” 34
  35. 35. Active Learning Reinforcement at Cecil Continued. 35
  36. 36. Active Learning Reinforced At Cecil  Towards three quarter of the semester, prior to the Final Course Withdrawal deadline, faculty receives their Notice to complete Academic Monitoring Phase III  This provides the college with the final opportunity of the semester to track down the students with severe academic and attendance deficiency, and helps the College to take the final corrective and follow-up measures  Also, the Phase III Notice incorporates a faculty participation statistics as well as the statistics on the number of letters issued to the students who are lagging behind from Monitoring Phases I and II.  These college issued letters try to impact students prior to their final Course Withdrawal Date for the semester  Following is an excerpt from the most recent AMP III: 536 letters were mailed and many types of phone calls were made to students on your behalf to support course success! Let’s continue to impact students through Academic Monitoring III – before the withdrawal date of November 5th, 2013 (full semester classes). Thank you faculty! 36
  37. 37. Active Learning Reinforced At Cecil Continued. 37
  38. 38. Active Learning Pedagogy Infused to Student Learning  With hands-on, students learn better  With computing, a hands-on student learning approach is imperative  Previous statistics shows that when the instructor pays more attention to the class long lectures and heavy homework assignments, it has impacted students in the following negative ways  Students pay less attention to the class lecture, since they usually do not have any obligation to show the mastery of the learned or delivered class lecture materials  They are reluctant to completing their homework assignments. Quite often, either they do not turn in the homework assignments or copy the assignment from a peer in the class  On the other hand, an hands-on active learning pedagogy has impacted the student learning in the following positive ways:  Student pay more attention to the classroom discussion as they know they will be told to do some activities following the discussion that will affect their grades  They remain under constant supervision of the Instructor in the classroom so that they have less chance of cheating or copying the assignment  Student-Faculty interaction takes up the desired shape, since students have more opportunities for a faculty interaction and the faculty support  The learnt materials stay with them for a longer time compared to the traditional way of learning 38
  39. 39. Outcomes of the Active Learning Approach  Active Learning is a modern, scientific way of learning materials in a face-toface classroom environment as well as for Online, Distance Learning Mode  Students learn the materials better  Students learn hands-on  Better Faculty-Student Interactions  Better clarifications for the students  Direct help and support available from the faculty to the students  Students are able to apply their learning better during their work life  Active Learning later helps with the Student’s Lifelong Learning efforts as he/she has better perception and depth of the materials learned 39
  40. 40. Active Learning Vs. Passive Learning – A Comparison 40
  41. 41. Active Learning Vs. Passive Learning – A Comparison Continued.  Active Learning helps retain the knowledge earned whereas passive, all lecture style of learning drains out the knowledge  Active Learning Pedagogy is composed of all the good ingredients, which are essential to learning Computing and the Computer Science  Computing as a modern practice deserves an Active Learning Infused Pedagogy by its very nature  When it comes to computing, the Active Learning Strategy discussed infuses 3C’s of learning focused instructional delivery – Cognitive Learning, Constructive Learning & Cooperative Learning, experienced through the in-class idea exchange in solving a Computer Science programming problem  These 3C’s are very hard to realize in a passive learning environment as there is little to no chance of interactions 41
  42. 42. Conclusions  Research shows that students learn better with hands-on active pedagogy when it comes to computer programming  So for teaching a Computer Programming oriented CS course  Instructor needs to teach the Computing materials  At the same time, needs to be careful about student use of Computer Programs in mastering the materials  The best solution will be to adopt the following Strategic Steps in Teaching:  Discuss the Computing materials for a portion of the class time  Articulate a programming example that demonstrates an application of the concept delivered  Assign students in the class with a similar computer programming problem that solves a similar computing problem discussed during the class  Help out students in solving the assigned problem  This pedagogy helps students retain the class discussion materials in brain as well as learn the computer programming in solving the related computational problems  The instructor can ensure that the students are actually involved in learning, and are not doing something else - such as cheating code from somebody else 42
  43. 43. Conclusion Continued.  Let me show you a simple statistics on Active Learning & its outcome 43
  44. 44. Conclusion Continued.  In Community Colleges, the Teaching & Learning is different, as Community College Education is open to the public in general  As a result, the Community College Learning environment differs significantly from that of a traditional 4-year institution  The Community College faculty needs to shift the teaching style from the Outmoded Institutional Approach to a more Hands-on, Student Centered Active Learning Pedagogy  The focus lies to a Generalized Teaching Strategy for people of all ages, with diverse learning abilities, and students of all flavors – both Traditional & Non-traditional 44
  45. 45. It’s Question Time? 45