Orig­i­nal source pub­li­ca­tion: Brito, M. A. and F. de Sá-Soares (2010). Com­puter Pro­gram­ming: Fail Fast to Learn Sooner. In Lytras, M. D., P. O. De Pab­los, D. Avi­son, J. Sip­ior, Q. Jin, W. Leal, L. Uden, M. Thomas, S. Cer­vai and D. Horner (Eds.), Pro­ceed­ings of the First Inter­na­tional Con­fer­ence TECH-EDU­CA­TION 2010—Tech­nol­ogy Enhanced Learn­ing: Qual­ity of Teach­ing and Edu­ca­tional Reform, 223–229. Athens (Greece). Com­mu­ni­ca­tions in Com­puter and Infor­ma­tion Sci­ence 73. Hei­del­berg: Springer-Ver­lag. ISBN: 978-3-642-13165-3.
The final pub­li­ca­tion is avail­able here.

Com­puter Pro­gram­ming: Fail Fast to Learn Sooner

Miguel A. Brito and Fil­ipe de Sá-Soares

Uni­ver­sity of Minho, Depart­ment of Infor­ma­tion Sys­tems, Guimarães, Por­tu­gal

Abstract

Com­puter pro­gram­ming is not only to know about the lan­guages or the processes, it is essen­tially to know how to do it. This involves a con­struc­tivist approach in learn­ing. For a new­bie in com­puter pro­gram­ming it is hard to under­stand the dif­fer­ence between know-about dis­ci­plines and the know-howto-do-it ones. This leads to fail­ure because when they under­stand they aren’t able to solve a pro­gram­ming prob­lem it is usu­ally too late to catch all the time mean­while lost. Our solu­tion is to get them to fail soon enough. This way they still have time to recover from an even­tu­ally bad start.

For an aver­age stu­dent to real­ize a fail­ure it is required a failed exam­i­na­tion. This is the fourth year we are adopt­ing auto­mated weekly tests for fast fail­ure and con­se­quent moti­va­tion for study, in the uni­ver­sity first year dis­ci­pline of com­puter pro­gram­ming fun­da­men­tals. The results are con­vinc­ing.

Key­words: Pro­gram­ming Edu­ca­tion; Learn­ing and Teach­ing Com­puter Pro­gram­ming to Novice Stu­dents; Con­struc­tivism

1. Reasons for Failure

The lit­er­a­ture iden­ti­fies sev­eral rea­sons for stu­dents fail­ure when learn­ing to pro­gram [Robins et al. 2003], some address the cur­ricu­lum, oth­ers focus on method­olo­gies [Cook 2008], resources or the best first pro­gram­ming lan­guage to use [Duke et al. 2000]. The inher­ent dif­fi­culty of pro­gram­ming [Teague and Roe 2008; Winslow 1996] and con­trol­ling what kind of mis­takes stu­dents are more likely to make [Spohrer and Soloway 1986] are also addressed.

How­ever, a well known truth about teach­ing pro­gram­ming is that a moti­vated stu­dent needs lit­tle guid­ance so he will suc­ceed no mat­ter how bad are the over­all con­di­tions, teach­ers included; also a stu­dent not moti­vated to spend some weekly hours prac­tic­ing will fail no mat­ter what the teacher says or how well the teacher explains all about com­puter pro­gram­ming.

Another con­clu­sion our teach­ing expe­ri­ence lead to is that many stu­dents do not have a real­is­tic idea about their effec­tive study per­for­mance.

Papers about dif­fi­cul­ties in com­puter pro­gram­ming learn­ing can be found in the lit­er­a­ture [Jenk­ins 2002]. In [Gomes and Mendes 2007], these dif­fi­cul­ties are divided in cat­e­gories. In this paper the main con­cern is to address the need to per­suade stu­dents to crit­i­cally analyse their study method­ol­ogy and progress over the semes­ter. So the focus is on fail­ure rea­sons that can be over­lapped by tun­ing com­puter pro­gram­ming ethod­ol­ogy of study.

2. Constructivism in Education

Con­struc­tivism is a learn­ing the­ory in which Jean Piaget argues that peo­ple (and chil­dren in par­tic­u­lar) build their knowl­edge from their own expe­ri­ence rather than on some kind of infor­ma­tion trans­mis­sion.

Later, based on Piaget and oth­ers’ work with the expe­ri­en­tial learn­ing par­a­digm, impor­tant works have been devel­oped, such as Kolb’s Expe­ri­en­tial Learn­ing Model [Kolb and Fry 1975], which rein­forces the role of per­sonal exper­i­ment in learn­ing and sys­tem­atizes iter­a­tions of reflec­tion, con­cep­tu­al­iza­tion, test­ing and back again to new expe­ri­ences. A rich set of works about con­struc­tivism in edu­ca­tion can be found in [Steffe and Gale 1995].

