CS 0.5 A New Approach to Introductory Computer Science for Majors Supported by NSF Grant...
-
Upload
abraham-jerome-bridges -
Category
Documents
-
view
221 -
download
1
description
Transcript of CS 0.5 A New Approach to Introductory Computer Science for Majors Supported by NSF Grant...
CS 0.5CS 0.5A New Approach to A New Approach to
Introductory Computer Introductory Computer Science Science
for Majorsfor Majors
Supported by NSF Grant Supported by NSF Grant DUE-0411219DUE-0411219
CS 0.5 ParticipantsCS 0.5 Participants
Robert H. Sloan, University of Robert H. Sloan, University of Illinois at Chicago Illinois at Chicago
Patrick Troy, University of Patrick Troy, University of Illinois at Illinois at ChicagoChicago
Email: sloan|troy at host Email: sloan|troy at host uic.eduuic.edu
Problems in Computer ScienceProblems in Computer Science High Attrition Rate at Freshman High Attrition Rate at Freshman and Sophomore leveland Sophomore level• 19% National Average19% National Average• As high as 66%As high as 66%• 30%-40% at UIC30%-40% at UIC• Worse for Female StudentsWorse for Female Students
Not attracting students into Not attracting students into the Programthe Program
Reasons for High AttritionReasons for High Attrition Introductory CS often fail to Introductory CS often fail to engage students engage students
Class are described asClass are described as• too boringtoo boring• overly technicaloverly technical• lack creativitylack creativity
Reasons for High AttritionReasons for High Attrition Students have wide variations in Students have wide variations in background and experiencesbackground and experiences
• Slower pace bores those with Greater Slower pace bores those with Greater Experience. Students lose interest!Experience. Students lose interest!
• Faster pace loses those with Lesser Faster pace loses those with Lesser Experience. Students feel Experience. Students feel incompetent!incompetent!
Our SolutionOur Solution Divide and InstructDivide and Instruct
Divide Incoming students into Divide Incoming students into two groupstwo groups• Those with greater experienceThose with greater experience• Those with lesser experienceThose with lesser experience
Use placement exam to determine Use placement exam to determine experience levelexperience level
Placement ExamPlacement Exam Focus on Semantics not SyntaxFocus on Semantics not Syntax
• Language IndependentLanguage Independent Write code showing some minimal Write code showing some minimal knowledge of:knowledge of:• VariablesVariables• ArraysArrays• If StatementsIf Statements• LoopsLoops• Basic Function CallsBasic Function Calls
Division of StudentsDivision of Students Students not taking or not passing Students not taking or not passing the placement exam follow normal the placement exam follow normal route of CS 0.5 course followed by route of CS 0.5 course followed by an aggressive CS 1 coursean aggressive CS 1 course• CS 0.5 is not “remedial” but “normal”CS 0.5 is not “remedial” but “normal”
Students passing placement exam are Students passing placement exam are • advanced into the aggressive CS 1 course advanced into the aggressive CS 1 course • receive credit for our CS 0.5 coursereceive credit for our CS 0.5 course• ““Free” credit motivates the studentsFree” credit motivates the students
Curriculum of CS 0.5Curriculum of CS 0.5 Based on Mark Guzdial’s Media Based on Mark Guzdial’s Media Computation course from GA TechComputation course from GA Tech
Engage them with Pictures, Sound Engage them with Pictures, Sound and Movie manipulationand Movie manipulation
Prepare them for future CS CoursePrepare them for future CS Course
Started in Spring 2005Started in Spring 2005
Making Emma a redheadMaking Emma a redhead
def turnRed(): brown = makeColor(48,20,17) file = "/Users/sloan/MediaSources/emma.jpg" picture = makePicture(file) for px in getPixels(picture): color = getColor(px) if distance(color,brown) < 25.0: redness = getRed(px)*1.5 setRed(px,redness) show(picture) return(picture)
Original
Posterizing: Reducing range of Posterizing: Reducing range of colorscolors
How do we compare algorithms?How do we compare algorithms?
There’s more than one way to sample.There’s more than one way to sample.• How do we compare algorithms to say that one is faster How do we compare algorithms to say that one is faster
than another?than another? Computer scientists use something called Computer scientists use something called Big-O notationBig-O notation• It’s the It’s the order of magnitudeorder of magnitude of the algorithm of the algorithm• The goal is to describe what happens to the The goal is to describe what happens to the running timerunning time
of the algorithm as the of the algorithm as the size of the input growssize of the input grows Big-O notation tries to ignore differences Big-O notation tries to ignore differences between languages, even between compiled between languages, even between compiled vs. interpreted, and focus on the number vs. interpreted, and focus on the number of of stepssteps to be executed. to be executed.
Preliminary ResultsPreliminary Results
Our CS 0.5Our CS 0.5 EnrollmentEnrollment Success RateSuccess RateOld: Fall 02Old: Fall 02 6161 74.8%74.8%Old: Spring Old: Spring 0303
3838 76.7%76.7%
Old: Fall 03Old: Fall 03 5151 68.6%68.6%Old: Spring Old: Spring 0404
2222 82.9%82.9%
Old: Fall 04Old: Fall 04 1515 93.3%93.3%Average “Old”Average “Old” 3737 75.9%75.9%New: Spring New: Spring 0505
1818 94.4%94.4%
Absolute latest resultsAbsolute latest results
OLD Average OLD Average Success Rate (ABC)Success Rate (ABC) 76%76%
NEW Average NEW Average SuccessSuccess Rate Rate (ABC); 2 semesters (ABC); 2 semesters of dataof data
91%91%
A bit about the courseA bit about the course Tweaked version of Guzdial Media Comp Tweaked version of Guzdial Media Comp course for Georgia Tech non-majorscourse for Georgia Tech non-majors
Mildly slower paceMildly slower pace A bit more drill on easiest A bit more drill on easiest programming fundamentalsprogramming fundamentals
Our tweaked version is available on Our tweaked version is available on our website, of course: our website, of course: http:http://wiki//wiki..cscs..uicuic..eduedu:8080/CS101:8080/CS101