SlideShare ist ein Scribd-Unternehmen logo
1 von 45
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
The Final Product Continues.

19
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
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
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
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:
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
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
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
Developing Skills of Programming Logic Continued.

27
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
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
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
Developing Skills of Programming Logic Continued.
Following is a screen capture of the output from this hands-on in-class
assignment

31
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
Active Learning at Cecil Continued.

33
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
Active Learning Reinforcement at Cecil Continued.

35
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
Active Learning Reinforced At Cecil Continued.

37
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
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
Active Learning Vs. Passive Learning – A Comparison

40
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
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
Conclusion Continued.

 Let me show you a simple statistics on Active Learning & its outcome

43
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
It’s Question Time?

45

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Getting Program Input
Getting Program Input Getting Program Input
Getting Program Input
 
Java Programming Fundamentals
Java Programming Fundamentals Java Programming Fundamentals
Java Programming Fundamentals
 
Write programs to solve problems pascal programming
Write programs to solve problems   pascal programmingWrite programs to solve problems   pascal programming
Write programs to solve problems pascal programming
 
4 programming-using-java intro-tojava20102011
4 programming-using-java intro-tojava201020114 programming-using-java intro-tojava20102011
4 programming-using-java intro-tojava20102011
 
Savitch Ch 15
Savitch Ch 15Savitch Ch 15
Savitch Ch 15
 
Translators(Compiler, Assembler) and interpreter
Translators(Compiler, Assembler) and interpreterTranslators(Compiler, Assembler) and interpreter
Translators(Compiler, Assembler) and interpreter
 
3 programming-using-java introduction-to computer
3 programming-using-java introduction-to computer3 programming-using-java introduction-to computer
3 programming-using-java introduction-to computer
 
Java Tokens
Java  TokensJava  Tokens
Java Tokens
 
Intro To C++ - Class 14 - Midterm Review
Intro To C++ - Class 14 - Midterm ReviewIntro To C++ - Class 14 - Midterm Review
Intro To C++ - Class 14 - Midterm Review
 
Students report card for C++ project..
Students report card for C++ project..Students report card for C++ project..
Students report card for C++ project..
 
Pooja Sharma , BCA Third Year
Pooja Sharma , BCA Third YearPooja Sharma , BCA Third Year
Pooja Sharma , BCA Third Year
 
Introduction of exception in vb.net
Introduction of exception in vb.netIntroduction of exception in vb.net
Introduction of exception in vb.net
 
Savitch ch 15
Savitch ch 15Savitch ch 15
Savitch ch 15
 
Core java slides
Core java slidesCore java slides
Core java slides
 
OOP Programs
OOP ProgramsOOP Programs
OOP Programs
 
Java
JavaJava
Java
 
Introduction
IntroductionIntroduction
Introduction
 
Java notes
Java notesJava notes
Java notes
 
Basics of java 1
Basics of java 1Basics of java 1
Basics of java 1
 
Compiler design
Compiler designCompiler design
Compiler design
 

Ähnlich wie 2.3.tarek

01-ch01-1-println.ppt java introduction one
01-ch01-1-println.ppt java introduction one01-ch01-1-println.ppt java introduction one
01-ch01-1-println.ppt java introduction one
ssuser656672
 
66781291 java-lab-manual
66781291 java-lab-manual66781291 java-lab-manual
66781291 java-lab-manual
Laura Popovici
 
(Ebook pdf) java programming language basics
(Ebook pdf)   java programming language basics(Ebook pdf)   java programming language basics
(Ebook pdf) java programming language basics
Raffaella D'angelo
 
HND Assignment Brief Session Sept.docx
              HND Assignment Brief               Session Sept.docx              HND Assignment Brief               Session Sept.docx
HND Assignment Brief Session Sept.docx
joyjonna282
 

Ähnlich wie 2.3.tarek (20)

01-ch01-1-println.ppt java introduction one
01-ch01-1-println.ppt java introduction one01-ch01-1-println.ppt java introduction one
01-ch01-1-println.ppt java introduction one
 
66781291 java-lab-manual
66781291 java-lab-manual66781291 java-lab-manual
66781291 java-lab-manual
 
Java lab1 manual
Java lab1 manualJava lab1 manual
Java lab1 manual
 
(Ebook pdf) java programming language basics
(Ebook pdf)   java programming language basics(Ebook pdf)   java programming language basics
(Ebook pdf) java programming language basics
 
Vikeshp
VikeshpVikeshp
Vikeshp
 
Java programming language basics
Java programming language basicsJava programming language basics
Java programming language basics
 