Mean­while the dis­cus­sion was brought to the com­puter sci­ence edu­ca­tion field claim­ing that real under­stand­ing demands active learn­ing on a lab envi­ron­ment with teacher’s guid­ance for ensur­ing reflec­tion on the expe­ri­ence obtained from prob­lem solv­ing exer­cises. Pas­sive com­puter pro­gram­ming learn­ing will likely be con­demned to fail­ure [Ben-Ari 1998; Had­jer­rouit 2005; Wulf 2005]. Indeed, con­struc­tivism can even be used to explain the prob­lem of weak stu­dents and be part of the solu­tion [Lui et al. 2004].

3. Why Weekly Assessment

An inter­est­ing study that crosses stu­dents’ indi­vid­ual cog­ni­tive level with the types of errors made [Ran­jeeth and Naidoo 2007] sug­gests the need to adopt inno­v­a­tive strate­gies in order to counter the seem­ingly per­pet­ual rate of fail­ure and at the same time increase the inten­sity for stu­dents with bet­ter cog­ni­tive level.

What­ever the rea­son, the ulti­mate truth is that a lot of things can go wrong when learn­ing com­puter pro­gram­ming, espe­cially in under­grad­u­ate courses.

So it is vir­tu­ally impos­si­ble to pre­vent them all, mainly because stu­dents tend to over­es­ti­mate their own under­stand­ing [Lahti­nen et al. 2005] and usu­ally they are not very open to fol­low your good advices, espe­cially if fol­low­ing those advices means more work.

This leads to the only win­ning strat­egy we have found so far: fail fast to learn sooner. If fre­quent assess­ment oppor­tu­ni­ties are given to the stu­dent, no mat­ter the rea­son why he is even­tu­ally per­form­ing badly, two impor­tant goals are imme­di­ately achieved:

Even for stu­dents who do not need to fail to cor­rect even­tual study errors, we observe that weekly assess­ment is an extra moti­va­tion for not post­pon­ing study and con­se­quently they will also attend next class bet­ter pre­pared [Becker and Devine 2007].

Other medium term issues related with tun­ing the dis­ci­pline from year to year are also addressed by weekly assess­ment. The order­ing of dif­fer­ent con­cepts by dif­fi­culty [Milne and Rowe 2002] can be inferred from final exam­i­na­tions or by directly ask­ing stu­dents and teach­ers, but if we have auto­mated weekly assess­ments this kind of data is all over. So it is eas­ier tun­ing the classes’ dis­tri­bu­tion along the year, ded­i­cat­ing more time and exer­cises to those issues we know stu­dents need more time to assim­i­late and even­tu­ally to con­cen­trate eas­ier sub­jects in less classes.

4. How Weekly Assessment

Weekly assess­ment involves sev­eral dimen­sions. First we need a method­ol­ogy and then imple­men­ta­tion resources. For the method­ol­ogy we have a set of sup­pos­edly good advices and tuto­r­ial sup­port dur­ing classes but in this con­text it is enough to focus on the method the stu­dents need to fol­low each week.

4.1 Our Method

Our learn­ing method­ol­ogy includes a method of weekly work com­posed of the fol­low­ing steps:

Besides the already men­tioned advan­tages from each step of the method, the whole set addresses main con­struc­tivism claims since pro­vides sys­tem­atic pro­gres­sive inter­ac­tions with the same con­cepts with teacher’s guid­ance and con­se­quently facil­i­tat­ing stu­dents’ reflec­tion and appre­hen­sion.

4.2 Self Assessment

Stu­dents have a weekly project com­posed of exer­cises sim­i­lar to the ones in the weekly assess­ment. Once their weekly study is done, and only then, they try to solve all the ques­tions in order to self assess their knowl­edge. In case of dif­fi­cul­ties they should go back to the book or ask teacher for guid­ance.

The res­o­lu­tion of the project is sub­mit­ted to teach­ers for con­trol pur­poses.

4.3 The Weekly Assessment

The weekly assess­ment is not just a weekly assess­ment–it is a weekly assess­ment with weekly feed­back, i.e. the main goal is not just to put some pres­sure on the stu­dents. It would not be the same if the stu­dents did weekly assess­ment but only obtain the grades at the end. An impor­tant fea­ture is that each stu­dent has imme­di­ate feed­back and can still cor­rect in time his study method­ol­ogy.

Unfor­tu­nately it is incred­i­bly sim­ple for a very well inten­tioned stu­dent to diverge from the suc­cess path with­out notice.

We are deal­ing with novice first year under­grad­u­ate stu­dents and it is never too much to stress that we are deal­ing with novice first year under­grad­u­ate stu­dents... This means an extra charge of dis­trac­tions aside from the inher­ent adap­ta­tion issues.

Com­pletely out of that path of suc­cess is the temp­ta­tion to stop study­ing after under­stand­ing a prob­lem’s solu­tion, but before know­ing how to do it him­self. Even if the stu­dent gets to the solu­tion of a kind of prob­lem he must con­sider the time that was nec­es­sary to do it—it is still a long way (ok, maybe not always that long) between the points I-can-solve-it and I-can-solve-it-fast-enough.

