Knowledge Retention from Introductory CS Courses Anthony Baxter Paul Piwowarski University of Kentucky.

Slides:



Advertisements
Similar presentations
Introduction to programming with Visual Basic.NET Dr. Marty Sirkin.
Advertisements

FLIPPING THE CLASSROOM: ADVENTURES IN STUDENTS’ SELF DIRECTED STUDY ERI TOMITA AND JULIE DEVINE.
Introduction to Computer Programming in C
Intro to CIT 594
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Your First C++ Program Aug 27, /27/08 CS 150 Introduction to Computer Science I C++  Based on the C programming language  One of today’s most.
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
Computer Science Department Program Improvement Plan December 3, 2004.
OBJECT ORIENTED PROGRAMMING I LECTURE 1 GEORGE KOUTSOGIANNAKIS
Open-Book Examinations What it is and what it is not Rocky K. C. Chang Department of Computing 15 October 2003.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Test Preparation Strategies
1 Are you ready?. 2 Professor: Vladimir Misic Office : Phone: Office Hours : Mon, Tue; 2:00pm – 4:00pm Website :
1 ENG236: Introduction (1) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
CS190/295 Programming in Python for Life Sciences: Lecture 1 Instructor: Xiaohui Xie University of California, Irvine.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
WELCOME PARENTS! Honors Computer Programming Ms. L. Dutchen.
Autonomous Learning Proficiency: Getting students to think about their learning Lynn Grinnell College of Business.
E-Learning Services. e-Learning is transforming the way we learn and teach e-Learning can be broadly defined as technology assisted learning. It is all.
CIS162AD: C#.Net Programming Level I Instructor: Gary R. Smith, MS.
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
COMP Introduction to Programming Yi Hong May 13, 2015.
STACKING YOUR PHYSICS COURSES GOOD IDEA OR TRAGEDY WAITING TO HAPPEN? By Grant Eastland Instructor, Blue Mountain Community College Pendleton, OR.
EECE 310 Software Engineering Lecture 0: Course Orientation.
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary,
CPS120: Introduction to Computer Science Fall: 2002 Instructor: Paul J. Millis.
Module Info Web Application and Development Digital Media Department Unit Credit Value : 4 Essential Learning time : 120 hours
ENHANCING STUDENT ENGAGEMENT AND UNDERSTANDING THROUGH VIDEO LECTURES AND QUIZZING AMY RUTLEDGE, SPECIAL INSTRUCTOR OF MANAGEMENT INFORMATION SYSTEMS OAKLAND.
Catie Welsh January 10, 2011 MWF 1-1:50 pm Sitterson 014.
Aug. 9, 2007Gehringer: Improving Course Materials … Through Peer Review … Expertiza: Improving Course Materials and Learning Outcomes through.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
ABMP Student Success Curriculum Topic 7: Core Study Skills.
Course Introduction CSE250. Course Overview This course will be difficult Work hard and start early You are adults and I will treat you as such – I won’t.
Colleen Taylor, Ph. D. Tongwen Wang, Ph. D. Department of Chemistry Virginia State University.
CPS120: Introduction to Computer Science Winter 2002 Instructor: Paul J. Millis.
Lecture.1: Getting Started With Java Jiang (Jen) ZHENG May 9 th, 2005.
Using Alice in an introductory programming course for non-CS majors Adelaida A. Medlock Department of Computer Science Drexel University
INTRODUCTION TO PROGRAMMING ISMAIL ABUMUHFOUZ | CS 146.
Compiler Construction (CS-636)
Intro to CIT 594
CS 4620 Intelligent Systems. What we want to do today Course introductions Make sure you know the schedule for the next three weeks.
CS151 Introduction to Digital Design Noura Alhakbani Prince Sultan University, College for Women.
Course Information CSE 2031 Fall Instructor U. T. Nguyen /new-yen/ Office: CSEB Office hours:  Tuesday,
First class entered in 2002, current enrollment 334 Programs: Undergraduate Electrical, Computer, Mechanical and Biological Engineering Hands-on/project/team.
ASSESSMENT TO IMPROVE SELF REGULATED LEARNING 5 th July 2006, 10 th CAA conference, Poppy Pickard Assessment to improve Self Regulated Learning.
Technology Help or Hinderance? DOMINIQUE JOHNSON EDU671: FUNDAMENTALS OF EDUCATIONAL RESEARCH INSTRUCTOR: FREDERICK ANSOFF 2 JUNE 2014.
IMS 4212: Course Introduction 1 Dr. Lawrence West, Management Dept., University of Central Florida ISM 4212 Dr. Larry West
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Computer Science I ISMAIL ABUMUHFOUZ | CS 180. CS 180 Description BRIEF SUMMARY: This course covers a study of the algorithmic approach and the object.
Designing Civil Engineering 240 – Geomatics Course objective Introduce engineering applications of surveying and geographical information systems, or GIS,
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Introduction to CSCI 1311 Dr. Mark C. Lewis
CSc 1302 Principles of Computer Science II
3.5 General feeling that knowledge of hydrology has improved … but more is needed.
CSc 020: Programming Concepts and Methodology II
Analysis and Comparison is ICS4U
Introduction to Programming
CS190/295 Programming in Python for Life Sciences: Lecture 1
Experience and evaluation after the transition from Paper-Based to on-computer programming exams 06:08 Teo Eterović, MoEE :: v.prof.dr. Dženana Đonko.
Winning at Math Series Set II Math Study Skills
Welcome to CS 1301! Principles of Programming I.
Introduction to Programming Using C++
Accelerated Introduction to Computer Science
Essay.
CS 2530 Intermediate Computing Dr. Schafer
CS114B Introduction to Computer Science II
Dept. of Computer & Information Sciences (Course Introduction)
CS Problem Solving and Object Oriented Programming Spring 2019
CSCE156: Introduction to Computer Science II
Presentation transcript:

