SlideShare a Scribd company logo
1 of 20
Assessment in an Introduction to
     Programming Course
             Andrew Hurd
           Assistant Professor
           Hudson Valley CC
                Troy, NY
How do you assess your students’
programming process?
• As educators do we look for a better way to
  assess our students?
• What about coding over time?
• What about CodeCraft?
• In an intro to programming class most
  students don’t have software engineering
• Most of the time they don’t know a SDLC
• Most classes are focused on learning syntax
Grade break down

• 10% - Average of quizzes (lowest quiz
  dropped)
• 15% - Average of Homework/Hybrid
  Assignments/Discussion boards
• 50% - Average of programming projects
• 25% - Final Exam
Too much to READ!
• Programming Projects - Programming projects will be
  assigned throughout the semester. These projects will
  be in addition to the homework that will generally be
  due. The programming project will be worth 20 points
  each as indicated on each exercise. The due date for
  the project will be given when the project is given.
  CodeCraft - Part of being a professional programmer involves
  using professional tools and techniques. It's not enough to
  write code that works; you also need to develop in ways that
  reduce the likelihood of errors, increase your ability to
  communicate your intentions with other programmers, and
  improve your ability to understand and improve your own
  programming habits. Within each programming assignment a
  portion of the final grade will be assigned to code craft.
What about coding over time?

• Using a CM tool to judge CodeCraft
  – Introduction to programming class using GIT
    • Students need to download the software
       – git-scm.com
    • Three basic commands needed
       – git init
       – git add .
       – git commit –m “comment”
What is the process?

• Student creates a folder either with the
  GIT bash shell or in their OS.
• In the GIT bash shell they navigate to the
  folder and type git init
  – This creates the CM repository
• They open their editor and create their
  source code and save it in the same
  directory
What is the process? (cont…)

• EVERY time they save their source code
  they do two steps in the GIT bash shell
  – git add .  (don’t forget the period)
  – git commit –m “comment here”
• Ensure the students are adding and
  committing their code
How do students turn in code?

• They compress the folder
  – Windows compression
  – Winzip
  – Any other tool that will compress the folder
  – MAKE sure if they are using a third party
    software like Winzip they select add all
    system and hidden files
Git Visualization

• Created by Brian Danielak
https://github.com/briandk/gitvisualizations

  There is some basic setup. A one time process.
  See the readme file in the repository.
So what can you do with it?

# generate git visualizations

find ~/Documents/studentcode/ -type d -
name '[^.]*' -maxdepth 1 -exec python
~/gitvisualizations/RepoStatistics/RepoStatis
tics.py {} --since='2013-01-20' ;
# remove class files
find ~/Documents/studentcode -type f -name '*class' -maxdepth 2 -exec rm {} ;


# remove temp files
find ~/Documents/studentcode -type f -name '*java~' -maxdepth 2 -exec rm {} ;

# to compile all student's .java files (you'll see any compile-time errors with path info)
find ~/Documents/studentcode -type f -name '*java' -maxdepth 2 -exec javac {} ;

# clean up git visualizations
find ~/Documents/studentcode -type f -name '*csv' -maxdepth 2 -exec rm {} ;
find ~/Documents/studentcode -type f -name '*pdf' -maxdepth 2 -exec rm {} ;
Extracting just the comments
•   # This gives a short-hash (%h), a simple date, and just the subject line of
    the commit
     – git log --format="%h | %ad | %s" --date=short

•   If you use the format=" " formatting string, some common placeholders are:
     –   %s: subject
     –   %f: sanitized subject line, suitable for a filename
     –   %b: body
     –   %B: raw body (unwrapped subject and body)
     –   %N: commit notes
     –   %an: author name
     –   %aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
     –   %ae: author email
     –   %aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
     –   %ad: author date (format respects --date= option)
     –   %aD: author date, RFC2822 style
     –   %ar: author date, relative
Conclusion
• I have a form of assessment that looks at the
  process of the coding