It is also not rare that stu­dents study a lot and know very lit­tle, just because they are not doing it well. For instance, a stu­dent can spend daily hours study­ing syn­tax issues, solv­ing prob­lems and the­o­ret­i­cal ques­tions with­out really solv­ing any prob­lem him­self... big mis­take!

Nev­er­the­less, if by any chance an already rare stu­dent per­ceives or sus­pects of flaws in his study method­ol­ogy the nor­mal ten­dency will be to post­pone even­tual cor­rec­tive mea­sures even if he knew one and gen­er­ally that is not the case.

But even worse than that is the sit­u­a­tion of a stu­dent that has the chance to have an atten­tive teacher that diag­no­sis one of those described issues and gives the stu­dent guid­ance and con­crete cor­rec­tive mea­sures... nev­er­the­less the stan­dard stu­dent will not trust the teacher’s diag­no­sis.

All this issues can be solved in time if you give the stu­dent the oppor­tu­nity to fail fast if some­thing is going wrong. This oppor­tu­nity is called weekly assess­ment and is the main secret that allows the stu­dent: (i) to per­ceive that there is an issue to address, (ii) to believe the issue should be addressed, (iii) to believe the issue will not dis­ap­pear by itself, and (iv) to address it in time.

Weekly assess­ment will give the stu­dent the oppor­tu­nity to cor­rect what­ever may be wrong with­out hav­ing to wait till next (year or semes­ter) edi­tion of the course.

4.4 Implementation Resources

Some authors ([Costello 2007] and [Duke et al. 2000]) agree on the mer­its of fre­quent assess­ment but have a small enough num­ber of stu­dents or a big enough num­ber of hours x teach­ers.

We do not have such resources and have almost two hun­dred stu­dents and only a lab­o­ra­to­r­ial teacher. Nev­er­the­less, a third fac­tor in the equa­tion may be auto­mated test­ing of the prob­lems solved by stu­dents.

5. Our Outcomes with Weekly Assessment

Since we intro­duced weekly assess­ment the num­ber of retained stu­dents was dra­mat­i­cally reduced.

How­ever, this is not pos­si­ble with­out some extra resources. In the case we choose to invest in auto­mated assess­ment.

A first and strong indi­ca­tor of the weekly assess­ment suc­cess is the evo­lu­tion of the per­cent­age of stu­dents that stay till the end, i.e. that do not drop at the mid­dle of the semes­ter.

Table 1 shows this evo­lu­tion for the last five years. The read­ing of this table is not com­pletely lin­ear because some other fac­tors changed mean­while. How­ever, the evo­lu­tion is quite clear and shows that the efforts in increas­ing the assess­ment fre­quency resulted in greater per­cent­age of stu­dents that stick till the end of semes­ter.

Table 1. Stu­dents that stick till the end of semes­ter per­cent­age evo­lu­tion

Table 1

In 2004/2005 a small project was quar­terly assessed; i.e. there were two assess­ment points per semes­ter.

Dur­ing 2005/2006 small prob­lems res­o­lu­tion in com­put­ers’ lab were added to the assess­ment on a monthly basis.

In 2006/2007 a weekly auto­mated the­o­ret­i­cal-prac­ti­cal (TP) assess­ment was imple­mented and com­ple­mented with a quar­terly lab­o­ra­to­r­ial (L) assess­ment.

Dur­ing 2007/2008 the fre­quency of lab­o­ra­to­r­ial assess­ment was increased to monthly.

Finally, 2008/2009 was the year when the whole assess­ment was auto­mated and weekly per­formed.

The ratio of approval is also grow­ing—4% in 2005/2006, 2% the year after, 1% in 2007/2008 and finally a huge 13% jump last year with the weekly fully auto­mated assess­ment—a 20% total improve­ment in five years! It should be men­tioned that this evo­lu­tion was achieved nei­ther by shrink­ing the syl­labus nor by decreas­ing the level of rigor imposed to the course over the years.

Another impor­tant indi­ca­tor is the num­ber of stu­dents being able to suc­ceed the dis­ci­pline on first attempt or bet­ter said the num­ber of attempts a stu­dent needs in order to suc­ceed.

For Table 2 con­struc­tion we con­sid­ered the divi­sion suc­cess-before and suc­ces­safter weekly assess­ment imple­men­ta­tion.

Table 2. Per­cent­age of approvals in first, sec­ond and third attempts

Table 2

Achiev­ing suc­cess in first attempt is very impor­tant for sev­eral rea­sons. There is an asso­ci­ated cost for the stu­dent which is both mon­e­tary and func­tional. For teach­ers and uni­ver­sity sec­ond attempts rep­re­sent an increased com­plex­ity in resources and man­age­ment.

Con­se­quently, a twenty per cent incre­ment in first attempt suc­cess is a very pos­i­tive result.

Acknowledgments

We would like to express our grat­i­tude to Miss Sónia Valente, sec­re­tary of the Tech­nolo­gies and Infor­ma­tion Sys­tems under­grad­u­ate course board for her kind sup­port in obtain­ing some extra data about course past edi­tions.

References