Knowledge Retention from Introductory CS Courses Anthony Baxter Paul Piwowarski University of Kentucky

2 Instructors of senior-level computer science courses at the University of Kentucky have noted deficiencies in the knowledge of senior CS students in basic programming concepts and practices

3 These included: 1. Pointers/use of dynamic storage 2. Pass by reference vs. pass by value and scope of variables 3. Make file and program organization 4. Basic knowledge of machine architecture

4 Cntinued: 5. Debugging 6. Lack of understanding of object- oriented design 7. Inexperience in developing large projects

5 The three required introductory CS courses cover these topics: 1. CS115  Has a large percentage of non-CS majors enrolled (75-80%)  Does not assume that students have previous programming experience  Uses C++ and Microsoft Visual Studio  Lab assignments, debugging taught

6 2. CS215  Continuation of CS115 (same textbook, programming environment, labs)  Has a large percentage of non-CS majors enrolled  OO programming  Data structures  Complexity (Big-O notation)

7 3. CS216  Less than 50% CS majors  Unix platform and tools  Program organization and make file  Program assignments start with C++ and shell scripts  Interpretive language assignments (Perl)  Last program exceeds 1000 lines with multiple interacting programs in different languages  Software engineering/testing  Introduction to Java/Internet

8 1. Lower division instructors insist that students are learning concepts (measured by program assignments, homeworks, exams) 2. Upper division instructors insist that students have not learned concepts

9 Instructors of CS499 (senior project capstone course) gave a quiz to the students over a number of semesters. The quiz (composed of questions from CS216 exams) covered items 1-4 of the list: 1. Pointers/use of dynamic storage 2. Pass by reference vs. pass by value and scope of variables 3. Make file and program organization 4. Basic knowledge of machine architecture

10

11 1. From program assignment results, exam results, students learned these concepts in introductory courses 2. The quiz indicates about a 50% drop in senior comprehension of the concepts

12 “When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” Sherlock Holmes

13 Therefore: Between the introductory courses, and the senior level courses (typically 2-3 years), the student minds have been taken over by creatures from space (see for example, “Invasion of the Body Snatchers” 1956)

14

15 However before notifying “The National Enquirer”, we decided to present the results to the senior students, and ask their opinion on them.

16

17  100% of the students said the material was covered in earlier courses  100% of the students said that they understood the material at that time

18 Reasons that the students gave for their poor performance

19 Nature of the quiz and how administered (no advance notice, did not affect their grade) “The main reason I missed questions on the quiz was a lack of prior preparation.” “I suppose I didn't take the CS 499 quiz as seriously as I would have if it had been graded.” “Just didn’t put too much effort into it.”

20 Lack of recent classes with a programming component after the introductory courses “After the introductory courses that teach these programming concepts, there are no intensive programming courses to reinforce them.” “I haven't used the material recently” “I haven't even had a programming course in the last two years”

21 Students use reference material “…you can sit at home with all your reference material and do the work.” “Like other students said, this is isn’t stuff I would need to do without having references close by to help me.” “If a situation comes up where we need it in the real world, we have reference books, we have Google.”

22 Students are expected to use many different languages “I don't spend a significant amount of time coding in C or C++.” “Most of my class programming projects have involved Java, SQL, Prolog, and other languages.” “…all of my classes last semester covered material in Java, so the use of pointers and make files isn't necessarily easily recalled for an 8am pop quiz.”

23 Students were also asked to comment about senior instructor perceptions of their knowledge in areas not measured by the quiz

24 “Most have never used a debugging tool. Even when given a tool, they typically do not understand what the tool is telling them.” (26% disagreed) Sample student comments: “I agree somewhat. We haven't had the education in class on using gdb or other debugging tool. “ “Some basic debugging, but never taught how to use one.” “I have not used a debugging tool since CS115. All my debugging is done via print statements.”

25 “Students lack an understanding of object-oriented design.” (60% disagreed) Sample student comments: “I disagree. I think we know how object- oriented design can be used to great capacity in building clean, efficient code.” “Was emphasized in early courses.” “Agree. I didn't fully understand this concept till last semester.”

26 “Many students seem intimidated by large projects. Most tell me they have never written a large project (near or exceeding a thousand lines of code)” (38% disagreed) Sample student comments: “I'm intimidated by large projects in general, but have done them.” “This is true, until my senior year I never really did any large projects.” “True, most programs written for class are not huge projects.”

27Summary  After the introductory courses, there are no intensive programming courses. Courses teach concepts in specialized areas (algorithms, compilers, etc.).  There is no reason to memorize information. Students had examples, both online and from previous courses.  A quiz is an imperfect measure of student knowledge, especially a pop quiz that the students knew would not affect their grade.

28 Summary (continued)  There is a significant gap in time (typically two to three years) between the introductory CS courses, and the senior-level courses, and a number of non-CS courses are also taken in this period.  Students are required to use many different languages, not just C/C++ that was the basis of the quiz.

29 Possible Solutions  Add more programming content to courses after the introductory courses.  Reemphasize subject matter covered in the introductory courses that they are expected to use in more advanced classes.  Provide online references and tutorials on core material.  Ensure that programming assignments have high standards and students use good techniques and programming paradigms.

30 Possible Solutions (continued)  Integrate formal testing requirements to more assignments  Have projects that illustrate the benefits of OO techniques. The importance of OO programming is best learned by experience.  Introduce team assignments into more courses.

31 In Conclusion Research may lead to finding causes of phenomena, but will not get you published in “The National Enquirer”