Exploiting Automatic Testing in BlueJ Programming Process and Practical Lab Exam Michael E. Caspersen University of Aarhus Denmark User.

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

Compiler Construction by Muhammad Bilal Zafar (AP)
Damian Gordon.  This module is concerned with program design skills, with particular reference to using flowcharts, pseudocode and programming language.
Chapter 6: Design of Expert Systems
1 Simulation Modeling and Analysis Verification and Validation.
1 Info 1409 Systems Analysis & Design Module Lecture 8 – Modelling tools and techniques HND Year /9 De Montfort University.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Data Structures and Programming.  John Edgar2.
Activity 1 - WBs 5 mins Go online and spend a moment trying to find out the difference between: HIGH LEVEL programming languages and LOW LEVEL programming.
M1G Introduction to Programming 2 1. Designing a program.
1 Introduction Chapter 1. 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization.
1 The Problem Do you have: A legacy ABL system with millions of Lines of ABL Code? Years and years of modifications to your ABL code? System documentation.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Teachers Discovering Computers Integrating Technology and Digital Media in the Classroom 7 th Edition Evaluating Educational Technology and Integration.
Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Twelfth Edition.
1 1 Software Documentation David Geldreich (DREAM)
1 Workshop on Business-Driven Enterprise Application Design & Implementation Cristal City, Washington D.C., USA, July 21, 2008 How to Describe Workflow.
Object-Oriented Analysis and Design Fall 2009.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
First BlueJ Day Houston, 2006 Unit Testing with BlueJ Bruce Quig Deakin University.
Well-behaved objects Main concepts to be covered Testing Debugging Test automation Writing for maintainability Objects First with Java - A Practical.
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001.
COM606 Software Process Engineering and on the Portal Introduction.
Lecture.1: Getting Started With Java Jiang (Jen) ZHENG May 9 th, 2005.
Spring 2012 CS 214 Programming Languages. Details Moodle! REQUIRED text: Sebesta, Programming Language Concepts, 9ed. Important dates: February 17: Project.
Software Waterfall Life Cycle
1 COMS 261 Computer Science I Title: C++ Fundamentals Date: September 05, 2005 Lecture Number: 4.
Data Structures Using C++ 2E
Compiler Construction (CS-636)
1First BlueJ Day, Houston, Texas, 1st March 2006 Debugging in BlueJ Davin McCall.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
HCI Meeting 1 Thursday, August 26. Class Activities [1] Student questionnaire Answer the following questions: 1.When and where was the computer mouse.
Dayu Zhang 9/10/2014 Lab03. Outline Brief Review of the 4 Steps in Hello.cpp Example Understand endl and \n Understand Comment Programming Exercise -
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 12 Exploring Information System Development.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
1 Software Development Life cycle (SDLC). Phases of SDLC 2 Requirement Analysis (Defining Requirement) Designing (Design) Coding (Implementation) Software.
Software Design and Development Development Methodoligies Computing Science.
6.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Software Engineering Lecture 11 Software Testing Presenter: Josef Hallberg 1.
Name/Title of Your App Prepared by: …… For the 5 th National ICT Innovation Competition.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Component 1.6.
Objects First with Java A Practical Introduction using BlueJ
Systems Analysis and Design With UML 2
Software Engineering in the Academy
COMPUTING BTEC LEVEL /17.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
TAL 7011 Architecture of Large Software Systems
About the Presentations
Chapter 6: Design of Expert Systems
Object-Orientated Programming
Systems Analysis and Design in a Changing World, 6th Edition
The Process of Object Modeling
Software Development Life cycle
Software Engineering in the Academy
Chapter 2 Software Processes
Unified Modeling Language
1 مفهوم ارتباطات ارتباطات معادل واژه communications ) ميباشد(. ارتباطات يك فرايند اجتماعي و دو طرفه است كه در آن اطلاعات مبادله شده و نوعي تفاهم بين طرفهاي.
Chapter 2 – Software Processes
COS 260 DAY 16 Tony Gauvin.
COS 260 DAY 2 Tony Gauvin.
Chapter 7 –Implementation Issues
Objects First with Java A Practical Introduction using BlueJ
Review CSE116 2/21/2019 B.Ramamurthy.
Outline Chapter 2 (cont) OS Design OS structure
Objects First with Java A Practical Introduction using BlueJ
LCC 6310 Computation as an Expressive Medium
ICS103 Programming in C 1: Overview of Computers And Programming
Presentation transcript:

Exploiting Automatic Testing in BlueJ Programming Process and Practical Lab Exam Michael E. Caspersen University of Aarhus Denmark User Talk First BlueJ Day, 1 March 2006

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.2 Uses of BlueJ General IDE –edit, compile, run,... Exploring “the notional machine” –debugger (flow of control, object model, object interaction,...) Incremental program development –automatic testing Model-driven programming –UML support

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.3 Outline Programming Process Choice of Examination Form Practical Lab-Exam ”Conclusion”

Programming Process

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.5 The Missing Link... tools concepts language constructs finished programs ?

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.6 Strategies, Principles, and Techniques tools concepts language constructs finished programs The Practice of Programming Describe strategies, principles, and techniques of program development Demonstrate how to apply these in action Develop programs instead of simply showcasing them Demonstrate that programming is a non-linear process Demonstrate incremental development Demonstrate model-driven development Demonstrate test-driven development Demonstrate responsibility-driven development Demonstrate refactoring Demonstrate how to find and handle errors Demonstrate how to use online documentation Demonstrate, demonstrate, demonstrate for the systematic development of programs

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.7 Example: Class Date Refinement of class Date Special cases –systematic treatment of special cases –suppress implementation details –introduce private methods to handle special cases The mañana principle –introduce an abstraction –worry about implementation details ”tomorrow” public class Date { private int d, // 1 <= d <= daysInMonth m, // 1 <= m <= 12 y; public Date(int dd, int mm, int yy) { d = dd; m = mm; y = yy; } public void setToNextDate() { d = d + 1; } public String toString() { return d + "-" + m + "-" + y; }

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.8 Refinement and Automatic Testing R2: Add checkDayOverflow R1: Naive implementation of class Date R3: Add checkMonthOverflow R4: 28, 30, or 31 days in month R5: Partial leap year rule R6: Complete leap year rule

Choice of Examination Form

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.10 Education as a Goal-Oriented Activity 1.Articulate aims and goals –Short as well as long term –Micro as well as macro level (assignment, lecture, course, degree) 2.Design assessment method –such that a winning strategy with respect to assessment optimize learning 3.Design teaching and (intended) learning process –Progression, abstract vs. concrete, general vs. special, apprenticeship approach, spiral approach, early bird,... 4.Decide on dissemination methods –Material (textbook, web, learning objects, videos, sample programs,...) –Teaching method (lecture, class, lab, student collaboration, project work, supervision,...)

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.11 Course and Exam Must Match The final exam must reflect the contents of the course –The spirit and style of student assessment defines de facto the curriculum. — Rowntree, 1977 –The type of grading influences the student’s learning approach. — Ramsden, 1992 –We find it mandatory to apply an evaluation form where the students demonstrate their practical programming skills as well as their understanding of the fundamental concepts and theories from the curriculum of the course. –In short: course contents and final exam must match.

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.12 Choice of Examination Form Test the students against expected competencies –After the course the student will be able to use fundamental elements in a modern programming language –Use conceptual modelling for systematic development of simple object-oriented programs –Implement simple oo-models in a modern programming language, and –Use selected class libraries –Weekly mandatory assignments prepare the students for the exam but they don’t count in the final grading Oral Exam Written Exam Multiple Choice Practical Exam

Practical Lab Exam

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.14 Practical Lab Exam Staff –Teacher, external examiner, 4-5 TAs Students –20 per group; 12 groups (200+ students) Time –30 minutes for the assignment, 60 minutes in total Assignment –A new for each group (though similar) –~10 programming tasks; breakpoint after #2 –Pass point: task #6 Evaluation –Process as well as product (i.e. the students behaviour also counts in the final grading –If the lecturer and external examiner estimate so, an appropriate and systematic programming process can compensate for minor flaws and errors in the product and make a student pass

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.15 Sample Exam Assignment Employee String name int salary int getSalary() String toString() 1.Create a simple class Employee with constructor, getSalary, and toString method… 2.Create a class EmployeeTest... 3.Create a new class Department... 4.Implement the methods addTrack, removeTrack, and getHOD 5.Create a class DepartmentTest… 6.Implement getDepartmentSalary 7.Add a method to DepartmentTest to test the getDepartmentSalary method 8.Implement bestPaidEmployee 9.Add a method to DepartmentTest to test the bestPaidEmployee method 10.Let the Employee class implement the Comparable interface… Department String departmentName void add(Employee e) void remove(Employee e) Employee getHOD() int getDepartmentSalary() Employee bestPaidEmployee () 1 hOD * employees

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.16 Use of BlueJ Develop Test Submit

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.17 “Conclusion” General IDE –edit, compile, run,... Exploring “the notional machine” –debugger Incremental program development –automatic testing Model-driven programming –UML support BlueJ Simplifies Matters

Michael E. CaspersenFirst BlueJ Day, 1 March 2006Practical Assessment.18 References Jens Bennedsen & Michael E. Caspersen,”Programming in Context – A Model-First Approach to CS1”, Proceedings of the thirty-fifth SIGCSE Technical Symposium on Computer Science Education, Norfolk, Virginia, USA, 2004, pp Jens Bennedsen & Michael E. Caspersen,”Teaching Object-Oriented Programming – Towards Teaching a Systematic Programming Process”, Proceedings of the Eighth Workshop on Pedagogies and Tools for the Teaching and Learning of Object-Oriented Concepts, 18th European Conference on Object-Oriented Programming, ECOOP 2004, Oslo, Norway, Jens Bennedsen & Michael E. Caspersen,”Revealing the Programming Process”, Proceedings of the thirty-sixth SIGCSE Technical Symposium on Computer Science Education, St. Louis, Missouri, USA, 2005, pp Jens Bennedsen & Michael E. Caspersen,”Assessing Process and Product – A Practical Lab Exam for an Introductory Programming Course”, Submitted for Frontiers in Education, FIE 2006, San Diego, USA, October Michael E. Caspersen, Teaching Object-Oriented Programming – Strategies, Principles, and Techniques, Progress Report, Department of Computer Science, University of Aarhus, 18 April (42 pages)