• While the final product is still important, I can
  try to understand their process
• Cheating?
• If a student gets stuck, they compress their
  repository and sends it to me
• I can address exactly where students have
  gone wrong.
• I can roll back their repositories if need be.
Questions?
Contact information


             Andrew Hurd
           Hudson Valley CC
            Troy, NY 12180
           a.hurd@hvcc.edu
     LinkedIn: ahurd72@gmail.com
            (518)-629-7268

More Related Content

Similar to Andrew hurd, assessment in an intro to programming course

DataMind interactive learning: Dublin R User Group: September 2013
DataMind interactive learning: Dublin R User Group: September 2013DataMind interactive learning: Dublin R User Group: September 2013
DataMind interactive learning: Dublin R User Group: September 2013DataMind-slides
 
Algorithms and Application Programming
Algorithms and Application ProgrammingAlgorithms and Application Programming
Algorithms and Application Programmingahaleemsl
 
Object Oriented System Design
Object Oriented System DesignObject Oriented System Design
Object Oriented System DesignMurugeswari Ravi
 
IGCSE & O Level Computer Workbook for P2 by Inqilab Patel
IGCSE & O Level Computer Workbook for P2 by Inqilab PatelIGCSE & O Level Computer Workbook for P2 by Inqilab Patel
IGCSE & O Level Computer Workbook for P2 by Inqilab PatelInqilab Patel
 
Why your build matters
Why your build mattersWhy your build matters
Why your build mattersPeter Ledbrook
 
Maintaining and Releasing Open Source Software
Maintaining and Releasing Open Source SoftwareMaintaining and Releasing Open Source Software
Maintaining and Releasing Open Source SoftwareJoel Nothman
 
Reproducible research: practice
Reproducible research: practiceReproducible research: practice
Reproducible research: practiceC. Tobin Magle
 
Reproducible Research in R and R Studio
Reproducible Research in R and R StudioReproducible Research in R and R Studio
Reproducible Research in R and R StudioSusan Johnston
 
Reproducible research concepts and tools
Reproducible research concepts and toolsReproducible research concepts and tools
Reproducible research concepts and toolsC. Tobin Magle
 
Dig1108C Lesson 1 Fall 2014
Dig1108C Lesson 1 Fall 2014Dig1108C Lesson 1 Fall 2014
Dig1108C Lesson 1 Fall 2014David Wolfpaw
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
Writing code for people
Writing code for peopleWriting code for people
Writing code for peopleAlexey Ivanov
 
01 introduction to cpp
01   introduction to cpp01   introduction to cpp
01 introduction to cppManzoor ALam
 
Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016maiktoepfer
 
Technical debt strategy
Technical debt strategyTechnical debt strategy
Technical debt strategyMasas Dani
 
Interop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough CodeInterop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough CodeJeremy Schulman
 
Keep your repo clean
Keep your repo cleanKeep your repo clean
Keep your repo cleanHector Canto
 

Similar to Andrew hurd, assessment in an intro to programming course (20)

DataMind interactive learning: Dublin R User Group: September 2013
DataMind interactive learning: Dublin R User Group: September 2013DataMind interactive learning: Dublin R User Group: September 2013
DataMind interactive learning: Dublin R User Group: September 2013
 
Algorithms and Application Programming
Algorithms and Application ProgrammingAlgorithms and Application Programming
Algorithms and Application Programming
 
Object Oriented System Design
Object Oriented System DesignObject Oriented System Design
Object Oriented System Design
 
IGCSE & O Level Computer Workbook for P2 by Inqilab Patel
IGCSE & O Level Computer Workbook for P2 by Inqilab PatelIGCSE & O Level Computer Workbook for P2 by Inqilab Patel
IGCSE & O Level Computer Workbook for P2 by Inqilab Patel
 
Besut Kode Challenge 1
Besut Kode Challenge 1Besut Kode Challenge 1
Besut Kode Challenge 1
 
