 |
 |
 |
 |
Links tagged with the label
IEEE
link directly to the IEEE digital library and require a subscription for
access.
Links tagged with the label
ACM
link directly to the ACM digital library and require a subscription for
access.
|
Teaching CS1 and Object-orientation
|
Anne Gates Applin.
"Second language
acquisition and CS1" ACM . In
Proceedings of the 32nd SIGCSE Technical Symposium on
Computer Science Education, ACM, 2001,
pp. 174-178.
Describes an empirical study on the relative effectiveness of
two teaching methods in CS1: writing programs from scratch, vs.
modifying well-written, well-documented programs. Students who
modified existing programs achieved better exam scores and better
overall grades.
Duane Buck and David J. Stucki.
Design early considered
harmful: Graduated exposure to complexity and structure based on levels of
cognitive development" ACM . In
Proceedings of the 31st SIGCSE Technical Symposium on Computer
Science Education, ACM, 2000,
pp. 75-79.
Frames CS learning in terms of Bloom's taxonomy and claims most
CS work is about synthesis (writing code) without providing the
foundations of lower-level cognitive skills needed for mastery at
that level.
Judith Gal-Ezer and
David Harel.
"What (else) should CS educators know?"
ACM .
Communications of the ACM, 41(9): 77-84, September 1998.
Gives a broad overview of knowledge outside the technical details
of computer science, exposure to which might improve a CS educator's
effectiveness.
Scott Grissom and
Mark J. Van Gorp.
"A
practical approach to integrating active and collaborative learning into the
introductory computer science curriculum"
ACM . In
Proceedings of the 7th Annual Consortium on Computing in Small
Colleges Midwestern Conference, The Consortium for Computing in Small
Colleges, 2000, pp. 95-100.
Describes techniques for incorporating collaborative learning into a
programming course, so that students spend more time actively engaged
in small group exercises and interactive demonstrations instead of
listening to a traditional lecture.
Said Hadjerrouit.
"Java as first programming language: a critical evaluation"
ACM .
ACM SIGCSE Bulletin, 30(2): 43-47, June 1998.
Compares Java and C++ for teaching CS1.
M. Khalid Hamza,
Bassem Alhalabi, and
David M. Marcovitz.
"Creative pedagogy for
computer learning: Eight effective tactics"
ACM .
ACM SIGCSE Bulletin, 32(4): 70-73, December 2000.
Suggest a number of creative teaching approaches for CS educators.
Nira Herrmann,
Jeffrey L. Popyack,
Bruce Char,
Paul Zoski,
Christopher D. Cera,
Robert N. Lass,
and Aparna Nanjappa.
"Redesigning introductory computer programming using multi-level online modules for a mixed audience" ACM .
In Proceedings of the 34th technical symposium on Computer science
education, ACM, 2003,
pp. 196-200.
Describes Drexel's experiences in redesigning their intro course, making
extensive use of web-based course materials.
Andrew Hussey,
David Leadbetter, and
Helen Purchase.
"Learning object-oriented
programming in six hours: an experience with school students". In
Proceedings of the 2nd Australasian Conference on Computer
Science Education, ACM, 1997,
pp. 117-125.
Describes an experience teaching OOP to 60 high-school students at
a 3-day vacation school. The goal was to ensure that students grasped
the basic concepts of object-orientation, and the approach relied
heavily on hands-on exercises using a predator-prey simulation.
Michael Kölling.
"The problem of
teaching object-oriented programming, part 1: Languages".
Journal of Object-Oriented Programming, 11(8): 8-15, 1999.
A longer article describing the core educational motivation behind
the Blue project, which later evolved into BlueJ.
Michael Kölling.
"The problem
of teaching object-oriented programming, part 2: Environments".
Journal of Object-Oriented Programming, 11(9): 6-12, 1999.
Second part of the article above, which discusses the difficulties
imposed by tools that students use.
Michael Kölling
and John Rosenberg.
"Guidelines for teaching object orientation with Java"
ACM .
In Proceedings of the 6th Annual Conference on Innovation and
Technology in Computer Science Education, ACM, 2001,
pp. 33-36.
Another excellent overview of the BlueJ "objects first" pedagogy.
Michael Kölling
and John Rosenberg.
BlueJ--The
Hitch-Hikers Guide to Object Orientation, The Maersk Mc-Kinney Moller
Institute for Production Technology, University of Southern Denmark,
Technical Report 2002, No 2, ISSN No. 1601-4219.
An excellent presentation of the core "objects first" pedagogy advocated
by the BlueJ project participants.
John Lewis.
Myths about object-orientation and its pedagogy" ACM . In
Proceedings of the 31st SIGCSE Technical Symposium on Computer
Science Education, ACM, 2000,
pp. 245-249.
Presents and debunks the most common objections to teaching
object-orientation in CS1.
Glenn Meter and
Philip Miller.
"Engaging students and teaching modern concepts: literate, situated, object-oriented programming" ACM . In
Proceedings of the 25th SIGCSE Technical Symposium on Computer
Science Education, ACM, 1994,
pp. 329-333.
Describes the pedagogy of some CMU instructors on changes to their
introductory programming course. They claim notably better
intellectual engagement of students as a result.
Thomas L. Naps,
Susan Rodger,
J. Ángel Velázquez-Iturbide,
Guido Rö@szlig;ling,
Vicki Almstrum,
Wanda Dann,
Rudolf Fleischer,
Chris Hundhausen,
Ari Korhonen,
Lauri Malmi,
and Myles McNally.
"ITiCSE 2002 working group report: Exploring the role of visualization and engagement in computer science education"
ACM .
ACM SIGCSE Bulletin, 35(2): 131-152, June 2003.
Visualization technology can be used to graphically illustrate various
concepts in computer science. We argue that such technology, no matter
how well it is designed, is of little educational value unless it
engages learners in an active learning activity.
Pedagogical Patterns Project.
The Pedagogical Patterns Project home page. Web site containing lots "patterns" for teaching, many written by (and for) CS educators.
Susan H. Rodger.
"An interactive lecture approach to teaching computer science" ACM . In
Proceedings of the 26th SIGCSE Technical Symposium on Computer
Science Education, ACM, 1995,
pp. 278-282.
Students get more out of an interactive lecture than a passive lecture
because they are given time to think. This time allows them to determine
if they understand a concept, and if not to ask questions. This
understanding is crucial when concepts build on one another. We
describe our positive experiences in teaching sophomore-level computer
science courses in an interactive lecture format with a computer in the
classroom.
John Rosenberg and
Michael Kölling.
"I/O considered harmful
(at least for the first few weeks)". In
Proceedings of the 2nd Australasian Conference on Computer
Science Education, ACM, 1997,
pp. 216-223.
Describes the difficulties with having to teach the intricacies of
I/O up front in an introductory course, and the benefits of putting
it off until later in the semester.
Nachiappan Nagappan, Laurie Williams, Miriam Ferzli, Eric Wiebe, Kai Yang,
Carol Miller, and Suzanne Balik.
"Improving the CS1
experience with pair programming" ACM .
In Proceedings of the 34th technical symposium on Computer science
education, ACM, 2003,
pp. 359-362.
Pair programming is a practice in which two programmers work
collaboratively at one computer, on the same design, algorithm, or
code. Prior research indicates that pair programmers produce higher
quality code in essentially half the time taken by solo programmers.
An experiment was run to assess the efficacy of pair programming in
an introductory Computer Science course. Student pair programmers
were more self-sufficient, generally perform better on projects and
exams, and were more likely to complete the class with a grade of C
or better than their solo counterparts. Results indicate that pair
programming creates a laboratory environment conducive to more
advanced, active learning than traditional labs; students and lab
instructors report labs to be more productive and less frustrating.
Shannon Pollard and
Jeffrey Forbes.
"Hands-on labs without computers" ACM . In
Proceedings of the 34th SIGCSE Technical Symposium on Computer
Science Education, ACM, 2003,
pp. 296-300.
Describes a "computerless" lab approach for non-CS majors, where
students physically implement algorithms.
Eric Roberts,
John Lilly, and
Bryan Rollins.
"Using undergraduates as teaching assistants in introductory programming courses: An update on the Stanford experience" ACM . In
Proceedings of the 26th SIGCSE Technical Symposium on Computer
Science Education, ACM, 1995,
pp. 48-52.
Describes the use of UTAs at Stanford, and what factors make them
successful. Also mentions the problems involved in giving UTAs
grading responsibility over the work of other undergraduates, and
how that was resolved with a non-numeric, rank-ordered grading system.
Laurie A. Williams and
Robert R. Kessler.
"All I really need to know
about pair programming I learned in kindergarten"
ACM .
Communications of the ACM, 43(5): 108-114, May 2000.
A very accessible description of pair programming, phrased in terms
of Fulghum's core statements from the original book, All I Really Need
to Know I Learned in Kindergarten.
Laurie Williams and Richard L. Upchurch.
"In support of student
pair-programming" ACM . In
Proceedings of the 32nd SIGCSE Technical Symposium on
Computer Science Education, ACM, 2001,
pp. 327-331.
Industry, particularly those following the eXtreme Programming (XP)
methodology, has popularized the use of pair-programming. The
pair-programming model has also been found to be beneficial for student
programmers. Initial quantitative and qualitative results, which will be
discussed in this paper, demonstrate that the use of pair-programming in
the computer science classroom enhances student learning and satisfaction
and reduces the frustration common among students.
Laurie A. Williams.
Pair Programming Tiki. Web site containing lots of pair programming links.
|
Programming Assignments and Ideas for Them
|
Joel C. Adams.
"Chance-It: an object-oriented capstone project for CS-1" ACM . In
Proceedings of the 29th SIGCSE Technical Symposium on Computer
Science Education, ACM, 1998,
pp. 10-14.
A very simple but engaging programming assignment based on a dice
rolling game. Can easily be turned into a contest.
Angela Carbone,
John Hurst,
Ian Mitchell, and
Dick Gunstone.
"Principles for designing
programming exercises to minimise poor learning behaviours in students"
ACM .
In Proceedings of the Australasian Conference on Computing education,
ACM, 2000,
pp. 26-33.
Describes aspects of programming assignments that lead students to
pay only superficial attention, to get side-tracked, or to stay stuck
without knowing how to proceed. "Part I" of the paper below.
Includes more examples.
Angela Carbone,
John Hurst,
Ian Mitchell, and
Dick Gunstone.
"Characteristics of
programming exercises that lead to poor learning tendencies: Part II"
ACM .
In Proceedings of the 6th Annual Conference on Innovation and
Technology in Computer Science Education, ACM, 2001,
pp. 93-96.
Describes some aspects of programming assignments that lead students to
pay only superficial attention, to get side-tracked, or to stay stuck
without knowing how to proceed. Says essentially the same thing as
"Part I" above, but more briefly and without as much detail.
Nick Parlante.
Nifty Assignments.
A web site that collects nifty CS1/CS2 assignment ideas from the
SIGCSE symposium. Some we might use include:
Eric Roberts.
"Strategies for
encouraging individual achievement in introductory computer science
courses" ACM . In
Proceedings of the 31st SIGCSE Technical Symposium on Computer
Science Education, ACM, 2000,
pp. 295-299.
Describes experiences using open-ended assignments and programming
contests to engage advanced students and make the class more interesting.
Raja Sooriamurthi.
"Problems in comprehending
recursion and suggested solutions"
ACM .
In Proceedings of the 6th Annual Conference on Innovation and
Technology in Computer Science Education, ACM, 2001,
pp. 25-28.
Describes three issues that arise as points of difficulty for students
in mastering recursion. This is from a programming languages point
of view, and brings in functional abstraction and declarative thinking
as key issues.
Owen Astrachan and
Susan H. Rodger.
"Animation, visualization, and interaction in CS 1 assignments" ACM . In
Proceedings of the 29th SIGCSE Technical Symposium on Computer
Science Education, ACM, 1998,
pp. 317-321.
Reports on several CS1 assignments that involve animation or
visualization to reinforce control constructs, data structures, or
OO concepts.
Joseph Bergin, Mark Stehlik, Jim Roberts, and Richard Pattis.
Karel J. Robot:
A Gentle Introduction to the Art of Object-Oriented Programming in
Java.
Unpublished manuscript available on the web.
This is the updated Java version of the older Karel++ text book.
We will be using this in class for CS 1705 (formerly CS 1044) in the fall.
Joseph Bergin.
"Introducing
objects with Karel J. Robot." Paper
presented at the Workshop on Tools and Environments for Understanding
Object-Oriented Concepts, held in conjunction with ECOOP, 2000.
A very brief paper introducing the Java version of Karel.
Joseph Bergin, Mark Stehlik, Jim Roberts, and Richard Pattis.
Karel++:
A Gentle Introduction to the Art of Object-Oriented Programming.
John Wiley & Sons, 1997.
The text book describing the earlier C++ version of Karel.
Duane Buck and David J. Stucki.
"JKarelRobot: a case study in supporting levels of cognitive development in the computer science curriculum" ACM . In
Proceedings of the 32nd SIGCSE Technical Symposium on Computer
Science Education, ACM, 2001,
pp. 16-20.
Describes how giving programming assignments before students have
mastered the necessary cognitive foundations (in terms of Bloom's taxonomy)
can leave students "overwhelmed, uncertain of how to begin, and grasping
at the air". Describes the JKarelRobot simulator used at Otterbein.
Wanda Dann,
Stephen Cooper, and
Randy Pausch.
"Using visualization to
teach novices recursion"
ACM .
In Proceedings of the 6th Annual Conference on Innovation and
Technology in Computer Science Education, ACM, 2001,
pp. 109-112.
Describes how recursion is easier to teach in Alice, an animated
3D virtual world.
Willa Duplantis,
Eve MacGregor,
Maria Klawe,
and Michele Ng.
"'Virtual family': An approach to introducing java programming"
ACM .
ACM SIGCSE Bulletin, 34(2): 40-43, June 2002.
Discusses another programmable "game" system that can be used to
introduce basic programming concepts. The focus of this project is
to reduce gender bias and encourage female students.
Susan H. Rodger.
"Introducing computer science through animation and virtual worlds"
ACM . In
Proceedings of the 33rd SIGCSE Technical Symposium on Computer
Science Education, ACM, 2002,
pp. 186-190.
Discusses introductory teaching experiences using Alice, JAlice, and
JAWAA, all of which are animated virtual worlds with programmable
behaviors. Also discusses Karel++ briefly.
Dean Sanders.
"Jeroo: a tool for introducing object-oriented programming" ACM . In
Proceedings of the 34th SIGCSE Technical Symposium on Computer
Science Education, ACM, 2003,
pp. 201-204.
Describes a simulator for kangaroos looking for flowers on an island,
similar in many ways to an updated Karel world.
|
Teaching Software Testing
|
Michael H. Goldwasser.
"A gimmick to integrate
software testing throughout the curriculum"
ACM . In
Proceedings of the 33rd SIGCSE Technical Symposium on Computer
Science Education, ACM, 2002,
pp. 271-275.
Describes an approach to grading testing effort by running all student
test suites against all student programs, sort of like a "programming
contest."
Edward L. Jones.
"SPRAE: A framework for teaching software testing in the undergraduate curriculum".
In Proceedings of ADMI 2000, Hampton, VA, 1-4 June 2000.
Describes the SPRAE framework.
Edward L. Jones.
"Software testing in the
computer science curriculum--a holistic approach"
ACM . In
Proceedings of the Australasian Conference on Computing Education,
ACM, 2000,
pp. 153-157.
Proposes the integration of software testing across the curriculum, in
conjunction with an automated grading approach.
Edward L. Jones.
"A
perspective on teaching software testing"
ACM .
Journal of Computing in Small Colleges, 16(3): 92-100, March 2001.
Describes how educators should approach teaching software testing.
Edward L. Jones.
"Integrating testing into the curriculum--arsenic in small doses" ACM . In
Proceedings of the 32nd SIGCSE Technical Symposium on Computer
Science Education, ACM, 2001,
pp. 337-341.
Proposes integrating testing activities across the curriculum, and
discusses TestLab experiences.
Edward L. Jones.
"An experiential approach to incorporating software testing into the computer science curriculum" IEEE .
In Proceedings of the 31st Annual Frontiers in Education Conference, vol. 2, pp. F3D-7-F3D-11, 2001.
Describes TestLab experiences at Florida A&M.
John Rosenberg and
Michael Kölling.
"Testing object-oriented programs: making it simple" ACM . In
Proceedings of the 28th SIGCSE Technical Symposium on Computer
Science Education, ACM, 1997,
pp. 77-81.
Describes the difficulties of testing for students using traditional
languages and approaches. Advocates the simplicity of "interactive"
object manipulation in Blue (and later, BlueJ).
|
Automatic Grading Systems
|
Julia Isong.
"Developing an automated program checker" ACM .
Journal of Computing in Small Colleges, 16(3): 218-224, March 2001.
Describes a conventional automated grader.
Edward L. Jones.
"Grading student programs--a software testing approach" ACM .
Journal of Computing in Small Colleges, 16(2): 187-194, January 2001.
Discussed the SPRAE framework, where testing concepts are used to
specify assignments that are easy to automatically grade.
Lauri Malmi,
Ari Korhonen, and
Riku Saikkonen.
"Experiences in automatic
assessment on mass courses and issues for designing virtual courses"
ACM .
In Proceedings of the 7th Annual Conference on Innovation and
Technology in Computer Science Education, ACM, 2002,
pp. 55-59.
Presents experiences on using automatic assessment in large scale courses
of introductory programming, data structures, and algorithms over a
period of 10 years. Discusses some of the issues besides automatic
feedback that are necessary for achieving good outcomes.
Susan A. Mengel and Vinay Yerramilli.
"A case study of the static analysis of the quality of novice student programs" ACM . In
Proceedings of the 30th SIGCSE Technical Symposium on Computer
Science Education, ACM, 1999,
pp. 78-82.
Describes an experiment using Verilog Logiscope to perform static analysis
of student programs. The aim was to see if this approach could lead to
automated quality assessment for grading purposes (but it didn't look
promising).
Kenneth A. Reek.
"A software infrastructure to support introductory computer science courses" ACM . In
Proceedings of the 27th SIGCSE Technical Symposium on Computer
Science Education, ACM, 1996,
pp. 125-129.
Describes an automated submission system that also supports auto-grading.
Basically a bunch of Unix shell scripts.
Riku Saikkonen,
Lauri Malmi, and
Ari Korhonen.
"Fully automatic assessment
of programming exercises"
ACM .
In Proceedings of the 6th Annual Conference on Innovation and
Technology in Computer Science Education, ACM, 2001,
pp. 133-136.
Describes an automatic grading system for Scheme programs.
Abhijeet Trivedi,
Dulal C. Kar,
and Holly Patterson-McNeill.
"Automatic assignment management and peer evaluation" ACM .
Journal of Computing in Small Colleges, 18(4): 30-37, April 2003.
Discusses web-based system for anonymous electronic peer review
of assignments.
|
Adaptive Hyptext and Constructivism
|
|