Java programming: Elementary practice
Java programming: Elementary practiceJava programming: Elementary practice
Java programming: Elementary practice
 
(D 15 180770107240)
(D 15 180770107240)(D 15 180770107240)
(D 15 180770107240)
 
Cis 1403 lab1- the process of programming
Cis 1403 lab1- the process of programmingCis 1403 lab1- the process of programming
Cis 1403 lab1- the process of programming
 
Intro to programing with java-lecture 1
Intro to programing with java-lecture 1Intro to programing with java-lecture 1
Intro to programing with java-lecture 1
 
Programming Fundamentals
Programming FundamentalsProgramming Fundamentals
Programming Fundamentals
 
Java lab-manual
Java lab-manualJava lab-manual
Java lab-manual
 
HND Assignment Brief Session Sept.docx
              HND Assignment Brief               Session Sept.docx              HND Assignment Brief               Session Sept.docx
HND Assignment Brief Session Sept.docx
 
Chapter 1_Intro to Java.ppt
Chapter 1_Intro to Java.pptChapter 1_Intro to Java.ppt
Chapter 1_Intro to Java.ppt
 
01 Programming Fundamentals.pptx
01 Programming Fundamentals.pptx01 Programming Fundamentals.pptx
01 Programming Fundamentals.pptx
 
Notes
NotesNotes
Notes
 
Cis 406 Technology levels--snaptutorial.com
Cis 406 Technology levels--snaptutorial.comCis 406 Technology levels--snaptutorial.com
Cis 406 Technology levels--snaptutorial.com
 
Cis 406 Success Begins / snaptutorial.com
Cis 406 Success Begins / snaptutorial.comCis 406 Success Begins / snaptutorial.com
Cis 406 Success Begins / snaptutorial.com
 
Cis 406 Enthusiastic Study - snaptutorial.com
Cis 406 Enthusiastic Study - snaptutorial.comCis 406 Enthusiastic Study - snaptutorial.com
Cis 406 Enthusiastic Study - snaptutorial.com
 
CIS 406 Inspiring Innovation/tutorialrank.com
 CIS 406 Inspiring Innovation/tutorialrank.com CIS 406 Inspiring Innovation/tutorialrank.com
CIS 406 Inspiring Innovation/tutorialrank.com
 

Mehr von afacct

Updating Teaching Techonologies - Real World Impact!
Updating Teaching Techonologies - Real World Impact!Updating Teaching Techonologies - Real World Impact!
Updating Teaching Techonologies - Real World Impact!
afacct
 
Lessons Learned in Higher Education from the COVID-19 Crisis
Lessons Learned in Higher Education from the COVID-19 CrisisLessons Learned in Higher Education from the COVID-19 Crisis
Lessons Learned in Higher Education from the COVID-19 Crisis
afacct
 
Increasing the success of dual enrollment and dual credit high school students
Increasing the success of dual enrollment and dual credit high school studentsIncreasing the success of dual enrollment and dual credit high school students
Increasing the success of dual enrollment and dual credit high school students
afacct
 
Mental health first aid long with alternative text
Mental health first aid long with alternative textMental health first aid long with alternative text
Mental health first aid long with alternative text
afacct
 
Transitioning Critical Thinking Skills from the Academic Setting to the Globa...
Transitioning Critical Thinking Skills from the Academic Setting to the Globa...Transitioning Critical Thinking Skills from the Academic Setting to the Globa...
Transitioning Critical Thinking Skills from the Academic Setting to the Globa...
afacct
 
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
afacct
 
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
afacct
 
Learning Communities: A High Impact Practice Transcending the Traditional Cla...
Learning Communities: A High Impact Practice Transcending the Traditional Cla...Learning Communities: A High Impact Practice Transcending the Traditional Cla...
Learning Communities: A High Impact Practice Transcending the Traditional Cla...
afacct
 
An Experiment in Every Student's "Favorite" Assignment: Forming Groups for a ...
An Experiment in Every Student's "Favorite" Assignment: Forming Groups for a ...An Experiment in Every Student's "Favorite" Assignment: Forming Groups for a ...
An Experiment in Every Student's "Favorite" Assignment: Forming Groups for a ...
afacct
 

Mehr von afacct (20)

Rejuvenation through building classroom community
Rejuvenation through building classroom communityRejuvenation through building classroom community
Rejuvenation through building classroom community
 
Implementation of a revised student success tool
Implementation of a revised student success toolImplementation of a revised student success tool
Implementation of a revised student success tool
 
