1 / 21

Improving the Odds of Success in Computer Science 1

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!?!.

wendi
Download Presentation

Improving the Odds of Success in Computer Science 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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, 2012

  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]

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

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

  8. 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 ); } }

  9. 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]

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

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

  12. 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)

  13. 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

  14. Computer Science 1 productive grades

  15. My Grades (% A-B-C)

  16. Comparison with Dept.

  17. Comparison of Cohorts

  18. Comparison with Java-only class

  19. 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)

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

More Related