Balancing Depth and Breadth in the Data Structures Course - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

Balancing Depth and Breadth in the Data Structures Course

Description:

Karina Assiter, Ph.D. Computer Science and Systems Department. Wentworth ... 'After testing the populated world with my partners' print function, I had to ... – PowerPoint PPT presentation

Number of Views:101
Avg rating:3.0/5.0
Slides: 43
Provided by: assi3
Category:

less

Transcript and Presenter's Notes

Title: Balancing Depth and Breadth in the Data Structures Course


1
Balancing 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

2
Outline
  • 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

3
Motivation
  • 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?

4
Data 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

5
Challenge
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

7
Choices
  • 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?

8
Pedagogical techniques to address challenge
  • Approach
  • Complex projects
  • Pair programming
  • Process-Log journals
  • Web-based portfolios
  • Multiple Intelligence (Instruction)
  • Student-centered projects

9
Preliminary 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

11
Complex 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

13
Pair 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)

14
Pair 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

15
Pair 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

16
Pair 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

18
Process 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)

19
Process 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.

20
Process 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

21
Process 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

23
Web 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

24
Web-based Portfolio Example
25
Web-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

27
Method of In-class Instruction
  • Determines
  • Learning rate
  • Retention rate
  • Translation into solutions
  • Depends on
  • Instructor
  • Environment
  • Interest
  • Technology

28
Theory 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.

29
Multiple 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
30
Method 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.

31
Method 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

32
Method 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

34
Student-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)

35
Preliminary 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

36
Preliminary 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

37
Conclusions
  • 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

38
Future 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

39
Future 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?

40
References
  • 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.
  •  

41
References (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.

42
Questions?
Write a Comment
User Comments (0)
About PowerShow.com