Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Strategies for Developing and Teaching Programming Courses at KFUPM Sahalu Junaidu, PhD Information.

Similar presentations


Presentation on theme: "1 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Strategies for Developing and Teaching Programming Courses at KFUPM Sahalu Junaidu, PhD Information."— Presentation transcript:

1 1 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Strategies for Developing and Teaching Programming Courses at KFUPM Sahalu Junaidu, PhD Information and Computer Science Department King Fahd University of Petroleum & Minerals P O Box 1136, Dhahran 31261 sahalu@ccse.kfupm.edu.sa

2 2 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Developing & Teaching Programming Courses @KFUPM  Introduction  Pedagogical Approaches  Pedagogy at KFUPM  Students’ Performance in Programming Courses  Challenges in Learning & Teaching Programming  Strategies for Teaching Programming at KFUPM  Are We Home, Yet? – Advice to Administrators  Summary

3 3 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Introduction  What are introductory (programming) courses?  These are courses at the introductory phase of the undergraduate CS curriculum  Give students their first college-level exposure to computer science  Most commonly programming-based  Importance of discrete mathematics is emphasized in the introductory curriculum in CC2001  Goals of introductory courses  To introduce students to a set of fundamental computer science concepts  To facilitate the development of cognitive models for these concepts  To develop students’ problem-solving, program design, programming and analysis skills

4 4 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Pedagogical Approaches (CC2001)  Programming-first  Imperative-first  The most traditional model that introduces programming based on the imperative paradigm  Object-first  Emphasizes early the use of objects and OO design  Functional-first  Introduces algorithmic concepts in a language with simple syntax  Non-programming first  Breadth-first  Begins with a general overview of computer science  Strongly recommended in CC1991  Algorithms-first  Focuses on algorithms (introduced using pseudocode) over syntax of a particular language  Hardware-first  Teaches CS basics beginning at the machine level and building up towards more abstract concepts

5 5 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 KFUPM’s Selected Pedagogy  New delivery, purely object-first, 2001  Delivery used to be an amalgam of breadth-first and object-first  Why object-first?  Provides a more natural way of modeling computation (as a community of interacting objects)  Becoming increasingly important in both academia and industry  Why NOT object-first?  Many OO languages used in industry (Java and particularly C++) are significantly more complex than classical languages  Steep learning curve: students have more difficulty learning to program in OO style than in other paradigms  Programming-first increases the risk of students viewing theory courses in later part of the curriculum as irrelevant curricular appendage

6 6 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 KFUPM’s Selected Pedagogy (cont’d)  Two versus three-course sequence?  A vast majority of institutions use a two-course sequence, CS1 and CS2, for several decades  We have been using a three-course sequence at KFUPM  Problems students should solve have become more complex and the tools they must use have become more sophisticated  Vindicated by the CC2001 report  Learn to use versus learn to implement?  School 1: students do not need to re-invent the wheel  Sufficient to use what is available  School 2: students must know what goes under the hood  Students must come up with their own implementations of basic data structures  School 3: a hybrid of 1 and 2

7 7 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Students’ Performance in Programming Courses Most teachers will be accustomed to the struggles of their first year students as they battle in vain to come to grips with this most basic of skills and many will have seen students in later years carefully choosing options so as to minimise the risk of being asked to undertake any programming. If students struggle to learn something, it follows that this thing is for some reason difficult to learn. If educators hope to teach it effectively, they must understand precisely what it is that makes learning to program so very difficult for so very many students. Tony Jenkins http://www.psy.gla.ac.uk/~steve/localed/jenkins.html

8 8 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Students’ Performance in Programming (cont’d)  Many studies show evidence of students struggling in programming classes  Low pass rates, high failure and dropout rates  A study by Beise and others (2003) in a beginning programming class found that  the overall probability of passing CS1 the first time was 40% across all majors, with an initial failure rate of 19.5%, and a withdrawal rate of 40.5%.  Computer Science majors pass the class 55.5% of the time, with 27.5% failure rate  Information Systems majors pass the class 31% of the time, with 16% failure rate  others (mainly math majors) pass the class 33.5% of the time, with 15% failure rate  A recent study by Eckerdal and others (2006) found that majority of the graduating students in their sample cannot design a software system  Over 20% produced nothing  Over 60% communicated no significant progress toward a design  Problems with programming skills seem to be independent of country and educational system,

9 9 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Challenges Learning & Teaching Programming 1.Programming is problem-solving- and precision-intensive  Requires higher-order thinking skills to design, create and diagnose programs  Other courses require only lower-level skills, such as memorization  A single semi-colon can be the difference between success and failure! 2.Programming is a multi-processes activity  Translate the specification into an algorithm  Ensure correctness and efficiency of the algorithm  Translate the algorithm into program code 3.Programming requires more than one learning style  Both surface and deep learning styles are required to succeed  Surface learning can be useful for remembering syntax, operator precedence etc  Deep learning is required to develop true programming competence

