Presentation is loading. Please wait.

Presentation is loading. Please wait.

Improving the Odds of Success in Computer Science 1 Dr. Wayne Summers TSYS School of Computer Science 16 November 2012.

Similar presentations


Presentation on theme: "Improving the Odds of Success in Computer Science 1 Dr. Wayne Summers TSYS School of Computer Science 16 November 2012."— Presentation transcript:

1 Improving the Odds of Success in Computer Science 1 Dr. Wayne Summers TSYS School of Computer Science 16 November 2012

2 AGENDA  THE Problem  OUR Solution  Details  Q&A

3 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, 2012http://www.codinghorror.com/blog/2006/07/separating- programming-sheep-from-non-programming-goats.html

4 THE Problem!?!

5 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 ] http://www.codinghorror.com/blog/2006/07/separating- programming-sheep-from-non-programming-goats.html

6

7 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)]

8 CHOICES List of Hello World Programs in 200 Programming Languages 99 Bottles of Beer in over 1500 languages

9 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 ); }

10 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]

11 (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.”

12 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

13 Sum two numbers (Python) a = int(input("Enter a number: ")) b = int(input("Enter a 2nd number: ")) sum = a + b print("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)

14 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

15 Computer Science 1 productive grades Total Students earning A-B-C % productive grades C++ ( - 2003) 99659% Java (no lab) (2004-2006) 52051% Java (with lab) (2006-----) 103060%

16 My Grades (% A-B-C) C++ (2 sections)40% Java (2 sections)44% Java / Multimedia (2 sections)55% Java / Freshman Learning Community64% Python / Java (SPRING 2012)83% Python / Java (with FLC) (FALL 2012)80-85%

17 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%

18 Comparison of Cohorts CSU GPA HS GPA SAT Rdg SAT Math Age 2000- 2012 2.532.9951051823.5 Fall 2011 2.543.2252353618.7 Spring 2012 2.793.2047450626.0

19 Comparison with Java-only class Wayne’s (n=34)CS1CS2CS3 % ABC 85% 95%83% % continue 62% 18% Other (n=20) % ABC75%100%0% % continue50%5% % CS/IT65%

20 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)http://www.eis.mdx.ac.uk/research/PhDArea/saeed/S_Dehnadi_ppij-2006__2.pdf “Why Johnny can't program” - http://www.bricklin.com/wontprogram.htmhttp://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)

21 8/15/201521 QUESTIONS? Wayne Summers TSYS School of Computer Science (706) 507-8170 http://cs.ColumbusState.edu wsummers@ColumbusState.edu


Download ppt "Improving the Odds of Success in Computer Science 1 Dr. Wayne Summers TSYS School of Computer Science 16 November 2012."

Similar presentations


Ads by Google