Why your build matters
Why your build mattersWhy your build matters
Why your build matters
 
Maintaining and Releasing Open Source Software
Maintaining and Releasing Open Source SoftwareMaintaining and Releasing Open Source Software
Maintaining and Releasing Open Source Software
 
Reproducible research: practice
Reproducible research: practiceReproducible research: practice
Reproducible research: practice
 
Reproducible Research in R and R Studio
Reproducible Research in R and R StudioReproducible Research in R and R Studio
Reproducible Research in R and R Studio
 
Reproducible research concepts and tools
Reproducible research concepts and toolsReproducible research concepts and tools
Reproducible research concepts and tools
 
Dig1108C Lesson 1 Fall 2014
Dig1108C Lesson 1 Fall 2014Dig1108C Lesson 1 Fall 2014
Dig1108C Lesson 1 Fall 2014
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Writing code for people
Writing code for peopleWriting code for people
Writing code for people
 
01 introduction to cpp
01   introduction to cpp01   introduction to cpp
01 introduction to cpp
 
Untangling4
Untangling4Untangling4
Untangling4
 
Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016
 
Technical debt strategy
Technical debt strategyTechnical debt strategy
Technical debt strategy
 
Interop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough CodeInterop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough Code
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Keep your repo clean
Keep your repo cleanKeep your repo clean
Keep your repo clean
 

More from Cengage Learning

Discovering History Through Digital Newspaper Collection
Discovering History Through Digital Newspaper CollectionDiscovering History Through Digital Newspaper Collection
Discovering History Through Digital Newspaper CollectionCengage Learning
 
Are Your Students Ready for Lab?
Are Your Students Ready for Lab?Are Your Students Ready for Lab?
Are Your Students Ready for Lab?Cengage Learning
 
5 Course Design Tips to Increase Engagement and Outcomes
5 Course Design Tips to Increase Engagement and Outcomes5 Course Design Tips to Increase Engagement and Outcomes
5 Course Design Tips to Increase Engagement and OutcomesCengage Learning
 
The Journey to Digital: Incorporating Technology to Strengthen Critical Minds
 The Journey to Digital: Incorporating Technology to Strengthen Critical Minds The Journey to Digital: Incorporating Technology to Strengthen Critical Minds
The Journey to Digital: Incorporating Technology to Strengthen Critical MindsCengage Learning
 
Google Drive Plus TexQuest Equals a Match Made in Research Heaven
Google Drive Plus TexQuest Equals a Match Made in Research HeavenGoogle Drive Plus TexQuest Equals a Match Made in Research Heaven
Google Drive Plus TexQuest Equals a Match Made in Research HeavenCengage Learning
 
Improving Time Management: Tips that Will Help College Students Start the Yea...
Improving Time Management: Tips that Will Help College Students Start the Yea...Improving Time Management: Tips that Will Help College Students Start the Yea...
Improving Time Management: Tips that Will Help College Students Start the Yea...Cengage Learning
 
Mind Tap Open Trial Cengage Learning
Mind Tap Open Trial Cengage LearningMind Tap Open Trial Cengage Learning
Mind Tap Open Trial Cengage LearningCengage Learning
 
Getting Started with Enhanced WebAssign 8/11/15 Presented by: Mike Lafreniere...
Getting Started with Enhanced WebAssign 8/11/15 Presented by: Mike Lafreniere...Getting Started with Enhanced WebAssign 8/11/15 Presented by: Mike Lafreniere...
Getting Started with Enhanced WebAssign 8/11/15 Presented by: Mike Lafreniere...Cengage Learning
 
Taming the Digital Tiger: Implementing a Successful Digital or 1:1 Initiative
Taming the Digital Tiger: Implementing a Successful Digital or 1:1 InitiativeTaming the Digital Tiger: Implementing a Successful Digital or 1:1 Initiative
Taming the Digital Tiger: Implementing a Successful Digital or 1:1 InitiativeCengage Learning
 
