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

Slides:



Advertisements
Similar presentations
Introducing Java CSC1401. Course Goals Teaching programming concepts In a “real” language.
Advertisements

Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
8 th Grade Parent Meeting. Getting Ready for HS Begin Your Journey With the End in Mind! Every step beyond high school requires a high school diploma.
Revised AE Undergraduate Curriculum AE Student Briefing Fall 2014.
9 th Grade Parent Meeting. Registration Overview.
 A description of IGETC policies and procedures used to inform students about successful transfer.
Tracking an Innovation in Introductory CS Education from a Research University to a Two-Year College Allison Elliott Tew and Mark Guzdial Georgia Institute.
CSCI S-1 Section 5. Deadlines for Problem Set 3 Part A – Friday, July 10, 17:00 EST Parts B – Tuesday, July 14, 17:00 EST Getting the code examples from.
Staar Trek The Next Generation STAAR Trek: The Next Generation Performance Standards.
© Arizona State University Data Based Decision Making November 2013.
Computer Programming Lab(4).
CS 0007 Introduction to Computer Programming Jan Wiebe: Office Hours: T: 3-4pm; Th 2-3pm; and by appt.
TEACHING PROGRAMMING BY ITERATIVE DEEPENING Dr. Mark Lee | School of Computer Science, University of Birmingham
Introduction to Programming Doman’s Lecture CSCI101.
The Benefits & Challenges of Teaching Online A Presentation for Western Illinois University.
CSC 1051 M.A. Papalaskari, Villanova University Repetition CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing.
Academic Assistance Center Dr. Judith Lynch, Director 101 Holton Hall
CSCI 115 Computer Programming Overview. Computer Software System Software –Operating systems –Utility programs –Language compilers Application Software.
CS 106 Introduction to Computer Science I 01 / 25 / 2010 Instructor: Michael Eckmann.
Introduction to Programming Initial Slides developed by Dr. Doman.
Computer Science 10: Introduction to Computer Science Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
PRESENTATION to STEM CAMP Dr. Wayne Summers TSYS School of Computer Science Columbus State University 12 June 2013.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 13: An Introduction to C++
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Input & Output In Java. Input & Output It is very complicated for a computer to show how information is processed. Although a computer is very good at.
CSci 111 – computer Science I Fall 2014 Cynthia Zickos WRITING A SIMPLE PROGRAM IN JAVA.
Introduction to Computer Programming CS 126 Lecture 2 Zeke Maier.
Introduction to Computer Science II CSE1030Z 1. Your Instructor 2  Dr. Burton Ma  office  CSEB 1012J (near Gillian Moore's office)  hours : 2:30–4:00.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Introduction.
CSC1401 Strings (text). Learning Goals Working with Strings as a data type (a class) Input and output of Strings String operations.
CS110 Programming Language I Lab 4: Control Statements I Computer Science Department Spring 2014.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Programming Logic and Visual Basic.NET Thad Crews Computer Information Systems Western Kentucky University Prentice Hall PHIT Las Vegas, NV April 3, 2004.
CSC 1051 M.A. Papalaskari, Villanova University Algorithms Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CS 162 Introduction to Computer Science II Winter, 2014: 60 Spring, 2014: 60 Summer, 2014: 71.
Introduction to array: why use arrays ?. Motivational example Problem: Write a program that reads in and stores away 5 double numbers After reading in.
CSCI 115 Computer Programming Overview. Computer Software System Software –Operating systems –Utility programs –Language compilers Application Software.
UT Austin’s Freshman Research Initiative basic unit: FRI Research Stream PI | Postdoc/Research Educator | GRA/TA | Student/URA.
CS 161 Introduction to Computer Science I Winter, 2014: 112 Spring, 2014: 131 Summer, 2014: 132.
Gar-Field HS How do we compare?. GFHS Computer Science courses Computer Math (CM) Visual Basic Not a weighted class Introduction to CS and Programming.
1 Computer Science 1021 Programming in Java Geoff Draper University of Utah.
Introduction to CptS 111 Adam Carter. Meet your instructor Adam Carter "PhD Candidate" (ABD) Feel free to call me: – Adam (preferred) – Professor Carter.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Introduction to Computer Science What is Computer Science? Getting Started Programming.
Testing and Debugging UCT Department of Computer Science Computer Science 1015F Hussein Suleman March 2009.
King William High School. Cyber Security Curriculum 4 year high school curriculum Up to 5 technology certifications upon successful completion of each.
CSC 241: Introduction to Computer Science I
Software Development I/O and Numbers
COSC 1306 COMPUTER SCIENCE AND PROGRAMMING
CSC1401 Input and Output (and we’ll do a bit more on class creation)
PRE-AP computer science 1
Ap computer science 2 AP COMPUTER SCIENCE A EXAM SPRING OF EVERY YEAR
Comp Sci 200 Programming I Jim Williams, PhD.
CS Programming I Jim Williams, PhD.
Something about Java Introduction to Problem Solving and Programming 1.
Welcome to Computer Science
9th Grade Scheduling Class of 2022.
Infusing Technology into Community College Courses
Computer Programming 1 introduction to JAVA Lecture 1 Instructor: Ruba A. Salamah Islamic University of Gaza.
9th Grade Scheduling Class of 2023.
Programming Languages and Paradigms
CSC 1051 – Data Structures and Algorithms I
Welcome Class of 2023 Forecasting for
CS Problem Solving and Object Oriented Programming Spring 2019
CSCI 203: Introduction to Computer Science I
Coral: An Ultra Simple Language for Learning to Program
Repetition CSC 1051 – Data Structures and Algorithms I Course website:
CSC 241: Introduction to Computer Science I
Computer Science Club 1st November 2019.
Presentation transcript:

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!?! “between 30% and 60% of every university computer science department's intake fail the first programming course.” “Separating Programming Sheep from Non-Programming Goats,” programming-sheep-from-non-programming-goats.html, created - July 14, 2006, last viewed – October 10, 2012http:// programming-sheep-from-non-programming-goats.html

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 Goats July 14, 2006 [ programming-sheep-from-non-programming-goats.html ] programming-sheep-from-non-programming-goats.html

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 (

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 Java (2004) Java with 3-hour closed lab (2006) Introduction to Computing and Programming in Java: A Multimedia Approach ( ) 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 + 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)

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++ ( ) 99659% Java (no lab) ( ) 52051% Java (with lab) ( ) %

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%

Comparison with Dept. Computer Science 1 grade analysis Fall 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 Fall Spring

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%

Resources Insights on teaching computer programming | Lambda the Ultimate Computer Science for Non-Majors Takes Many Forms - NYTimes.com A Very Quick Comparison of Popular Languages for Teaching... List of educational programming languages - Wikipedia, the free... Introduction to Computer Programming - What Is It? Philip Guo - Why Python is a great language for teaching beginners... Teaching Programming Teaching Computer Programming to High School students: An... The challenges of teaching computer programming INSTRUCTIONAL STRATEGY IN THE TEACHING OF COMPUTER... Introduction to Computer Programming - What Is It sheep-from-non-programming-goats.html Testing Programming Aptitude– by Saeed Dehnadi (paper) “Why Johnny can't program” - “New Methods for Teaching Programming Languages to both Engineering and Computer Science Students by Dr. Peter C. Patton (

8/15/ QUESTIONS? Wayne Summers TSYS School of Computer Science (706)