-
Notifications
You must be signed in to change notification settings - Fork 3
/
CS_Ed_anon.bib
1904 lines (1708 loc) · 121 KB
/
CS_Ed_anon.bib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% %%%%%%%%
%%%%%%%% %%%%%%%%
%%%%%%%% REMEMBER! %%%%%%%%
%%%%%%%% %%%%%%%%
%%%%%%%% Please update this file on the github repository, not in an overleaf project %%%%%%%%
%%%%%%%% Overleaf projects should link to the URL %%%%%%%%
%%%%%%%% http://cs.haverford.edu/people/davew/DaveW-Thesis-Boilerplate/CS_Ed.bib %%%%%%%%
%%%%%%%% (Click "upload" (the up-arrow below "menu" in the upper left"), %%%%%%%%
%%%%%%%% choose "From External URL", and paste that URL in the box, %%%%%%%%
%%%%%%%% and, a couple of minutes after each edit, click "refresh" in the file in overleaf); %%%%%%%%
%%%%%%%% If that doesn't seem update from this git repo, every few minutes, email davew.) %%%%%%%%
%%%%%%%% %%%%%%%%
%%%%%%%% Unless you're editing directly on github.com, remember to pull first! %%%%%%%%
%%%%%%%% (changes should show up within 2 min. if you "refresh" the imported file in overleaf) %%%%%%%%
%%%%%%%% %%%%%%%%
%%%%%%%% When adding to the bibliography: %%%%%%%%
%%%%%%%% * please keep things sorted by year %%%%%%%%
%%%%%%%% + Web sites, etc., should go at the end %%%%%%%%
%%%%%%%% * please use labels structured author(s) year ":" topic/idea/title, e.g.: %%%%%%%%
%%%%%%%% + 1-author papers, e.g. Sorva13:Notiona1 %%%%%%%%
%%%%%%%% + many-author papers, e.g., CFF01:stepper, FFFK18:HtDP %%%%%%%%
%%%%%%%% + Note: %%%%%%%%
%%%%%%%% standard structure makes it easy to type the citation in overleaf.com %%%%%%%%
%%%%%%%% if I have to edit these, I'll keep the old label as a comment, e.g. DuBoulay %%%%%%%%
%%%%%%%% %%%%%%%%
%%%%%%%% Last edits: several 2024-07-26 1457 Eastern Time %%%%%%%%
%%%%%%%% %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% List of CS Education articles, sorted by year, and, within that, alphabetically by first author
%% Also, we could add comments like % TAG: ExperimentalDesign, and then search for them
%% Tags include: ExperimentalDesign, NotionalMachine, Recursion, LowLevel, OOP, Accessibility
%%%%%%%%%%%%%% Articles published in 1932 %%%%%%%%%%%%%%
@article{Church32:Lambda,
title = {A set of postulates for the foundation of logic},
author = {Alonzo Church},
year = 1932,
month = Apr,
journal = {Annals of Mathematics},
volume = {33},
number = {2},
pages = {346–366},
doi = {10.2307/1968337},
}
%%%%%%%%%%%%%% Articles published in 1936 %%%%%%%%%%%%%%
@article{Church36:Lambda,
title = {An unsolvable problem of elementary number theory},
author = {Alonzo Church},
year = 1936,
month = Apr,
journal = {American Journal of Mathematics},
volume = {58},
number = {3},
pages = {345–363},
doi = {10.2307/2371045}
}
%%%%%%%%%%%%%% Articles published in 1981 %%%%%%%%%%%%%%
% TAG: NotionalMachine
%%% WAS: DuBoulay:Notional81
@article{DOM81:Notional,
title = {The black box inside the glass box: presenting computing concepts to novices},
journal = {International Journal of Man-Machine Studies},
volume = {14},
number = {3},
pages = {237-249},
year = {1981},
issn = {0020-7373},
doi = {https://doi.org/10.1016/S0020-7373(81)80056-9},
url = {https://www.sciencedirect.com/science/article/pii/S0020737381800569},
author = {Benedict du Boulay and Tim O'Shea and John Monk},
abstract = {Simplicity and visibility are two important characteristics of programming languages for
novices. Novices start programming with very little idea of the properties of the notional machine
implied by the language they are learning. To help them learn these properties, the notional machine
should be simple. That is, it should consist of a small number of parts that interact in ways that
can be easily understood, possibly by analogy to other mechanisms with which the novice is more familiar.
A notional machine is the idealized model of the computer implied by the constructs of the programming
language. Visibility is concerned with methods for viewing selected parts and processes of this
notional machine in action. We introduce the term “commentary” which is the system's dynamic
characterization of the notional machine, expressed in either text or pictures on the user's terminal.
We examine the simplicity and visibility of three systems, each designed to provide programming experience
to different populations of novices.}
}
%%%%%%%%%%%%%% Articles published in 1983 %%%%%%%%%%%%%%
% TAG:Recursion
@inproceedings{Kahney:NoviceRec83,
author = {Kahney, Hank},
title = {What Do Novice Programmers Know about Recursion},
year = {1983},
isbn = {0897911210},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/800045.801618},
doi = {10.1145/800045.801618},
abstract = {Recent research into differences between novice and expert computer programmers has provided evidence that experts know more than novices, and what they know is better organized. The conclusion is only as interesting as it is intuitive. This paper reports an experiment which was designed to determine precisely what novice programmers understand about the behaviour of recursive procedures, and exactly how their understanding differs from an expert's understanding of the process. The results show that different novices understand, or misunderstand, different things. Implications of the findings are discussed with respect to other research into novice and expert programming performance.},
booktitle = {Proceedings of the SIGCHI Conference on Human Factors in Computing Systems},
pages = {235–239},
numpages = {5},
location = {Boston, Massachusetts, USA},
series = {CHI '83}
}
%%%%%%%%%%%%%% Articles published in 1984 %%%%%%%%%%%%%%
% inproceedings{10.1145/800039.808655,
@inproceedings{Ford84:Recursion,
author = {Ford, Gary},
title = {An Implementation-Independent Approach to Teaching Recursion},
year = {1984},
isbn = {0897911261},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/800039.808655},
doi = {10.1145/800039.808655},
abstract = {The principle of abstraction, of separating a concept from a particular implementation of that concept, is gaining increasingly widespread use in programming and problem solving, and in teaching these subjects. A method of teaching the abstract concept of recursion, independent of its implementation, is presented.},
booktitle = {Proceedings of the Fifteenth SIGCSE Technical Symposium on Computer Science Education},
pages = {213–216},
numpages = {4},
series = {SIGCSE '84},
annotate = {Bases thinking about recursion on ``procedural abstraction'' and ``math. induction''; interesting examples focusing on understanding of {\em corrrectness} of algorithms, with both ``weak'' and ``strong'' induction; an interesting claim that induction is more fundamental than axioms and theorems.}
}
@article{10.1145/952980.808655,
author = {Ford, Gary},
title = {An Implementation-Independent Approach to Teaching Recursion},
year = {1984},
issue_date = {February 1984},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {16},
number = {1},
issn = {0097-8418},
url = {https://doi.org/10.1145/952980.808655},
doi = {10.1145/952980.808655},
abstract = {The principle of abstraction, of separating a concept from a particular implementation of that concept, is gaining increasingly widespread use in programming and problem solving, and in teaching these subjects. A method of teaching the abstract concept of recursion, independent of its implementation, is presented.},
journal = {SIGCSE Bull.},
month = {jan},
pages = {213–216},
numpages = {4}
}
%%%%%%%%%%%%%% Articles published in 1986 %%%%%%%%%%%%%%
% TAG: NotionalMachine
% SAGE id is doi:10.2190/3LFX-9RRF-67T8-UVK9
@article{DuBoulay:Notional86,
author = {Benedict Du Boulay},
title ={Some Difficulties of Learning to Program},
journal = {Journal of Educational Computing Research},
volume = {2},
number = {1},
pages = {57-73},
year = {1986},
doi = {10.2190/3LFX-9RRF-67T8-UVK9},
URL = {
https://doi.org/10.2190/3LFX-9RRF-67T8-UVK9
},
eprint = {
https://doi.org/10.2190/3LFX-9RRF-67T8-UVK9
},
abstract = {This article is a brief introduction to some of the issues that teachers of programming may find helpful.
It starts by presenting a fairly idiosyncratic view of teaching programming which makes use of mechanistic analogies and points out some of the pitfalls.
The article goes on to examine certain errors based on the misapplication of analogies as well as certain interaction errors.
The main emphasis is on the notional machine both at the general level of understanding (and misunderstanding)
the relationship of the terminal to the computer as such, as well as at the more specific level of understanding assignment.
Notation and mistakes that poorly-designed languages can induce novices to commit are discussed. }
}
%%%%%%%%%%%%%% Book published in 1992 %%%%%%%%%%%%%%
@book{booth1992learning,
title={Learning to Program: A Phenomenographic Perspective},
author={Booth, S.},
isbn={9789173462563},
lccn={94107307},
series={Acta Universitatis Gothoburgensis: G{\"o}teborg studies in educational sciences},
url={https://books.google.com/books?id=q\_slAQAAIAAJ},
year={1992},
publisher={Acta Universitatis Gothoburgensis}
}
%%%%%%%%%%%%%% Articles published in 1993 %%%%%%%%%%%%%%
@TECHREPORT{F93,
author = {Lindsey Ford},
title = {How Programmers Visualize Programs},
year = {1993}
}
%%%%%%%%%%%%%% Articles published in 1996 %%%%%%%%%%%%%%
@book{AS96:SICP,
author = {Abelson, Harold and Sussman, Gerald J.},
title = {Structure and Interpretation of Computer Programs},
year = {1996},
isbn = {0262011530},
publisher = {MIT Press},
address = {Cambridge, MA, USA},
edition = {2nd},
url = {mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html},
abstract = {From the Publisher:With an analytical and rigorous approach to problem solving and programming techniques,this book is oriented toward engineering. Structure and Interpretation of Computer Programs emphasizes the central role played by different approaches to dealing with time in computational models. Its unique approach makes it appropriate for an introduction to computer science courses,as well as programming languages and program design.}
}
%TAG: VisuallyImpaired
@inproceedings{10.1145/228347.228354,
author = {Raman, T. V.},
title = {Emacspeak—Direct Speech Access},
year = {1996},
isbn = {0897917766},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/228347.228354},
doi = {10.1145/228347.228354},
abstract = {Emacspeak is a full-fledged speech output inter- face to Emacs, and is being used to provide direct speech access to a UNIX workstation. The kind of speech access provided by Emacspeak is qual- itatively different from what conventional screen- readers provide -emacspeak makes applications speak- as opposed to speaking the screen.Emacspeak is the first full-fledged speech output system that will allow someone who cannot see to work directly on a UNIX system (Until now, the only option available to visually impaired users has been to use a talking PC as a terminal.) Emacspeak is built on top of Emacs. Once Emacs is started, the user gets complete spoken feedback.I currently use Emacspeak at work on my SUN SparcStation and have also used it on a DECAL- FHA workstation under Digital UNIX while at Di- gital's CRL 1 . I also use Emacspeak as the only speech output system on my laptop running Linux. Emacspeak is available on the Internet:ftp://crl.dec.com/pub/digitallemacspeak/http://www.research.digital.com/CRL},
booktitle = {Proceedings of the Second Annual ACM Conference on Assistive Technologies},
pages = {32–36},
numpages = {5},
keywords = {access to UNIX workstations, direct speech access},
location = {Vancouver, British Columbia, Canada},
series = {Assets '96}
}
%%%%%%%%%%%%%% Articles published in 1997 %%%%%%%%%%%%%%
@article{HS97,
author = {Holland, Simon and Griffiths, Robert and Woodman, Mark},
title = {Avoiding Object Misconceptions},
year = {1997},
issue_date = {March 1997},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {29},
number = {1},
issn = {0097-8418},
url = {https://doi.org/10.1145/268085.268132},
doi = {10.1145/268085.268132},
abstract = {This paper identifies and describes a number of misconceptions observed in students learning about object technology. It identifies simple, concrete, measures course designers and teachers can take to avoid these misconceptions arising. The context for this work centres on an introductory undergraduate course and a postgraduate course. Both these courses are taught by distance education. These courses both use Smalltalk as an introduction to object technology. More particularly, the undergraduate course uses Smalltalk as a first programming language.Distance education can limit the amount and speed of individual feedback that can be given in the early stages of learning. For this reason, particular attention has been paid to characterizing measures for avoiding elementary misconceptions seen in beginning learners. At the same time we also address some misconceptions observed in postgraduate students. The pedagogical issues discussed are of particular importance when devising an extended series of examples for teaching or assessment, or when designing a visual microworld to be used for teaching purposes.},
journal = {SIGCSE Bull.},
month = {mar},
pages = {131–134},
numpages = {4}
}
@book{FF97:LittleJavaPatterns,
title={A little Java, a few patterns},
author={Matthias Felleisen and Daniel P. Friedman},
year={1997},
url={https://api.semanticscholar.org/CorpusID:27997877}
}
%%%%%%%%%%%%%% Articles published in 1998 %%%%%%%%%%%%%%
%%%%%%%%%%%%%% Articles published in 1999 %%%%%%%%%%%%%%
%% ACM calls this 10.5555/311424, just has 1st edition? from 2018
%% weirdly, this doesn't have the authors????
%% See https://www.amazon.com/exec/obidos/ASIN/0201485672/acmorg-20 vs https://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Signature-dp-0134757599/dp/0134757599
%% IF Fowler doesn't cite the others, maybe I should add them too, in the final version of the paper (see "History" section of that page on Wikipedia for specific theses, etc.)
%% https://en.wikipedia.org/wiki/Code_refactoring#History
@book{Fowler18:Refactoring,
title = {Refactoring: improving the design of existing code},
author = {Martin Fowler},
year = {2018},
isbn = {0134757599},
publisher = {Addison-Wesley Longman Publishing Co., Inc.},
address = {USA},
}
%%%%%%%%%%%%%% Articles published in 2000 %%%%%%%%%%%%%%
%TAG: VisuallyImpaired
@inproceedings{10.1145/354324.354356,
author = {Smith, Ann C. and Francioni, Joan M. and Matzek, Sam D.},
title = {A Java Programming Tool for Students with Visual Disabilities},
year = {2000},
isbn = {1581133138},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/354324.354356},
doi = {10.1145/354324.354356},
abstract = {This paper reports on a tool for assisting students with visual disabilities in learning how to program. The tool is meant to be used by computer science majors learning the programming language Java. As part of the developmental process of building this tool, we have implemented a rapid prototype to be used by people with disabilities in order to define appropriate requirements for the full version of the tool. This requires that the prototype is completely usable via a keyboard and speech interface, and it is easily adaptable for trying out different strategies. In this paper, we present the motivation and philosophy of the full tool, called JavaSpeak. We also present the details of a prototype implementation of JavaSpeak.},
booktitle = {Proceedings of the Fourth International ACM Conference on Assistive Technologies},
pages = {142–148},
numpages = {7},
keywords = {students with visual disabilities, Java, programming tool, learning to program},
location = {Arlington, Virginia, USA},
series = {Assets '00}
}
%%%%%%%%%%%%%% Articles published in 2001 %%%%%%%%%%%%%%
% inproceedings{10.5555/645395.651947,
@inproceedings{CFF01:stepper,
author = {Clements, John and Flatt, Matthew and Felleisen, Matthias},
title = {Modeling an Algebraic Stepper},
year = {2001},
isbn = {3540418628},
publisher = {Springer-Verlag},
address = {Berlin, Heidelberg},
abstract = {Programmers rely on the correctness of the tools in their programming environments. In the past, semanticists have studied the correctness of compilers and compiler analyses, which are the most important tools. In this paper, we make the case that other tools, such as debuggers and steppers, deserve semantic models, too, and that using these models can help in developing these tools.Our concrete starting point is the algebraic stepper in DrScheme, our Scheme programming environment. The algebraic stepper explains a Scheme computation in terms of an algebraic rewriting of the program text. A program is rewritten until it is in a canonical form (if it has one). The canonical form is the final result.The stepper operates within the existing evaluator, by placing breakpoints and by reconstructing source expressions from source information placed on the stack. This approach raises two questions. First, do the run-time breakpoints correspond to the steps of the reduction semantics? Second, does the debugging mechanism insert enough information to reconstruct source expressions?To answer these questions, we develop a high-level semantic model of the extended compiler and run-time machinery. Rather than modeling the evaluation as a low-level machine, we model the relevant low-level features of the stepper's implementation in a high-level reduction semantics. We expect the approach to apply to other semantics-based tools.},
booktitle = {Proceedings of the 10th European Symposium on Programming Languages and Systems},
pages = {320–334},
numpages = {15},
series = {ESOP '01}
}
% TAG: Recursion
@inproceedings{SR:PR,
author = {Sooriamurthi, Raja},
title = {Problems in Comprehending Recursion and Suggested Solutions},
year = {2001},
isbn = {1581133308},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/377435.377458},
doi = {10.1145/377435.377458},
abstract = {Recursion is a very powerful and useful problem solving strategy. But, along with pointers and dynamic data structures, many beginning programmers consider recursion to be a difficult concept to master. This paper reports on a study of upper-division undergraduate students on their difficulty in comprehending the ideas behind recursion. Three issues emerged as the points of difficulty for the students: (1) insufficient exposure to declarative thinking in a programming context (2) inadequate appreciation of the concept of functional abstraction (3) lack of a proper methodology to express a recursive solution. The paper concludes with a discussion of our approach to teaching recursion, which addresses these issues. Classroom experience indicates this approach effectively aids students' comprehension of recursion.},
booktitle = {Proceedings of the 6th Annual Conference on Innovation and Technology in Computer Science Education},
pages = {25–28},
numpages = {4},
location = {Canterbury, United Kingdom},
series = {ITiCSE '01}
}
@article{10.1145/507758.377458,
author = {Sooriamurthi, Raja},
title = {Problems in Comprehending Recursion and Suggested Solutions},
year = {2001},
issue_date = {Sept. 2001},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {33},
number = {3},
issn = {0097-8418},
url = {https://doi.org/10.1145/507758.377458},
doi = {10.1145/507758.377458},
abstract = {Recursion is a very powerful and useful problem solving strategy. But, along with pointers and dynamic data structures, many beginning programmers consider recursion to be a difficult concept to master. This paper reports on a study of upper-division undergraduate students on their difficulty in comprehending the ideas behind recursion. Three issues emerged as the points of difficulty for the students: (1) insufficient exposure to declarative thinking in a programming context (2) inadequate appreciation of the concept of functional abstraction (3) lack of a proper methodology to express a recursive solution. The paper concludes with a discussion of our approach to teaching recursion, which addresses these issues. Classroom experience indicates this approach effectively aids students' comprehension of recursion.},
journal = {SIGCSE Bull.},
month = {jun},
pages = {25–28},
numpages = {4}
}
%%%%%%%%%%%%%% Articles published in 2002 %%%%%%%%%%%%%%
@article{ASP_Clubhouse,
author = {Fisher, Allan and Margolis, Jane},
title = {Unlocking the Clubhouse: The Carnegie Mellon Experience},
year = {2002},
issue_date = {June 2002},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {34},
number = {2},
issn = {0097-8418},
url = {https://doi.org/10.1145/543812.543836},
doi = {10.1145/543812.543836},
abstract = {In the fall of 1995, just seven of 95 students entering the undergraduate program in computer science at Carnegie Mellon University were women. In 2000, 54 of 130, or 42\%, were women. What happened? This article presents a brief history of the transformation at Carnegie Mellon's School of Computer Science, and the research project that lay behind it. A fuller discussion, set in an analysis of gender issues in computing from childhood through college, is found in our book, Unlocking the Clubhouse: Women in Computing [2].The story begins with a research study designed specifically to diagnose and find remedies for the gender gap in Carnegie Mellon's undergraduate computer science program. Female enrollment had hovered below 10\% for a number of years, and the fraction of women leaving the program was approximately twice that for men. In 1995, the Alfred P. Sloan Foundation funded our proposal for a two-year program, which was followed up two years later with a two-year extension. The goal was to understand the experiences and choices of both men and women with respect to studying computer science, and to design interventions that would involve more women.},
journal = {SIGCSE Bull.},
month = {jun},
pages = {79–83},
numpages = {5}
}
%TAG: VisuallyImpaired
@article{10.1145/563517.563372,
author = {Francioni, Joan M. and Smith, Ann C.},
title = {Computer Science Accessibility for Students with Visual Disabilities},
year = {2002},
issue_date = {March 2002},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {34},
number = {1},
issn = {0097-8418},
url = {https://doi.org/10.1145/563517.563372},
doi = {10.1145/563517.563372},
abstract = {Students with visual disabilities face unique challenges in learning to be computer scientists. These challenges can be overcome, however, with the use of specialized software tools and hardware equipment, collectively called assistive technology. In this paper, we discuss the environment we are using for three students with visual disabilities who are starting in our programs this year. This environment includes a collection of commercial assistive technology and a programming tool that we have developed in-house.},
journal = {SIGCSE Bull.},
month = {feb},
pages = {91–95},
numpages = {5}
}
@article{Bea02:WhyMath,
author = "Theresa Beaubouef",
title = "Why Computer Science Students Need Math",
year = "2002",
journal = "SIGCSE Bulletin (inroads)",
volume = "34",
number = "4",
pages = "57--59"
}
%%%%%%%%%%%%%% Articles published in 2003 %%%%%%%%%%%%%%
% TAG: Recursion
@inproceedings{GSG:Recursion03,
author = {G\"{o}tschi, Tina and Sanders, Ian and Galpin, Vashti},
title = {Mental Models of Recursion},
year = {2003},
isbn = {158113648X},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/611892.612004},
doi = {10.1145/611892.612004},
abstract = {Recursion is a fundamental concept in Computer Science. A student's knowledge of recursion
can be termed their mental model of recursion. A student's mental model is viable
if it allows them to accurately and consistently represent the mechanics of recursion.
Non-viable mental models are constructed if students have misconceptions about the
mechanisms of recursion or have misconceptions about concepts fundamental to recursion.
This paper presents a study of the mental models of recursion that first year students
at the University of the Witwatersrand have constructed in 2000, 2001 and 2002. It
was found that while the majority of students constructed the viable copies model,
many non-viable models such as the looping, active, step, magic, return-value and
various odd models were also constructed. Identifying the models that students have
can allow lecturers to target individual students' specific problems and analysis
of the models can provide insight into learning.},
booktitle = {Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education},
pages = {346–350},
numpages = {5},
keywords = {recursion, pedagogy, programming, mental models, learning, constructivism},
location = {Reno, Navada, USA},
series = {SIGCSE '03}
}
% TAG: Recursion
% TAG: Structural Recursion, Specific Empty Objects rather than Universal Null
% ACM tag
@article{Bloch:OORecursion03,
author = {Bloch, Stephen},
title = {Teaching Linked Lists and Recursion without Conditionals or Null},
year = {2003},
issue_date = {May 2003},
publisher = {Consortium for Computing Sciences in Colleges},
address = {Evansville, IN, USA},
doi = {10.5555/771832.771849},
url = {https://dl.acm.org/doi/10.5555/771832.771849},
volume = {18},
number = {5},
issn = {1937-4771},
abstract = {We describe a natural and principled approach to teaching linked data structures and recursion in CS0, CS1 or CS2, and compare the difficulty of using this approach in C++, Java, and Scheme.},
journal = {J. Comput. Sci. Coll.},
month = {may},
pages = {96–108},
numpages = {13}
}
% TAG: CS_ED K-12
@article{ASP:PBL_2,
author = {Frank, Moti and Lavy, Ilana and Elata, David},
year = {2003},
month = {10},
pages = {273-288},
title = {Implementing the Project-Based Learning Approach in an Academic Engineering Course},
volume = {13},
journal = {International Journal of Technology and Design Education},
doi = {10.1023/A:1026192113732}
}
%TAG: VisuallyImpaired
@inproceedings{10.1145/1028630.1028654,
author = {Smith, Ann C. and Cook, Justin S. and Francioni, Joan M. and Hossain, Asif and Anwar, Mohd and Rahman, M. Fayezur},
title = {Nonvisual Tool for Navigating Hierarchical Structures},
year = {2003},
isbn = {158113911X},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1028630.1028654},
doi = {10.1145/1028630.1028654},
abstract = {The hierarchical structure of a program can be quite complex. As such, many Integrated Development Environments (IDEs) provide graphical representations of program structure at different levels of abstraction. Such representations are not very accessible to non-sighted programmers, as screen readers are not able to portray the underlying hierarchical structure of the information. In this paper, we define a set of requirements for an accessible tree navigation strategy. An implementation of this strategy was developed as a plug-in to the Eclipse IDE and was tested by twelve student programmers. The evaluation of the tool shows the strategy to be an efficient and effective way for a non-sighted programmer to navigate hierarchical structures.},
booktitle = {Proceedings of the 6th International ACM SIGACCESS Conference on Computers and Accessibility},
pages = {133–139},
numpages = {7},
keywords = {hierarchical structures, navigation, java programmers},
location = {Atlanta, GA, USA},
series = {Assets '04}
}
%%%%%%%%%%%%%% Articles published in 2004 %%%%%%%%%%%%%%
% we had listed here article{10.1145/792548.612004,
% though the year was 2003, and it's a copy of GSG:Recursion03 above :-(
@article{TJ04:Python,
author = {Tony Jenkins},
title = {The First Language - A Case for Python?},
journal = {Innovation in Teaching and Learning in Information and Computer Sciences},
volume = {3},
number = {2},
pages = {1-9},
year = {2004},
publisher = {Routledge},
doi = {10.11120/ital.2004.03020004},
URL = {https://doi.org/10.11120/ital.2004.03020004},
eprint = {https://doi.org/10.11120/ital.2004.03020004}
}
%%%%%%%%%%%%%% Articles published in 2005 %%%%%%%%%%%%%%
% inproceedings{10.1145/1047344.1047431,
@inproceedings{DW05:3-2-1,
author = {Dougherty, John P. and Wonnacott, David G.},
title = {Use and Assessment of a Rigorous Approach to CS1},
year = {2005},
isbn = {1581139977},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1047344.1047431},
doi = {10.1145/1047344.1047431},
abstract = {We have developed and implemented a "rigor-first" approach to CS1 instruction, in which we introduce rigorous techniques for understanding algorithms alongside associated programming skills. This core material is developed through a number of engaging problems from more advanced courses in computer science and other natural sciences. These principles are continued in CS2, and the two courses form our "3-2-1" first-year sequence: three programming paradigms and two models of program execution are explored on a single platform. This article discusses the design of our CS1 course, its role in the computer science curriculum, and our experiences with it. Preliminary assessment suggests this approach has merit in our curriculum.},
booktitle = {Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education},
pages = {251–255},
numpages = {5},
keywords = {verification, gender, CS1, rigor, recursion, pedagogy, multi-paradigm},
location = {St. Louis, Missouri, USA},
series = {SIGCSE '05}
}
% ACM calls this 10.1145/1047344.1047430
@inproceedings{BDM05:StructuralRecursion,
author = {Bruce, Kim B. and Danyluk, Andrea and Murtagh, Thomas},
title = {Why structural recursion should be taught before arrays in CS 1},
year = {2005},
isbn = {1581139977},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1047344.1047430},
doi = {10.1145/1047344.1047430},
abstract = {The approach to teaching recursion in introductory programming courses has changed little during the transition from procedural to object-oriented languages. It is still common to present recursion late in the course and to focus on traditional, procedural examples such as calculating factorials or solving the Towers of Hanoi puzzle. In this paper, we propose that the shift to object-oriented programming techniques calls for a significant shift in our approach to teaching recursion. First, we argue that in the context of object-oriented programming students should be introduced to examples of simple recursive structures such as linked lists and methods that process them, before being introduced to traditional procedural examples. Second, we believe that this material should be presented before students are introduced to structures such as arrays. In our experience, the early presentation of recursive structures provides the opportunity to reinforce the fundamentals of defining and using classes and better prepares students to appreciate the reasons to use classes to encapsulate access to other data structures when they are presented.},
booktitle = {Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education},
pages = {246–250},
numpages = {5},
keywords = {recursion, CS1},
location = {St. Louis, Missouri, USA},
series = {SIGCSE '05}
}
@article{10.1145/1047124.1047430,
author = {Bruce, Kim B. and Danyluk, Andrea and Murtagh, Thomas},
title = {Why structural recursion should be taught before arrays in CS 1},
year = {2005},
issue_date = {2005},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {37},
number = {1},
issn = {0097-8418},
url = {https://doi.org/10.1145/1047124.1047430},
doi = {10.1145/1047124.1047430},
abstract = {The approach to teaching recursion in introductory programming courses has changed little during the transition from procedural to object-oriented languages. It is still common to present recursion late in the course and to focus on traditional, procedural examples such as calculating factorials or solving the Towers of Hanoi puzzle. In this paper, we propose that the shift to object-oriented programming techniques calls for a significant shift in our approach to teaching recursion. First, we argue that in the context of object-oriented programming students should be introduced to examples of simple recursive structures such as linked lists and methods that process them, before being introduced to traditional procedural examples. Second, we believe that this material should be presented before students are introduced to structures such as arrays. In our experience, the early presentation of recursive structures provides the opportunity to reinforce the fundamentals of defining and using classes and better prepares students to appreciate the reasons to use classes to encapsulate access to other data structures when they are presented.},
journal = {SIGCSE Bull.},
month = {feb},
pages = {246–250},
numpages = {5},
keywords = {recursion, CS1}
}
@article{RB05,
author = {Ragonis, Noa and Ben-Ari, Mordechai},
year = {2005},
month = {09},
title = {A long-term investigation of the comprehension of OOP concepts by novices},
volume = {15},
journal = {Computer Science Education},
doi = {10.1080/08993400500224310}
}
@article{ET05,
author = {Eckerdal, Anna and Thun\'{e}, Michael},
title = {Novice Java Programmers' Conceptions of "Object" and "Class", and Variation Theory},
year = {2005},
issue_date = {September 2005},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {37},
number = {3},
issn = {0097-8418},
url = {https://doi.org/10.1145/1151954.1067473},
doi = {10.1145/1151954.1067473},
abstract = {Problems with understanding concepts, so called misconceptions, have been investigated and reported in a number of studies regarding object-oriented programming [4], [3]. In a first programming course using an object-oriented language, it is of great importance that students get a good understanding of central concepts like object and class at an early stage of their education. We have, with a phenomenographic research approach, performed a study with first year university students, investigating what an understanding of the concepts object and class includes from a student perspective. By applying variation theory [8] to our results we are able to pin-point what the students need to be able to discern in order to gain a "rich" understanding of these concepts.},
journal = {SIGCSE Bull.},
month = {jun},
pages = {89–93},
numpages = {5},
keywords = {conceptions, phenomenography, misconceptions, variation theory}
}
%%%%%%%%%%%%%% Articles published in 2006 %%%%%%%%%%%%%%
% inproceedings{10.1145/1140124.1140162,
@inproceedings{SGG06:RecursionModels2,
author = {Sanders, Ian and Galpin, Vashti and G\"{o}tschi, Tina},
title = {Mental Models of Recursion Revisited},
year = {2006},
isbn = {1595930558},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1140124.1140162},
doi = {10.1145/1140124.1140162},
abstract = {Students struggle to understand recursion and we need to find good ways to teach the concept. We believe that an understanding of the mental models of recursion that students develop will assist us in teaching them more effectively. In 2003 we reported on a study of the mental models our students developed. This paper discusses some changes that we made to our teaching in 2003 after that study. An analysis of the students' mental models in 2003, 2004 and 2005 shows that more students are developing the copies model of recursion which is always a viable model.},
booktitle = {Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education},
pages = {138–142},
numpages = {5},
keywords = {mental models, recursion},
location = {Bologna, Italy},
series = {ITICSE '06}
}
@article{10.1145/1140123.1140162,
author = {Sanders, Ian and Galpin, Vashti and G\"{o}tschi, Tina},
title = {Mental Models of Recursion Revisited},
year = {2006},
issue_date = {September 2006},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {38},
number = {3},
issn = {0097-8418},
url = {https://doi.org/10.1145/1140123.1140162},
doi = {10.1145/1140123.1140162},
abstract = {Students struggle to understand recursion and we need to find good ways to teach the concept. We believe that an understanding of the mental models of recursion that students develop will assist us in teaching them more effectively. In 2003 we reported on a study of the mental models our students developed. This paper discusses some changes that we made to our teaching in 2003 after that study. An analysis of the students' mental models in 2003, 2004 and 2005 shows that more students are developing the copies model of recursion which is always a viable model.},
journal = {SIGCSE Bull.},
month = {jun},
pages = {138–142},
numpages = {5},
keywords = {recursion, mental models}
}
@inproceedings{TH06,
author = {Teif, Mariana and Hazzan, Orit},
year = {2006},
month = {12},
pages = {55},
title = {Partonomy and taxonomy in object-oriented thinking},
volume = {38},
isbn = {1595936033},
journal = {ACM SIGCSE Bulletin},
doi = {10.1145/1189215.1189170}
}
@article{TH06,
author = {Teif, Mariana and Hazzan, Orit},
title = {Partonomy and Taxonomy in Object-Oriented Thinking: Junior High School Students' Perceptions of Object-Oriented Basic Concepts},
year = {2006},
issue_date = {December 2006},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {38},
number = {4},
issn = {0097-8418},
url = {https://doi.org/10.1145/1189136.1189170},
doi = {10.1145/1189136.1189170},
abstract = {The study presented in this paper explores junior high school students' comprehension of basic OO concepts. It summarizes major (mis)conceptions demonstrated by the students in two main categories: confusion of (1) taxonomic and (2) partonomic hierarchies with classes, objects and their interrelations.},
journal = {SIGCSE Bull.},
month = {jun},
pages = {55–60},
numpages = {6},
keywords = {junior high school students' perceptions, object-oriented programming, taxonomy, partonomy}
}
@article{TB06,
author = {Thomasson, Benjy and Ratcliffe, Mark and Thomas, Lynda},
title = {Identifying Novice Difficulties in Object Oriented Design},
year = {2006},
issue_date = {September 2006},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {38},
number = {3},
issn = {0097-8418},
url = {https://doi.org/10.1145/1140123.1140135},
doi = {10.1145/1140123.1140135},
abstract = {We report on a study of novice programmers' object oriented class designs. These designs were analysed to discover what faults they displayed. The two most common faults related to non-referenced classes (inability to integrate them into the solution), and problems with attributes and class cohesion. The paper ends with some implication for teaching that may be indicated by the empirical results.},
journal = {SIGCSE Bull.},
month = {jun},
pages = {28–32},
numpages = {5},
keywords = {introductory programming, design, design faults, software design}
}
@inproceedings{PK06:drop,
author = {Kinnunen, P\"{a}ivi and Malmi, Lauri},
title = {Why Students Drop out CS1 Course?},
year = {2006},
isbn = {1595934944},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1151588.1151604},
doi = {10.1145/1151588.1151604},
abstract = {This study focuses on CS minor students' decisions to drop out from the CS1 course. The high level of drop out percentage has been a problem at Helsinki University of Technology for many years. This course has yearly enrolment of 500-600 students and the drop out percentage has varied from 30-50 percents.Since we did not have clear picture of drop out reasons we conducted a qualitative interview research in which 18 dropouts from the CS1 course were interviewed. The reasons of drop out were categorized and, in addition, each case was investigated individually. This procedure enabled us to both list the reasons and to reveal the cumulative nature of drop out reasons.The results indicate that several reasons affect students' decision to quit the CS1 course. The most frequent reasons were the lack of time and the lack of motivation. However, both of these reasons were in turn affected by factors, such as the perceived difficulty of the course, general difficulties with time managing and planning studies, or the decision to prefer something else. Furthermore, low comfort level and plagiarism played a role in drop out. In addition, drop out reasons cumulated.This study shows that the complexity and large variety of factors involved in students' decision to drop the course. This indicates that simple actions to improve teaching or organization on a CS1 course to reduce drop out may be ineffective. Efficient intervention to the problem apparently requires a combination of many different actions that take into consideration the versatile nature of reasons involved in drop out.},
booktitle = {Proceedings of the Second International Workshop on Computing Education Research},
pages = {97–108},
numpages = {12},
keywords = {drop out reasons, non-major CS students, CS1},
location = {Canterbury, United Kingdom},
series = {ICER '06}
}
%%%%%%%%%%%%%% Articles published in 2007 %%%%%%%%%%%%%%
@article{Sigman07:EngagingTheory,
author = "Scott Sigman",
title = "Engaging Students in Formal Language Theory and Theory of Computation",
year = "2007",
journal = "Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education",
pages = "450--453"
}
@article{ST07,
author = {Sanders, Kate and Thomas, Lynda},
title = {Checklists for Grading Object-Oriented CS1 Programs: Concepts and Misconceptions},
year = {2007},
issue_date = {September 2007},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {39},
number = {3},
issn = {0097-8418},
url = {https://doi.org/10.1145/1269900.1268834},
doi = {10.1145/1269900.1268834},
abstract = {In this paper, we begin by considering object-oriented programming concepts and typical novice misconceptions as identified in the literature. We then present the results of a close examination of student programs, in an objects-first CS1 course, in which we find concrete evidence of students learning these concepts while also displaying some of these misconceptions. This leads to the development of two checklists that educators can use when designing or grading student programs.},
journal = {SIGCSE Bull.},
month = {jun},
pages = {166–170},
numpages = {5},
keywords = {assessment, misconceptions, CS1, empirical research, object-oriented concepts}
}
%%%%%%%%%%%%%% Articles published in 2008 %%%%%%%%%%%%%%
%TAG: VisuallyImpaired
@inproceedings{10.1145/1352135.1352287,
author = {Bigham, Jeffrey P. and Aller, Maxwell B. and Brudvik, Jeremy T. and Leung, Jessica O. and Yazzolino, Lindsay A. and Ladner, Richard E.},
title = {Inspiring Blind High School Students to Pursue Computer Science with Instant Messaging Chatbots},
year = {2008},
isbn = {9781595937995},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1352135.1352287},
doi = {10.1145/1352135.1352287},
abstract = {Blind students are an underrepresented group in computer science. In this paper, we describe our experience preparing and leading the computer science track at the National Federation of the Blind Youth Slam. As part of this workshop, fifteen blind high school students created and personalized instant messaging chatbots, a project designed to be completely accessible to blind students. Chatbots enable students to infuse their own personalities into a socially-oriented program that incorporates ideas from artificial intelligence, natural language processing, and web services. We first outline the chatbots project and curriculum, which has wide appeal for all students, and then offer general design principles used to create it that can help ensure the accessibility of future projects. Students created their chatbots using a real programming language and were guided by both blind and sighted mentors. By programming from the start in a supportive environment, our students will gain the confidence to persevere in computer science in the future.},
booktitle = {Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education},
pages = {449–453},
numpages = {5},
keywords = {chatbots, accessibility, blind students},
location = {Portland, OR, USA},
series = {SIGCSE '08}
}
@article{SJ08,
author = {Sajaniemi, Jorma and Kuittinen, Marja and Tikansalo, Taina},
title = {A Study of the Development of Students' Visualizations of Program State during an Elementary Object-Oriented Programming Course},
year = {2008},
issue_date = {January 2008},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {7},
number = {4},
issn = {1531-4278},
url = {https://doi.org/10.1145/1316450.1316453},
doi = {10.1145/1316450.1316453},
abstract = {Students' understanding of object-oriented (OO) program execution was studied by asking students to draw a picture of a program state at a specific moment. Students were given minimal instructions on what to include in their drawings in order to see what they considered to be central concepts and relationships in program execution. Three drawing tasks were given at different phases of an elementary OO programming course where two animation tools were used for program visualization. The drawings were analyzed for their overall approaches and their detailed contents.There was a large variability in the overall approaches and the popularity of various approaches changed during the course. The results indicate that students' mental representations of OO concepts and program execution not only grow as new material is covered in teaching, but they also change. The first drawings treat methods as having primarily a static existence; later methods are seen as dynamic invocations that call each other. The role of classes in program execution fluctuates during learning, indicating problems in locating the notion of class with respect to, for example, objects. Two major sources of problems that manifested in many different forms were the relationship between object and method, and the role of the main method with respect to program state. Other problems were caused by overly simplistic understanding of object identification and improper use of application domain knowledge.},
journal = {J. Educ. Resour. Comput.},
month = {jan},
articleno = {3},
numpages = {31},
keywords = {CS1/2, object-oriented programming, visualization, mental representation, program state}
}
@article{SB08,
author = {Sanders, Kate and Boustedt, Jonas and Eckerdal, Anna and McCartney, Robert and Mostr\"{o}m, Jan Erik and Thomas, Lynda and Zander, Carol},
title = {Student Understanding of Object-Oriented Programming as Expressed in Concept Maps},
year = {2008},
issue_date = {March 2008},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {40},
number = {1},
issn = {0097-8418},
url = {https://doi.org/10.1145/1352322.1352251},
doi = {10.1145/1352322.1352251},
abstract = {In this paper, we present the results of an experiment in which we sought to elicit students' understanding of object-oriented (OO) concepts using concept maps. Our analysis confirmed earlier research indicating that students do not have a firm grasp on the distinction between "class" and "instance." Unlike earlier research, we found that our students generally connect classes with both data and behavior. Students rarely included any mention of the hardware/software context of programs, their users, or their real-world domains. Students do mention inheritance, but not encapsulation or abstraction. And the picture they draw of OO is a static one: we found nothing that could be construed as referring to interaction among objects in a program. We then discuss the implications for teaching introductory OO programming.},
journal = {SIGCSE Bull.},
month = {mar},
pages = {332–336},
numpages = {5},
keywords = {concept maps, cs1, empirical research, object-oriented}
}
%%%%%%%%%%%%%% Articles published in 2009 %%%%%%%%%%%%%%
@article{RE09:Prep,
author = {Enbody, Richard J. and Punch, William F. and McCullen, Mark},
title = {Python CS1 as Preparation for C++ CS2},
year = {2009},
issue_date = {March 2009},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {41},
number = {1},
issn = {0097-8418},
url = {https://doi.org/10.1145/1539024.1508907},
doi = {10.1145/1539024.1508907},
abstract = {How suitable is a Python-based CS1 course as preparation for a C++-based CS2 course?
After fifteen years of using C++ for both CS1 and CS2, the Computer Science Department
at Michigan State University changed the CS1 course to Python. This paper examines
the impact of that change on the second course in the sequence, CS2, which kept C++
as its primary language. We report results on a CS2 class which had a mixture of students
who had used either C++ or Python from our CS1 course. The CS2 class covered the same
topics as previously, though with some changes, and even gave the same final exam
as a previous offering. Independent samples t-tests were used to compare students
from the Python group with students from the non-Python group on three outcomes: final
exam grade, programming projects scores, and final grade for the course. The main
result was that there were no significant differences between the groups for all three
outcomes. In addition, multiple regression analysis showed that students' past performance
(overall GPA) in the University predicted final grades, final exam scores, and programming
project scores for the course, but there was no effect of the programming language
feature: Python or non-Python. We feel this shows that the Python-based CS1 course
prepared students for the C++-based CS2 course as well as the C++-based CS1 course
did---while exposing them to a different, powerful and useful language.},
journal = {SIGCSE Bull.},
month = mar,
pages = {116–120},
numpages = {5},
keywords = {curriculum, intro. to programming, python, cs1, cs2}
}
%%%%%%%%%%%%%% Articles published in 2010 %%%%%%%%%%%%%%
@article{Pillay10:LearningFLAT,
author = "Nelishia Pillay",
title = "Learning difficulties experienced by students in a course on formal languages and automata theory",
year = "2010",
journal = "ACM SIGCSE Bulletin, 41(4)",
pages = "48--52"
}
@inproceedings{RE10:PythonNon,
author = {Enbody, Richard J. and Punch, William F.},
title = {Performance of Python CS1 Students in Mid-Level Non-Python CS Courses},
year = {2010},
isbn = {9781450300063},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1734263.1734437},
doi = {10.1145/1734263.1734437},
abstract = {If you change the CS1 language to Python, what is the impact on the rest of the curriculum?
In earlier work we examined the impact of changing CS1 from C++ to Python while leaving
CS2 in C++. We found that Python-prepared CS1 students fared no differently in CS2
than students whose CS1 course was in C++, even though CS2 was taught in C++ and covered
the same topics as in previous years. Was that an anomaly? What happens in the next
tier of courses? When our CS1 was first changed to Python there were many students
who had taken CS1 in C++ still in the system. The result is that there is a cadre
of students with either CS1 in Python or CS1 in C++ moving together through our curriculum.
This one-time occurrence is an opportunity to study the students with many variables
fixed. Our next tier of courses is a C-based computer organization course, a C++ based
object-oriented software design course, and a data structures course. We found that
the students who started with Python fared as well as the CS1 C++ students. As before,
the best predictor of performance was their college GPA. Python versus C++ CS1 preparation
was not a predictor of performance in any course. We conclude again that in our C++
based curriculum changing CS1 to Python had no negative impact on student performance
and did not require any significant change in those subsequent courses.},
booktitle = {Proceedings of the 41st ACM Technical Symposium on Computer Science Education},
pages = {520–523},
numpages = {4},
keywords = {cs1, introduction to programming, curriculum, python},
location = {Milwaukee, Wisconsin, USA},
series = {SIGCSE '10}
}
% had accidentally been TI:MM10,
@inproceedings{SS10:ModelsRec,
author = {Scholtz, Tamarisk Lurlyn and Sanders, Ian},
title = {Mental Models of Recursion: Investigating Students' Understanding of Recursion},
year = {2010},
isbn = {9781605588209},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1822090.1822120},
doi = {10.1145/1822090.1822120},
abstract = {Mental models of recursion provide some idea into a student's understanding of recursion. However there has been concern regarding whether viable trace mental models of recursion show students' true understanding of recursion. We have conducted an investigation to further examine the understanding of recursion of students with viable trace mental models. The investigation looked at students' understanding of the termination of a recursive function, their descriptive mental models and their ability to generate a recursive function. This research provides evidence to show that trace methods are essentially mechanical processes that can allow students with little understanding of recursion to correctly evaluate a recursive function but that students do not fully understand recursion and in particular have difficulties with the passive flow. Based on the results of the study, this paper discusses possible changes that can be made to our teaching in order to more eectively teach recursion to first year students.},
booktitle = {Proceedings of the Fifteenth Annual Conference on Innovation and Technology in Computer Science Education},
pages = {103–107},
numpages = {5},
keywords = {mental models, recursion},
location = {Bilkent, Ankara, Turkey},
series = {ITiCSE '10}
}
@article{10.1145/1932682.1869462,
author = {Hanenberg, Stefan},
title = {An Experiment about Static and Dynamic Type Systems: Doubts about the Positive Impact of Static Type Systems on Development Time},
year = {2010},
issue_date = {October 2010},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {45},
number = {10},
issn = {0362-1340},
url = {https://doi.org/10.1145/1932682.1869462},
doi = {10.1145/1932682.1869462},
abstract = {Although static type systems are an essential part in teach-ing and research in software engineering and computer science, there is hardly any knowledge about what the impact of static type systems on the development time or the resulting quality for a piece of software is. On the one hand there are authors that state that static type systems decrease an application's complexity and hence its development time (which means that the quality must be improved since developers have more time left in their projects). On the other hand there are authors that argue that static type systems increase development time (and hence decrease the code quality) since they restrict developers to express themselves in a desired way. This paper presents an empirical study with 49 subjects that studies the impact of a static type system for the development of a parser over 27 hours working time. In the experiments the existence of the static type system has neither a positive nor a negative impact on an application's development time (under the conditions of the experiment).},
journal = {SIGPLAN Not.},
month = {oct},
pages = {22–35},
numpages = {14},
keywords = {programming languages, type systems, dynamically typed languages, empirical study}
}
@inproceedings{ASP_Types_3,
author = {Hanenberg, Stefan},
title = {An Experiment about Static and Dynamic Type Systems: Doubts about the Positive Impact of Static Type Systems on Development Time},
year = {2010},
isbn = {9781450302036},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1869459.1869462},
doi = {10.1145/1869459.1869462},
abstract = {Although static type systems are an essential part in teach-ing and research in software engineering and computer science, there is hardly any knowledge about what the impact of static type systems on the development time or the resulting quality for a piece of software is. On the one hand there are authors that state that static type systems decrease an application's complexity and hence its development time (which means that the quality must be improved since developers have more time left in their projects). On the other hand there are authors that argue that static type systems increase development time (and hence decrease the code quality) since they restrict developers to express themselves in a desired way. This paper presents an empirical study with 49 subjects that studies the impact of a static type system for the development of a parser over 27 hours working time. In the experiments the existence of the static type system has neither a positive nor a negative impact on an application's development time (under the conditions of the experiment).},
booktitle = {Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications},
pages = {22–35},
numpages = {14},
keywords = {empirical study, dynamically typed languages, type systems, programming languages},
location = {Reno/Tahoe, Nevada, USA},
series = {OOPSLA '10}
}
%%%%%%%%%%%%%% Articles published in 2011 %%%%%%%%%%%%%%
%TAG: VisuallyImpaired
@inproceedings{10.1145/1953163.1953323,
author = {Stefik, Andreas M. and Hundhausen, Christopher and Smith, Derrick},
title = {On the Design of an Educational Infrastructure for the Blind and Visually Impaired in Computer Science},
year = {2011},
isbn = {9781450305006},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1953163.1953323},
doi = {10.1145/1953163.1953323},
abstract = {The blind and visually impaired community is significantly underrepresented in computer science. Students who wish to enter the discipline must overcome significant technological and educational barriers to succeed. In an attempt to help this population, we are engaged in a three-year research project to build an educational infrastructure for blind and visually impaired middle and high school students. Our primary research goal is to begin forging a multi-sensory educational infrastructure for the blind across the United States. We present here two preliminary results from this research: 1) a new auditory programming environment called Sodbeans, a programming language called Hop, and a multi-sensory (sound and touch) curriculum, and 2) an empirical study of our first summer workshop with the blind students. Results show that students reported a significant increase in programming self-efficacy after participating in our camp.},
booktitle = {Proceedings of the 42nd ACM Technical Symposium on Computer Science Education},
pages = {571–576},
numpages = {6},
keywords = {auditory debugging, assistive technology, visual impairments, accessibility},
location = {Dallas, TX, USA},
series = {SIGCSE '11}
}
% TAG: ExperimentalDesign
% ACM short-name 10.1145/2016911.2016919,
% but I want a "short name" I can remember, e.g., authors initials, one word, publication year, like so:
@inproceedings{FTR:Design11,
author = {Fincher, Sally and Tenenberg, Josh and Robins, Anthony},
title = {Research Design: Necessary Bricolage},
year = {2011},
isbn = {9781450308298},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/2016911.2016919},
doi = {10.1145/2016911.2016919},
abstract = {In this paper we suggest that in order to advance, the field of computer science education
needs to craft its own research methods, to augment the borrowing of "traditional"