Decimal and Fraction Jeopardy - A Game for Developmental Math
Decimal and Fraction Jeopardy - A Game for Developmental MathDecimal and Fraction Jeopardy - A Game for Developmental Math
Decimal and Fraction Jeopardy - A Game for Developmental MathCengage Learning
 
Game it up! Introducing Game Based Learning for Developmental Math
Game it up! Introducing Game Based Learning for Developmental MathGame it up! Introducing Game Based Learning for Developmental Math
Game it up! Introducing Game Based Learning for Developmental MathCengage Learning
 
Overcoming Textbook Fatigue
Overcoming Textbook FatigueOvercoming Textbook Fatigue
Overcoming Textbook FatigueCengage Learning
 
Adult Student Success: How Does Awareness Correlate to Program Completion?
Adult Student Success: How Does Awareness Correlate to Program Completion?Adult Student Success: How Does Awareness Correlate to Program Completion?
Adult Student Success: How Does Awareness Correlate to Program Completion?Cengage Learning
 
You're responsible for teaching, and your students are resonsible for learnin...
You're responsible for teaching, and your students are resonsible for learnin...You're responsible for teaching, and your students are resonsible for learnin...
You're responsible for teaching, and your students are resonsible for learnin...Cengage Learning
 
What is the Impact of the New Standard on the Intermediate Accounting Course?
What is the Impact of the New Standard on the Intermediate Accounting Course?What is the Impact of the New Standard on the Intermediate Accounting Course?
What is the Impact of the New Standard on the Intermediate Accounting Course?Cengage Learning
 
The ABCs Approach to Goal Setting and Implementation
The ABCs Approach to Goal Setting and ImplementationThe ABCs Approach to Goal Setting and Implementation
The ABCs Approach to Goal Setting and ImplementationCengage Learning
 
Competency-based Education: Out with the new, in with the old?
Competency-based Education: Out with the new, in with the old? Competency-based Education: Out with the new, in with the old?
Competency-based Education: Out with the new, in with the old? Cengage Learning
 
Student-to-Student Learning, Powered by FlashNotes
Student-to-Student Learning, Powered by FlashNotes Student-to-Student Learning, Powered by FlashNotes
Student-to-Student Learning, Powered by FlashNotes Cengage Learning
 
Creating Career Success: A Flexible Plan for the World of Work
Creating Career Success: A Flexible Plan for the World of WorkCreating Career Success: A Flexible Plan for the World of Work
Creating Career Success: A Flexible Plan for the World of WorkCengage Learning
 
Preparing Students for Career Success
Preparing Students for Career Success Preparing Students for Career Success
Preparing Students for Career Success Cengage Learning
 

More from Cengage Learning (20)

Discovering History Through Digital Newspaper Collection
Discovering History Through Digital Newspaper CollectionDiscovering History Through Digital Newspaper Collection
Discovering History Through Digital Newspaper Collection
 
Are Your Students Ready for Lab?
Are Your Students Ready for Lab?Are Your Students Ready for Lab?
Are Your Students Ready for Lab?
 
5 Course Design Tips to Increase Engagement and Outcomes
5 Course Design Tips to Increase Engagement and Outcomes5 Course Design Tips to Increase Engagement and Outcomes
5 Course Design Tips to Increase Engagement and Outcomes
 
The Journey to Digital: Incorporating Technology to Strengthen Critical Minds
 The Journey to Digital: Incorporating Technology to Strengthen Critical Minds The Journey to Digital: Incorporating Technology to Strengthen Critical Minds
The Journey to Digital: Incorporating Technology to Strengthen Critical Minds
 
Google Drive Plus TexQuest Equals a Match Made in Research Heaven
Google Drive Plus TexQuest Equals a Match Made in Research HeavenGoogle Drive Plus TexQuest Equals a Match Made in Research Heaven
Google Drive Plus TexQuest Equals a Match Made in Research Heaven
 
