improving the odds of success in computer science 1 dr. wayne summers tsys school of computer...
TRANSCRIPT
Improving the Odds of Success in Computer
Science 1
Dr. Wayne Summers
TSYS School of Computer Science
16 November 2012
THE Problem!?!
“between 30% and 60% of every university computer science department's intake fail the first programming course.”
“Separating Programming Sheep from Non-Programming Goats,” http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html
, created - July 14, 2006, last viewed – October 10, 2012
What Language to Teach?
• “The problem in a current educational setting is deciding which languages (of the thousands out there) to teach students. Majoring on .Net and Java will teach them useful work skills, but some time spent on Ruby, Python or other languages might be more useful in teaching them that there is more than one way to solve a problem.”
Separating Programming Sheep from Non-Programming Goats
July 14, 2006 [http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html
]
Position PositionNov-12 Nov-11
1 2 C 2 1 Java 3 6 Objective-C 4 3 C++ 5 5 PHP 6 4 C# 7 7 (Visual) Basic 8 8 Python 9 10 Perl
10 11 Ruby 11 9 JavaScript 12 16 Delphi/Object Pascal 13 13 Lisp
Programming Language
TIOBE Programming Community Index for November 2012
HISTORY • “There is an interesting difference between
teaching C, C++, Java and the older mainframe procedural languages like Fortran, COBOL, and Algol. How could McCracken teach Algol in 100 pages, or Fortran in some 140, or COBOL, which had a lot of detail, in less than 200, and yet the Sun Java Tutorial series is three 950 page volumes and continually refers to the online Sun JavaDoc files?”
[New Methods for Teaching Programming Languages to both Engineering and Computer Science Students by Dr. Peter C. Patton (http://www.micsymposium.org/mics_2004/Patton.pdf)]
CHOICES• List of Hello World Programs in 200 Programming Languages
• 99 Bottles of Beer in over 1500 languages
Sum two numbers (JAVA)
import java.util.Scanner;
public class Sum2Numbers{ public static void main (String[] args) { Scanner scan = new Scanner(System.in); int a, b, sum; System.out.print("Enter a number: "); a = scan.nextInt(); System.out.print("Enter a 2nd number: "); b = scan.nextInt(); sum = a + b; System.out.println("The sum is " + sum ); }}
PROBLEMS WITH JAVA AS A FIRST LANGUAGE
• Scale and Instability
• Linguistics Complexity
• APIs Issues
• Core Syntax and Semantics
[Zanev & Radenski, Two-Language, Two-Paradigm Introductory Computing Curriculum Model and Its Implementation, Serdica Journal of Computing, 2011]
(Seymour Papert, in "Mindstorms")
• “A deep understanding of programming, in particular the notions of successive decomposition as a mode of analysis and debugging of trial solutions, results in significant educational benefits in many domains of discourse, including those unrelated to computers and information technology per se.”
OPTIONS (what we’ve tried)• C++: pre - 2003• Java (2004)• Java with 3-hour closed lab (2006)• Introduction to Computing and Programming
in Java: A Multimedia Approach (2007-2008)• Java with Alice and Media Computation (2009)• Freshmen Learning Communities (Fall 2011)=====================================• Fundamentals of Computer Programming and
Data Structures
Sum two numbers (Python)
a = int(input("Enter a number: "))b = int(input("Enter a 2nd number: "))sum = a + bprint("The sum is ", sum)
OR
a = input("Enter a number: ")b = input("Enter a 2nd number: ")
sum = int(a) + int(b)
print("The sum is ", sum)
Two Language Approach (Python => Java)
• 5 weeks Python– Functions– I/O Loops– Decisions– Defining Functions, Lists– More Loops, Files
• 1 week transition
• 9 weeks Java
Computer Science 1 productive grades
Total Students earning A-B-C
% productive grades
C++
( - 2003)
996 59%
Java (no lab)
(2004-2006)
520 51%
Java (with lab)
(2006-----)
1030 60%
My Grades (% A-B-C)C++ (2 sections) 40%
Java (2 sections) 44%
Java / Multimedia (2 sections) 55%
Java / Freshman Learning Community 64%
Python / Java (SPRING 2012) 83%
Python / Java (with FLC) (FALL 2012) 80-85%
Comparison with Dept.
Computer Science 1 grade analysis
Fall 2000 - Spring 2012
(all faculty and formats)
59%
Fall 2011
(my Freshmen Learning Community)
64%
Spring 2012
(hybrid Python => Java)
83%
Comparison of Cohorts
CSU
GPA
HS
GPA
SAT
Rdg
SAT
Math
Age
2000-2012
2.53 2.99 510 518 23.5
Fall 2011
2.54 3.22 523 536 18.7
Spring 2012
2.79 3.20 474 506 26.0
Comparison with Java-only class
Wayne’s (n=34) CS1 CS2 CS3
% ABC 85% 95% 83%
% continue 62% 18%
Other (n=20)
% ABC 75% 100% 0%
% continue 50% 5%
% CS/IT 65%
Resources• Insights on teaching computer programming | Lambda the Ultimate • http://lambda-the-ultimate.org/node/view/1195 • Computer Science for Non-Majors Takes Many Forms - NYTimes.com • http://www.nytimes.com/2012/04/01/business/computer-science-for-non-majors-takes-many-forms.html • A Very Quick Comparison of Popular Languages for Teaching ... • http://www.ariel.com.au/a/teaching-programming.html • List of educational programming languages - Wikipedia, the free ... • http://en.wikipedia.org/wiki/List_of_educational_programming_languages • Introduction to Computer Programming - What Is It? • http://www.bfoit.org/Intro_to_Programming/Programming.html • Philip Guo - Why Python is a great language for teaching beginners ... • http://www.pgbovine.net/python-teaching.htm • Teaching Programming • https://engineering.purdue.edu/kak/TeachingProgramming.pdf • Teaching Computer Programming to High School students: An ... • http://www.austintek.com/python_class/python_class.sect_1.html • The challenges of teaching computer programming • http://dl.acm.org/citation.cfm?id=214913 • INSTRUCTIONAL STRATEGY IN THE TEACHING OF COMPUTER ... • http://www.tojet.net/articles/v9i2/9214.pdf • Introduction to Computer Programming - What Is It • http://www.bfoit.org/itp/Programming.html http://www.codinghorror.com/blog/2006/07/separating-programming-
sheep-from-non-programming-goats.html • Testing Programming Aptitude– by Saeed Dehnadi • http://www.eis.mdx.ac.uk/research/PhDArea/saeed/S_Dehnadi_ppij-2006__2.pdf (paper)• “Why Johnny can't program” - http://www.bricklin.com/wontprogram.htm• “New Methods for Teaching Programming Languages to both Engineering and Computer Science
Students by Dr. Peter C. Patton (http://www.micsymposium.org/mics_2004/Patton.pdf)
04/19/23 21
QUESTIONS?
Wayne SummersWayne SummersTSYS School of Computer ScienceTSYS School of Computer Science
(706) 507-8170(706) 507-8170
http://[email protected]