Teaching Software Development: an Empirical ... - HEA ICS

concepcionsockSoftware and s/w Development

Aug 15, 2012 (4 years and 11 months ago)

332 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


2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

2

Agenda


The Birkbeck Experience



MSC in Computer Science



Introduction in C++



Object
-
oriented programming



Software engineering



Survey
-

Set Up



Questionnaire



Survey


Outcome



General recommendations


2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

3

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



2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

4


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


MSc in Computer Science

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

5

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)


2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

6


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


4
th

Assignment (F/T)


XP Practice


Usage of concepts learnt from other classes e.g
UML and UP (SoftEng)









2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

7

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



2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

8

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




Participants

Total no. of
students

F/T

33

35

P/T

43

45

F/T + P/T

76

80

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

9

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

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

10

Survey Results 1




Previous
programming
experience


Previous
experience in
OOP


Full
-
time


21 (63.6%)


10 (30.3%)


Part
-
time


26 (60.5%)


6 (14%)


2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

11

From algorithmic thinking

to code


Depth of coverage of programming concepts: From algorithmic
thinking to code


QUESTION

F/T
(33)

%

P/T
(43)

%

2

Depth of coverage of OO programming languages
was satisfactory

25

75.8

21

48.4

4

Coverage of the area of Software Development is
satisfactory.

27

81.8

35

81.4

7

Ability to apply concepts across modules

29

87.9

33

76.7



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

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

12

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


QUESTION

F/T
(33)

%

P/T
(43)

%

3

Order in which classes/languages are taught are satisfactory

31

94

41

95.3

5

Average time taken for paradigm shift

2
-
3m

NA

4m

NA

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

13

Choosing a first programming
language


Why C++?


Intro. to C++ 1
st

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.



QUESTION

F/T
(33)

%

P/T
(43)

%

1

Choice of programming languages offered was satisfactory

32

97

43

100

6

Java as the best language to best grasp OO concepts

23

69.7

26

60.5

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

14


Using case
-
studies in teaching


Case study followed UP


Q11: Why this no. of disagreement:


May be: Time constraints did not allow
practical work

QUESTION

F/T
(33)

%

P/T
(43)

%

10

Coverage of process, methodology and modeling was well
-
balanced in “Software Engineering”

26

78.8

35

81.4

11

Case study aided understandability of “Software
Engineering”

27

81.8

30

69.8

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

15

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



QUESTION

F/T
(33)

%

P/T
(43)

%

8

Group work was helpful and productive

25

75.8

24

55.8

9

Tools were adequate in helping to reach goals

26

78.8

28

65.1

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

16

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


QUESTION

F/T
(33)

%

P/T
(43)

%

12

Interest in undertaking a project in OO software development

23

69.7

28

65.1

13

Interest in pursuing a career in software development

29

87.9

29

67.4

2
nd

Sept. 04

5
th

Annual LTSN
-
ICS Conference

17


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


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/