Improving Time Management: Tips that Will Help College Students Start the Yea...
Improving Time Management: Tips that Will Help College Students Start the Yea...Improving Time Management: Tips that Will Help College Students Start the Yea...
Improving Time Management: Tips that Will Help College Students Start the Yea...
 
Mind Tap Open Trial Cengage Learning
Mind Tap Open Trial Cengage LearningMind Tap Open Trial Cengage Learning
Mind Tap Open Trial Cengage Learning
 
Getting Started with Enhanced WebAssign 8/11/15 Presented by: Mike Lafreniere...
Getting Started with Enhanced WebAssign 8/11/15 Presented by: Mike Lafreniere...Getting Started with Enhanced WebAssign 8/11/15 Presented by: Mike Lafreniere...
Getting Started with Enhanced WebAssign 8/11/15 Presented by: Mike Lafreniere...
 
Taming the Digital Tiger: Implementing a Successful Digital or 1:1 Initiative
Taming the Digital Tiger: Implementing a Successful Digital or 1:1 InitiativeTaming the Digital Tiger: Implementing a Successful Digital or 1:1 Initiative
Taming the Digital Tiger: Implementing a Successful Digital or 1:1 Initiative
 
Decimal and Fraction Jeopardy - A Game for Developmental Math
Decimal and Fraction Jeopardy - A Game for Developmental MathDecimal and Fraction Jeopardy - A Game for Developmental Math
Decimal and Fraction Jeopardy - A Game for Developmental Math
 
Game it up! Introducing Game Based Learning for Developmental Math
Game it up! Introducing Game Based Learning for Developmental MathGame it up! Introducing Game Based Learning for Developmental Math
Game it up! Introducing Game Based Learning for Developmental Math
 
Overcoming Textbook Fatigue
Overcoming Textbook FatigueOvercoming Textbook Fatigue
Overcoming Textbook Fatigue
 
Adult Student Success: How Does Awareness Correlate to Program Completion?
Adult Student Success: How Does Awareness Correlate to Program Completion?Adult Student Success: How Does Awareness Correlate to Program Completion?
Adult Student Success: How Does Awareness Correlate to Program Completion?
 
You're responsible for teaching, and your students are resonsible for learnin...
You're responsible for teaching, and your students are resonsible for learnin...You're responsible for teaching, and your students are resonsible for learnin...
You're responsible for teaching, and your students are resonsible for learnin...
 
What is the Impact of the New Standard on the Intermediate Accounting Course?
What is the Impact of the New Standard on the Intermediate Accounting Course?What is the Impact of the New Standard on the Intermediate Accounting Course?
What is the Impact of the New Standard on the Intermediate Accounting Course?
 
The ABCs Approach to Goal Setting and Implementation
The ABCs Approach to Goal Setting and ImplementationThe ABCs Approach to Goal Setting and Implementation
The ABCs Approach to Goal Setting and Implementation
 
Competency-based Education: Out with the new, in with the old?
Competency-based Education: Out with the new, in with the old? Competency-based Education: Out with the new, in with the old?
Competency-based Education: Out with the new, in with the old?
 
Student-to-Student Learning, Powered by FlashNotes
Student-to-Student Learning, Powered by FlashNotes Student-to-Student Learning, Powered by FlashNotes
Student-to-Student Learning, Powered by FlashNotes
 
Creating Career Success: A Flexible Plan for the World of Work
Creating Career Success: A Flexible Plan for the World of WorkCreating Career Success: A Flexible Plan for the World of Work
Creating Career Success: A Flexible Plan for the World of Work
 
Preparing Students for Career Success
Preparing Students for Career Success Preparing Students for Career Success
Preparing Students for Career Success
 

