180 likes | 334 Views
Teaching Software Development: an Empirical Study on a Graduate Program. Marie-Helene Ng Cheong Vee & Constantinos Constantinides School of Computer Science and Information Systems Birkbeck, University of London. Agenda. The Birkbeck Experience MSC in Computer Science
E N D
Teaching Software Development: an Empirical Study on a Graduate Program Marie-Helene Ng Cheong Vee & Constantinos Constantinides School of Computer Science and Information Systems Birkbeck, University of London
Agenda • The Birkbeck Experience • MSC in Computer Science • Introduction in C++ • Object-oriented programming • Software engineering • Survey - Set Up • Questionnaire • Survey – Outcome • General recommendations 5th Annual LTSN-ICS Conference
The Birkbeck Experience • Conversion graduate programs • Common in the UK • Aim: Allow transfer of knowledge from one domain to another • Primarily part-time and day-release students • Different needs from full-time students • Computer Science unusual – 50/50 split with full-time 5th Annual LTSN-ICS Conference
MSc in Computer Science • F/T = 1 yr & P/T= 2 years • Presumes (very) limited prior knowledge of programming • Starts with an intensive C++ course & SSADM procedural objects • Then Java(OOP) & UP(SoftEng) Objects first using BlueJ approach and tool Some students used/migrated to Eclipse, Netbeans 5th Annual LTSN-ICS Conference
Introduction in C++ • Introduction to programming • Term 1: procedural programming • Term 2: classes and objects • 5 assignments: 5 level of difficulty • 1, 2 & 3: Procedural • 4: OO • 5: Procedural or OO (free choice) 5th Annual LTSN-ICS Conference
Object-Oriented Programming • 2 terms: Java (basic and advanced) , C#, Comparison of Java & C#, Design Patterns • F/T: short 1-term break • P/T: long summer break • 4 assignments: • P/T: Individual work • F/T: 2 Individual + 1 Pair + 1 Group • 4th Assignment (F/T) • XP Practice • Usage of concepts learnt from other classes e.g UML and UP (SoftEng) 5th Annual LTSN-ICS Conference
Software Engineering • F/T: parallel with OOP (spring term) • P/T: OOP followed by SoftEng • Covers state of the art in OO Software Development • OOA/D & Modeling with the UML • Context: Iterative and Agile process -> UP • Real-world case-study (Inception and Elaboration phases of UP for POS system) • Non-assessed group work • Design OO system & produce UML artifacts • Literature survey on adoption of OOA/D, UML and UP 5th Annual LTSN-ICS Conference
Survey • Aim: student’s view point on SD pathway in the course • Follow-up: critically examine teaching methodology to improve the course • Distribution: last week of 2003 spring term • Participation 5th Annual LTSN-ICS Conference
Questionnaire • Possibility of remaining anonymous • 2 Parts • Student’s background • Background disciplines (e.g. Law, Social Sciences…) • Survey’s aim: Questions • Multiple Choice • Open-ended 5th Annual LTSN-ICS Conference
Previous programming experience Previous experience in OOP Full-time 21 (63.6%) 10 (30.3%) Part-time 26 (60.5%) 6 (14%) Survey Results 1 5th Annual LTSN-ICS Conference
From algorithmic thinking to code • Depth of coverage of programming concepts: From algorithmic thinking to code • Q7: Can be verified by OOP assignment 4 results(F/T) • Experience: focus on syntax v/s concepts • Teaching methodology + examinations • Textbooks • Recommendation: • Change teaching methodology: problem-based approach 5th Annual LTSN-ICS Conference
Choice of paradigm & ordering of classes • Q5: Time period = problematic given the requirements of the program and its time constraints • School’s view: procedural thinking necessary before learning OOP • We argue this is not necessarily so • Students need to see the bigger picture to take advantage of OO concepts [Borstler&Johansson &Nordstrom, 2002] • Bottom-Up approach not applicable -> Programming in the large or Inverse Curriculum [Knudsen&Madsen, 1996] • Introduce the concepts of the chosen paradigm early and often (P/T would like greater depth of coverage of OOP) [Meyer, 1993] • OOP does not discard procedural thinking 5th Annual LTSN-ICS Conference
Choosing a first programming language • Why C++? • Intro. to C++ 1st half can be blended in OOP • Student’s prefer Java for OOP(it helped them more in grasping OO concepts (Java is more readable & pure) • Java/Modern language from the start: • Enables greater depth of coverage of OOP • Improves student’s abstract thinking • Creates awareness of older languages shortcomings • Prepares student for the future as language constructs spreads in industry. 5th Annual LTSN-ICS Conference
Using case-studies in teaching • Case study followed UP • Q11: Why this no. of disagreement: • May be: Time constraints did not allow practical work 5th Annual LTSN-ICS Conference
Developing other skills • Unusual facts: • Of those who did not like group work, some had worked in industry as programmers. • state of mind/attitutude workplace v/s education? • Although Q8 NA to P/T, 24 answered favorably & 10 did not respond • Suggestion: Deployment of more advanced development tools (e.g. VisualAge, WebSphere) • Beginners v/s more experienced students 5th Annual LTSN-ICS Conference
Project work and future plans • Difference between P/T and F/T: • Most P/T are industry employees (many already in the IT sector): expectations might be higher BUT may not be prepared to make a strong commitment to the program -> therefore, expect more teaching than experimenting 5th Annual LTSN-ICS Conference
General Recommendations • For all CS conversion programs that face similar issues. • Aim: Teach maximum & high quality CS course within time constraints • Replace “Intro. in C++” by “OOP” • More concepts can be covered • No paradigm shift • Use Java and C# to explain OO concepts • Follow “Software Engineering” by “OOP” • Will allow group project work – complex OO applications 5th Annual LTSN-ICS Conference
Email:marie-helene@dcs.bbk.ac.uk Website: http://www.dcs.bbk.ac.uk/~gngch01 SE group:http://www.dcs.bbk.ac.uk/research/softeng/