10 10 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Challenges Learning Programming (cont’d) 4.Programming is not a body of knowledge, it is a skill requiring practice  Programming is learnt by programming, not from reading books!  The need for practice poses an additional challenge to students 5.The Vehicle – the teaching language problem  Languages used for teaching introductory programming were not designed for teaching  Languages designed for serious use by programmers are hardly suitable for the novice  Language selection should be guided by reasons of pedagogy rather than by reasons of industry use 6.Time factor: programming normally taught in the first year  Students are, typically, in a transition to a university life during the first year  Perhaps living away from home for the first time, etc

11 11 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Strategies for Teaching Programming at KFUPM 1.Learning and teaching in an authentic context  Concepts etc are taught within the context of a complete object-oriented implementation (i.e., a complete program)  Develop examples in their entirety or develop them step by step  Requires careful collaborative planning to develop course material of high instructional value  Yield high pedagogic dividends 2.Maintain focus while remaining in context  Teach only the syntactic details and programming skills which are needed in the context of the modeled example  Enables the use of new knowledge in the actual context without getting sidetracked by details irrelevant to the problem  Avoid cognitive overload  Requires careful preparation on the part of the instructor

12 12 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Strategies for Teaching Programming (cont’d) 3.Learning and teaching through gradual progression  Begin from the concrete, informal and progress to the abstract and formal  Begin with familiar examples and increase the level of abstraction using scaffolding 4.Promote student-student collaboration through group work  Breaking barriers between students, learning from each other  Active learning, preparation for the real-world  Creates communities of learners and minimizes the effect of a solo learning experience  Beware of freeloaders, dissipating responsibility 5.Student-student tutoring  Java helpdesk  Basic courses help sessions  Students often better instructors of their peers!

13 13 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Strategies for Teaching Programming (cont’d) 6.Give students time to grow  Instructor guidance should fade gradually through the curriculum  Enables students to gain deeper understanding through self discovery  Enables students to be better problem solvers and life-long learners 7.Authentic assessment, timely and appropriate feedback  Assessment drives both teaching and learning  If you want to promote learning, use authentic assessment  Ensure assessments align with  Course objective  Teaching and learning activities  Publicize grading rubrics for all assigned tasks

14 14 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Are We Home, Yet? – Advice to Administrators  Leniency versus strictness in the first course  Where should our sieving point be, if at all?  Standard versus flexible delivery  Should our delivery match international standards?  Are our students’ needs special that they need special treatment?  Close versus loose course coordination  Common exams or per-section exams?  Instructor taste and individuality versus commonality w.r.t. course content and instruction  How do instructors use their creativity within a common framework?  How do we maintain our course contents as instructors come and go?

15 15 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Are We Home, Yet? – Advice to Administrators  Difficulty and cruciality of teaching programming courses must be recognized  Be prepared to take the blame from instructors of higher-level courses  Instructors more likely to get low students’ evaluation  Programming skills must be nurtured  Programming must be taught by those who can teach programming, not by those who can program!  An armory of experienced instructors must be deployed to teach programming  Programming skills must be used!  Students must find application of their skills in the curriculum and beyond  Higher-level courses must be deliberately designed to exploit these skills  Teaching must be (re)-valued!  Give teaching the recognition/value it deserves

16 16 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Summary  Outlined pedagogical approaches to teaching introductory courses  Brief statistics of students’ performance in programming  Difficulties in learning & teaching programming  Strategies adopted at KFUPM to address the problems  Considerations for greater success

17 17 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 The End Questions / Comments

18 18 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 References 1.ACM & IEEE-CS Joint Task Force on Computing Curricula 2001 (2001). Computing Curricula 2001. Association for Computing Machinery and the Computer Society of the Institute of Electrical and Electronics Engineers. Available: http://www.acm.org/sigcse/cc2001http://www.acm.org/sigcse/cc2001 2.Tony Jenkins, On the Difficulty of Learning to Program, School of Computing University of Leeds, UK. Available: http://www.psy.gla.ac.uk/~steve/localed/jenkins.html http://www.psy.gla.ac.uk/~steve/localed/jenkins.html 3.Beise, C., Myers, M., VanBrackle, L, & Chevli-Saroq, N. (2003, forthcoming). An examination of age, race, and sex as predictors of success in the first programming course. Journal of Informatics Education and Research. 4.Eckerdal,A., McCartney, R., Mostrom, J.E., Ratcliffe, M., & Zander, C., Can graduating Students Design Software Systems? Conference Proceeding of the 37 th SIGCSE Technical Symposium on Computer Science Education, March 1-5, 2006, Houston Texas, USA.


Download ppt "1 Experience Sharing Workshop, KFU, Al-Hasa June 10, 2006 Strategies for Developing and Teaching Programming Courses at KFUPM Sahalu Junaidu, PhD Information."

Similar presentations


Ads by Google