Andrew hurd, assessment in an intro to programming course

  • 1. Assessment in an Introduction to Programming Course Andrew Hurd Assistant Professor Hudson Valley CC Troy, NY
  • 2. How do you assess your students’ programming process? • As educators do we look for a better way to assess our students? • What about coding over time? • What about CodeCraft? • In an intro to programming class most students don’t have software engineering • Most of the time they don’t know a SDLC • Most classes are focused on learning syntax
  • 3. Grade break down • 10% - Average of quizzes (lowest quiz dropped) • 15% - Average of Homework/Hybrid Assignments/Discussion boards • 50% - Average of programming projects • 25% - Final Exam
  • 4. Too much to READ! • Programming Projects - Programming projects will be assigned throughout the semester. These projects will be in addition to the homework that will generally be due. The programming project will be worth 20 points each as indicated on each exercise. The due date for the project will be given when the project is given. CodeCraft - Part of being a professional programmer involves using professional tools and techniques. It's not enough to write code that works; you also need to develop in ways that reduce the likelihood of errors, increase your ability to communicate your intentions with other programmers, and improve your ability to understand and improve your own programming habits. Within each programming assignment a portion of the final grade will be assigned to code craft.
  • 5. What about coding over time? • Using a CM tool to judge CodeCraft – Introduction to programming class using GIT • Students need to download the software – git-scm.com • Three basic commands needed – git init – git add . – git commit –m “comment”
  • 6. What is the process? • Student creates a folder either with the GIT bash shell or in their OS. • In the GIT bash shell they navigate to the folder and type git init – This creates the CM repository • They open their editor and create their source code and save it in the same directory
  • 7. What is the process? (cont…) • EVERY time they save their source code they do two steps in the GIT bash shell – git add .  (don’t forget the period) – git commit –m “comment here” • Ensure the students are adding and committing their code
  • 8. How do students turn in code? • They compress the folder – Windows compression – Winzip – Any other tool that will compress the folder – MAKE sure if they are using a third party software like Winzip they select add all system and hidden files
  • 9. Git Visualization • Created by Brian Danielak https://github.com/briandk/gitvisualizations There is some basic setup. A one time process. See the readme file in the repository.
  • 10. So what can you do with it? # generate git visualizations find ~/Documents/studentcode/ -type d - name '[^.]*' -maxdepth 1 -exec python ~/gitvisualizations/RepoStatistics/RepoStatis tics.py {} --since='2013-01-20' ;
  • 11. # remove class files find ~/Documents/studentcode -type f -name '*class' -maxdepth 2 -exec rm {} ; # remove temp files find ~/Documents/studentcode -type f -name '*java~' -maxdepth 2 -exec rm {} ; # to compile all student's .java files (you'll see any compile-time errors with path info) find ~/Documents/studentcode -type f -name '*java' -maxdepth 2 -exec javac {} ; # clean up git visualizations find ~/Documents/studentcode -type f -name '*csv' -maxdepth 2 -exec rm {} ; find ~/Documents/studentcode -type f -name '*pdf' -maxdepth 2 -exec rm {} ;
  • 12. Extracting just the comments • # This gives a short-hash (%h), a simple date, and just the subject line of the commit – git log --format="%h | %ad | %s" --date=short • If you use the format=" " formatting string, some common placeholders are: – %s: subject – %f: sanitized subject line, suitable for a filename – %b: body – %B: raw body (unwrapped subject and body) – %N: commit notes – %an: author name – %aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1)) – %ae: author email – %aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1)) – %ad: author date (format respects --date= option) – %aD: author date, RFC2822 style – %ar: author date, relative
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Conclusion • I have a form of assessment that looks at the process of the coding • While the final product is still important, I can try to understand their process • Cheating? • If a student gets stuck, they compress their repository and sends it to me • I can address exactly where students have gone wrong. • I can roll back their repositories if need be.
  • 20. Contact information Andrew Hurd Hudson Valley CC Troy, NY 12180 a.hurd@hvcc.edu LinkedIn: ahurd72@gmail.com (518)-629-7268