Updating Teaching Techonologies - Real World Impact!
Updating Teaching Techonologies - Real World Impact!Updating Teaching Techonologies - Real World Impact!
Updating Teaching Techonologies - Real World Impact!
 
Lessons Learned in Higher Education from the COVID-19 Crisis
Lessons Learned in Higher Education from the COVID-19 CrisisLessons Learned in Higher Education from the COVID-19 Crisis
Lessons Learned in Higher Education from the COVID-19 Crisis
 
Increasing the success of dual enrollment and dual credit high school students
Increasing the success of dual enrollment and dual credit high school studentsIncreasing the success of dual enrollment and dual credit high school students
Increasing the success of dual enrollment and dual credit high school students
 
Mental health first aid long with alternative text
Mental health first aid long with alternative textMental health first aid long with alternative text
Mental health first aid long with alternative text
 
Let go of stress by finding your flow
Let go of stress by finding your flowLet go of stress by finding your flow
Let go of stress by finding your flow
 
Teaching health literacy galvan and gelmann
Teaching health literacy   galvan and gelmannTeaching health literacy   galvan and gelmann
Teaching health literacy galvan and gelmann
 
Accessibility for Online Course Content
Accessibility for Online Course ContentAccessibility for Online Course Content
Accessibility for Online Course Content
 
Matchless: Service Learning that Saves Lives
Matchless: Service Learning that Saves LivesMatchless: Service Learning that Saves Lives
Matchless: Service Learning that Saves Lives
 
Transitioning Critical Thinking Skills from the Academic Setting to the Globa...
Transitioning Critical Thinking Skills from the Academic Setting to the Globa...Transitioning Critical Thinking Skills from the Academic Setting to the Globa...
Transitioning Critical Thinking Skills from the Academic Setting to the Globa...
 
How to encourage students to unplug
How to encourage students to unplugHow to encourage students to unplug
How to encourage students to unplug
 
Learning for Life and Critical Thinking in the Web 3.0 Era Keynote Address
Learning for Life and Critical Thinking in the Web 3.0 Era Keynote AddressLearning for Life and Critical Thinking in the Web 3.0 Era Keynote Address
Learning for Life and Critical Thinking in the Web 3.0 Era Keynote Address
 
Computing Student Success at Montgomery College in the Web 3.0 Era
Computing Student Success at Montgomery College  in the Web 3.0 EraComputing Student Success at Montgomery College  in the Web 3.0 Era
Computing Student Success at Montgomery College in the Web 3.0 Era
 
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
 
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
Streamlining Your Engaging, Interactive, and Collaborative Course into the On...
 
Learning Communities: A High Impact Practice Transcending the Traditional Cla...
Learning Communities: A High Impact Practice Transcending the Traditional Cla...Learning Communities: A High Impact Practice Transcending the Traditional Cla...
Learning Communities: A High Impact Practice Transcending the Traditional Cla...
 
An Experiment in Every Student's "Favorite" Assignment: Forming Groups for a ...
An Experiment in Every Student's "Favorite" Assignment: Forming Groups for a ...An Experiment in Every Student's "Favorite" Assignment: Forming Groups for a ...
An Experiment in Every Student's "Favorite" Assignment: Forming Groups for a ...
 
Active Learning Using Kahoot, a Free Polling Software
Active Learning Using Kahoot, a Free Polling SoftwareActive Learning Using Kahoot, a Free Polling Software
Active Learning Using Kahoot, a Free Polling Software
 
Maryland Mathematical Association of Two-Year Colleges (MMATYC) winter meetin...
Maryland Mathematical Association of Two-Year Colleges (MMATYC) winter meetin...Maryland Mathematical Association of Two-Year Colleges (MMATYC) winter meetin...
Maryland Mathematical Association of Two-Year Colleges (MMATYC) winter meetin...
 

2.3.tarek

  • 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. 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. 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 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. The Final Product Continues. 19
  • 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. 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. 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. 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. 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. 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. 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. Developing Skills of Programming Logic Continued. 27
  • 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. 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. 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. Developing Skills of Programming Logic Continued. Following is a screen capture of the output from this hands-on in-class assignment 31
  • 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. Active Learning at Cecil Continued. 33
  • 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. Active Learning Reinforcement at Cecil Continued. 35
  • 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. Active Learning Reinforced At Cecil Continued. 37
  • 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. 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. Active Learning Vs. Passive Learning – A Comparison 40
  • 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. 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. Conclusion Continued.  Let me show you a simple statistics on Active Learning & its outcome 43
  • 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