Title: Balancing Depth and Breadth in the Data Structures Course
1Balancing Depth and Breadth in the Data
Structures Course
- Karina Assiter, Ph.D.
- Computer Science and Systems Department
- Wentworth Institute of Technology
- Boston, MA 02115
- 781.395.6922
- assiterk_at_wit.edu
2Outline
- Motivation
- Data Structures
- In the CS Sequence
- Depth versus Breadth
- Techniques (Motivation, Implementation, Results)
- Beyond the classroom
- Pair programming
- Process-Log journals
- Web-based portfolios
- Complex projects
- Student-centered projects
- In the classroom
- Slides
- In-class exercises
- Group problem solving
- Results
- Conclusions
- Future Work
3Motivation
- Data Structures course
- Spring 2003 (base case)
- Elaborate assignments with weekly deadlines
- Provide depth
- Analysis synthesis extrapolation
- Problem
- Many late submissions postpone deadlines
limit breadth - Pair programming
- Provide breadth
- Minimal late submissions cover full range of
topics - Problem
- Students rotate assignments limit depth
- What could we do?
4Data Structures in CS Sequence
Data Structures (CS103)
Introductory Sequence (CS101/102)
Analysis of Algorithms
(Bridge)
- Purpose
- Introduce problem
- solving program
- design
- Selected Topics
- I/O (including file I/O)
- Selection and iteration control
- Logical operations
- Pointers, arrays, linked lists
- Functions
- Strings
- Recursion
- OOP concepts
- Dynamic Allocation
- Stacks and queues
- Purpose
- Introduce abstract data types
- (data structurestheir algorithms)
- Implement abstract data types
- ( rigorous programming).
- Selected Topics
- Stacks and Queues
- Linked list structures
- Trees
- Hash tables
- Indexed files
- Graphs
- Purpose
- Review basic algorithms
- Introduce analysis
- advanced algorithms
- Selected Topics
- Order of Growth
- Analysis notation
- Sorting algorithms
- Searching Algorithms
- Graph Algorithms
- Tree Algorithms
5Challenge
Data Structures
- Depth
- Exposure to implementation issues, allowing
- Analysis
- Synthesis
- Extrapolation (to new problems)
- Breadth
- Exposure to range
- of data structures
- Trees
- Queues
- Graphs
- Stacks
- Lists
6- Allocated vs Estimated
- Allocated Time
- Based on lecture
- Due to semester
- Estimated Time
- Based on projects
- Due to complexity
- For sufficient
- Analysis
- Synthesis
- Extrapolation
7Choices
- Project time Coverage
- Less synthesis but with more exposure
- Project time Coverage
- More synthesis but with less exposure
- Project time Coverage
- Run over end of semester (not an option)
- Project time Coverage
- Preserve breadth without sacrificing depth?
8Pedagogical techniques to address challenge
- Approach
- Complex projects
- Pair programming
- Process-Log journals
- Web-based portfolios
- Multiple Intelligence (Instruction)
- Student-centered projects
9Preliminary Study
- Data Structures course
- Wentworth students
- Spring 2004
- Sample
- 20 students
- Analysis tools
- Qualitative
- Process logs
- Quantitative
- Questionnaire
10- Approach
- Complex projects
- Pair programming
- Process-Log journals
- Web-based portfolios
- Multiple Intelligence (Instruction)
- Student-centered projects
11Complex Projects
- Motivation
- Time-to-synthesize
- Complex problem solving
- Examples
- Comment Stripper
- Reverse Polish Notation (with stacks)
- Game of life
- Feasible with Pair-programming (next slide)
- programming resources
- dependence on external expert
(instructor, TA)
12- Approach
- Complex projects
- Pair programming
- Process-Log journals
- Web-based portfolios
- Multiple Intelligence (Instruction)
- Student-centered projects
13Pair programming
- Motivation
- Pace projects with lectures
- Implementation
- Optional
- Encouraged, not required
- Informal
- No pre-defined roles, format
- Results (next few slides)
- Quantitative (questionnaire)
- Qualitative (process logs)
14Pair Programming Questionnaire
- Self-selected to work with a partner
- Residential
- Extroverts
- Two brains better than one
- Assignments too difficult to do alone
- Agreed with without partner
- Assignments too difficult to do with a partner
- Agreed None
- Software Design Experience
- Working with partner made me spend more time
planning how I would solve the problem - Agreed with partner
- Neutral without partner
- Disagreed None
15Pair ProgrammingQuestionnaire (continued)
- Emotional Support
- Working with partner increased my confidence
- Agreed 63
- Neutral 37
- Disagreed none
- Working with partner made me feel more confident
about the material and the course - Agreed 75
- Neutral 25
- Disagreed none
- Real-world Experience
- Working with partner was good practice for
working in the real world - Agreed All
- working with a partner improved my communication
skills - Disagreed none
16Pair Programming Process Logs
- Two brains better than one
- Working with Peter, helps me to understand the
assignments and the purpose. - Software Design Experience
- Once I had them debugged my partner and I put
our code together and started the full-blown
testing phase - Emotional Support
- Peter typed the syntax while I assisted in the
thinking and problem solving part of the
assignment. - Real-world Experience
- Writing this code with a partner helped me
improve my communication skills
17- Approach
- Complex projects
- Pair programming
- Process-Log journals
- Web-based portfolios
- Multiple Intelligence (Instruction)
- Student-centered projects
18Process Logs
- Motivation
- Monitor participation in pairs
- Additional benefits
- Monitor understanding of material
- Monitor communication and coordination
- Monitor cognitive development
- Analysis
- Qualitative Results (logs themselves)
- Quantitative Results (questionnaire)
19Process logs Qualitative
- Understanding of material
- Doing this assignment was a nice review on
templates, stacks, and queues for me. - So far in my programming experience, I was
taught about the concept of software re-usability
but I never had to write a whole program that
dealt with software re-usability (excluding
header files). Thus, in a way, this assignment
was a great experience for me.
20Process logs Qualitative
- Communication and Coordination
- We started off by thinking about the thought
process behind the problem before starting the
code - When we got to the lab, my partner and I first
discussed how we wanted to write this program and
who is writing what - my partner and I split up the program so we
would be doing an equal amount of work - After testing the populated world with my
partners print function, I had to figure out the
best way to check whether each non-edge block
should have an organism born, stay alive or die
21Process Logs Quantitative
- Doing process logs helped me to think about how
I solved the problems - Agreed 60
- Neutral 40
- Disagreed None
22- Approach
- Complex projects
- Pair programming
- Process-Log journals
- Web-based portfolios
- Multiple Intelligence (Instruction)
- Student-centered projects
23Web Based Portfolios
- Motivation
- Accountability for programming products
- source code readability
- user interface usability
- executable files reliability
- Implementation
- Instructions
- promote your accomplishments by displaying on a
web-based portfolio - think of it as a programmers resume
- describe your work as if you are going to sell
it
24Web-based Portfolio Example
25Web-based Portfolio Results
- Quantitative
- I had a web page before the class
- Yes 47
- No 32
- Sort of 21
- Portfolio improved quality of my assignments
- No indication
- Qualitative
- Students did not address the web-based portfolio
requirement in their process logs.
26- Approach
- Complex projects
- Pair programming
- Process-Log journals
- Web-based portfolios
- Multiple Intelligence (Instruction)
- Student-centered projects
27Method of In-class Instruction
- Determines
- Learning rate
- Retention rate
- Translation into solutions
- Depends on
- Instructor
- Environment
- Interest
- Technology
28Theory of Multiple-Intelligences
-
- We do not fully learn and retain information
unless more than one of our intelligences is
involved in the process. - Becker, K., A multiple-intelligences
approach to teaching number systems, Journal of
Computing Sciences in Small Colleges, 19, (2),
6-17, 2003.
29Multiple Intelligence Instruction
- Context
- Data structures course at Wentworth
- Combined techniques multiple
intelligences. - Methods
- Slides
- In-class exercises
- Class developed solutions to programming problems
- Next slides Each technique with observed
- Benefits
- weaknesses
- conditions and co-techniques.
- Classification of learner types
- Becker, K., A multiple-intelligences approach to
teaching number systems, Journal of Computing
Sciences in Small Colleges, 19, (2), 6-17, 2003.
Accommodate
30Method Slides
- Benefits
- Text linguistic learner.
- Illustrations and examples Visual
learner. - Handouts discussion focus (vs notes)
- Weaknesses
- Darkened room sleep
- Too many words hard to absorb
- Conditions and Co-Techniques
- Mediated classroom
- LCD display, computer, Powerpoint
- In-class exercises and class developed solutions
- actual development and implementation as a class
- Questions embedded into slides
- students must come to class for material, even
when slides otherwise available to absent
students.
31Method Group/Pair Exercises
- Benefits
- Practice (learn by doing)
- Bodily-kinesthetic learner (physical activity)
- Interpersonal learner (social awareness and
interaction) - Weaknesses
- Variable completion rates
- un-productive conversation
- Less covered
32Method Class Developed Solution
- Benefits
- Interpersonal learner (social awareness
interaction) - Learn from mistakes (ones own and others)
- Software Development Lifecycle
- Design, Implement, Compile, Debug, Test
- Weaknesses
- Student non-participation
- Time consuming
- Conditions and Co-Techniques
- Mediated classroom
- Safe environment
- Related to homework
33- Approach
- Complex projects
- Pair programming
- Process-Log journals
- Web-based portfolios
- Multiple Intelligence (Instruction)
- Student-centered projects
34Student-centered Projects
- Motivation
- Students internally-directed
- Qualitative Results
- The Game of Life .. will run each generation of
the cells automatically, it is quite fun to
watch! (students process log Game of
Life assignment) - RPN expressions interesting to solve
(students process log reverse polish notation
assignment) - A nifty little program that simulates planes
taking off and landing using queues!
(students process log plane
simulation assignment) - Yet another enjoyable program to work on
(students process log program comment stripper
assignment)
35Preliminary Study Selected Results (small
sample size, cant be unequivocally proven)
- Pair programming best with self-selection
- Worked alone
- indicated performed better alone
- Commuters
- did not select to work in pairs
- Worked in pairs
- Prepared for real world
- Improved
- communication
- confidence
- analysis/design skills
36Preliminary Study Selected Results
- Slides with handouts
- Preferred over traditional board/notes method
- Process logs
- Monitor
- Pair programming
- Understanding
- Interest
- Encourage
- planning before coding
- In-class exercises
- Practice
- Limit absences
37Conclusions
- Objective
- Results promising
- Results inconclusive
- Claims not proven due to small sample size
- Subjective
- Depth
- Complex problems assigned each week
- Assignments submitted on time
- Breadth
- All topics on syllabus presented before end of
semester
38Future Work
- Controlled Evaluation
- Two cohort groups
- Students using combined techniques, including
- Pair-programming
- Process logs
- Web-based portfolios
- Slides and in-class exercises
- Students not using the techniques
- Develop measures for quality of work between
- Web-based based group and control group
- Students working in pairs and students working
alone
39Future Work (continued)
- Evaluate grades at checkpoints
- Within and at end of semester
- Compare instructor contact hours
- Outside of class time
- Gather questionnaire results
- From each cohort group
- During the semester
- At later point
- How well did skills transfer to next course in
sequence?
40References
- 1 Amon, T., Bicycle club mileage log a servlet
application for teaching web programming, Journal
of Computing in Small Colleges, 19, (1), 218-225,
2003. - Â
- 2 Anewalt, K., Beidler, J., Polack-Wahl, J.,
Smarkusky, D., Group projects across the
curriculum, Journal of Computing Sciences in
Small Colleges, 19, (2), 232-237, 2003. - Â
- 3 Becker, K., A multiple-intelligences approach
to teaching number systems, Journal of Computing
Sciences in Small Colleges, 19, (2), 6-17, 2003. - Â
- 4 Chin, D., Prins, P., Tenenberg, J., The role
of the data structures course in the computing
curriculum, Journal of Computing in Small
Colleges, 19, (2), 91-93, 2003. - 5 Cliburn, D., Experiences with pair
programming at a small college, Journal of
Computing in Small Colleges, 1,9(1), 20-29, 2003. - Â
- 6 Clincy, V., Software development productivity
and cycle time reduction, Journal of Computing
Sciences in Small Colleges 19, (2), 278-287,
2003. - Â
41References (cont.)
- 7 Cockburn, W., Williams, L. The costs and
benefits of pair programming, http//collaboration
.csc.ncsu.edu/laurie/Papers/XPSsardinia.PDF.
2004. - Â
- 8 DeClue, T., Pair programming and pair
trading effects on learning and motivation on a
CS2 Course, Journal of Computing in Small
Colleges, 18, (5), 49-56, 2003. - 9 Estell, J., Programming portfolios on the
web an interactive approach, Journal of
Computing in Small Colleges, 16, (1), 55-67,
2000. - Â
- 10 Lewandowski, G., Using process journals to
gain qualitative understanding of beginning
programmers, Journal of Computing in Small
Colleges, 19, (1), 298-309, 2003.
42Questions?