Improving the Odds of Success in Computer Science 1

download Improving the Odds of Success in Computer Science 1

If you can't read please download the document

description

Improving the Odds of Success in Computer Science 1. Dr. Wayne Summers TSYS School of Computer Science 16 November 2012. AGENDA. THE Problem OUR Solution Details Q&A. THE Problem!?!. - PowerPoint PPT Presentation

Transcript of Improving the Odds of Success in Computer Science 1

  • Improving the Odds of Success in Computer Science 1Dr. Wayne SummersTSYS School of Computer Science16 November 2012

  • AGENDATHE ProblemOUR SolutionDetailsQ&A

  • 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

  • THE Problem!?!

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

  • Sheet1

    TIOBE Programming Community Index for November 2012

    PositionPositionProgramming Language

    Nov-12Nov-11

    12C

    21Java

    36Objective-C

    43C++

    55PHP

    64C#

    77(Visual) Basic

    88Python

    910Perl

    1011Ruby

    119JavaScript

    1216Delphi/Object Pascal

    1313Lisp

    1414Pascal

    1523Visual Basic .NET

    1619Ada

    1712PL/SQL

    1818Lua

    1915MATLAB

    2024Assembly

    Sheet2

    Sheet3

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

  • CHOICESList 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 LANGUAGEScale and InstabilityLinguistics ComplexityAPIs IssuesCore 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 weve tried)C++: pre - 2003Java (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 PythonFunctionsI/O LoopsDecisionsDefining Functions, ListsMore Loops, Files1 week transition9 weeks Java

  • Computer Science 1 productive grades

  • My Grades (% A-B-C)

  • Comparison with Dept.

  • Comparison of Cohorts

  • Comparison with Java-only class

  • ResourcesInsights 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.htmNew 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)

  • **QUESTIONS?Wayne SummersTSYS School of Computer Science

    (706) 507-8170

    http://[email protected]