N ORTH D AKOTA S TATE U NIVERSITY D EPARTMENT OF C OMPUTER S CIENCE © NDSU S OFTWARE T ESTING R ESEARCH G ROUP Integrating Testing into the CS1 Syllabus.

Slides:



Advertisements
Similar presentations
1 COMM 1213 H1 COMP 4923 X1 JavaScript 1 (Readings: Ch. 10, 11 Knuckles)
Advertisements

CS324e - Elements of Graphics and Visualization A Little Java A Little Python.
Introduction to Computer Programming in C
COMS S1007 Object-Oriented Programming and Design in Java July 8, 2008.
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
1-1 CMPU125 Topics in Computer Science Lecture 1 Jenny Walter Fall 2008.
Working with JavaScript. 2 Objectives Introducing JavaScript Inserting JavaScript into a Web Page File Writing Output to the Web Page Working with Variables.
The Turtle Laboratory Sequence LMICSE Workshop June , 2005 Alma College.
September 5, Concepts of Programming Languages Hongwei Xi Comp. Sci. Dept. Boston University.
Review CSC 171 FALL 2004 LECTURE 21. Topics Objects and Classes Fundamental Types Graphics and Applets Decisions Iteration Designing Classes Testing and.
CSC 111 Course orientation
ACSE th Conference The Iconic Programmer Stephen Chen.
N ORTH D AKOTA S TATE U NIVERSITY D EPARTMENT OF C OMPUTER S CIENCE © NDSU S OFTWARE T ESTING R ESEARCH G ROUP Enhancing the Web-Based Repository of Software.
COMS S1007 Object-Oriented Programming and Design in Java July 3, 2007.
Principles of Procedural Programming
Introduction - The Need for Data Structures Data structures organize data –This gives more efficient programs. More powerful computers encourage more complex.
1 CSC 221: Computer Programming I Fall 2004 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here?
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department.
Java ProgrammingtMyn1 Java Programming Timo Mynttinen Mikkeli University of Applied Sciences.
Bilgisayar Mühendisliği Bölümü CENG 102 – Computer Programming Melek OKTAY Syllabus Administrative Information.
Rossella Lau Lecture 1, DCO10105, Semester B, DCO10105 Object-Oriented Programming and Design  Lecture 1: Introduction What this course is about:
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
Introduction to Data Structures
CS 206 Introduction to Computer Science II 09 / 10 / 2009 Instructor: Michael Eckmann.
CMSC 2021 CMSC 202 Computer Science II for Majors Fall 2002 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
First BlueJ Day Houston, 2006 Unit Testing with BlueJ Bruce Quig Deakin University.
Python – May 11 Briefing Course overview Introduction to the language Lab.
The development of common partnership and interuniversitary scientific research according to the principle of sustainable development TRAINING COURSE Romania,
(1) Unit Testing and Test Planning CS2110: SW Development Methods These slides design for use in lab. They supplement more complete slides used in lecture.
Visual Basic Programming
CSC 221: Computer Programming I Fall 2001 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here? 
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
CS1101: Programming Methodology
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
Principled approach to teaching OO first David Gries Computer Science, Cornell 1.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
“Hello World” In Java Mehdi Einali Advanced Programming in Java 1.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
Written by: Dr. JJ Shepherd
Higher Computing Science 2016 Prelim Revision. Topics to revise Computational Constructs parameter passing (value and reference, formal and actual) sub-programs/routines,
DATA STRUCTURES (CS212D) Overview & Review Instructor Information 2  Instructor Information:  Dr. Radwa El Shawi  Room: 
A High Flying Overview CS139 – Fall 2006 How far we have come.
Notices Assn 2 is due tomorrow, 7pm. Moodle quiz next week – written in the lab as before. Everything up to and including today’s lecture: Big Topics are.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
A High Flying Overview CS139 – Fall 2010 How far we have come.
Review for Test2. Scope 8 problems, 60 points. 1 Bonus problem (5 points) Coverage: – Test 1 coverage – Exception Handling, Switch Statement – Array of.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Integrating Algorithms and Coding into the Mathematics Classroom
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
CSC 222: Computer Programming II
CSc 020: Programming Concepts and Methodology II
PRE-AP computer science 1
CSC 221: Computer Programming I Spring 2010
Interface Java 7 COMP T1.
CSC 221: Computer Programming I Fall 2005
C++, OBJECT ORIENTED PROGRAMMING
CSC 222: Object-Oriented Programming
Object-Orientated Programming
CS139 – Fall 2010 How far we have come
Coding Concepts (Basics)
Lecture 1 Java Programming
EET 2259 Unit 9 Arrays Read Bishop, Sections 6.1 to 6.3.
Day 11 The Last Week!.
Presentation transcript:

N ORTH D AKOTA S TATE U NIVERSITY D EPARTMENT OF C OMPUTER S CIENCE © NDSU S OFTWARE T ESTING R ESEARCH G ROUP Integrating Testing into the CS1 Syllabus at NDSU Richard Rummelt June 24, 2010 WISTPC ’ 10 Florida International University, Miami FL

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Outline  Overview of Approach  Addition to Course Objectives  Modifications to Projects 2

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Overview of Approach  Minimally Intrusive Approach  Looked at the breakdown of class work to inject testing into existing assignments, and projects  Focus on tentative lab schedule for this discussion  Said “NO” to full-fledged JUnit at the beginning of the CS1 course  NDSU CS1 Syllabus Lab Assignments and Labs  Seven or Eight Assignments (Homeworks)  Seven or Eight In-Lab Projects 3

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Course Objectives (Java Projects)  Computing and problem solving concepts  Object Oriented Programming techniques and terminology  Implementation of classes and methods  Variables and data types  Simple boolean logic  Control structures  Exception handling  Collection structures & iteration techniques  Sorting and searching basics  Inheritance and polymorphism  Standard style conventions  Program design concepts  Sufficient documentation  Testing and debugging concepts 4

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications  Simplicity of projects 1 and 2 did not lend themselves to much discussion of testing  Project 1 was basic “hello world” and project 2 expands on that to include variables and the scope of instance variables  Instead we focused on integrating testing during the third week of the semester in both the lectures and the lab work. 5

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications (cont’d)  Project 3  Basic elevator problem where they have to implement methods of an elevator and existing requirement was to run a pre-defined scenario and submit the output file  Extension of Project 3 with Test  Get students to think about their own scenarios of system usage and the expected outputs and write this up manually.  Introduces concepts of test inputs, and expected outputs (oracles) 6

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications (cont’d)  Project 4  String manipulation problem where they have to implement methods  Extension of Project 4 with Test  Get students to use BlueJ’s ‘object bench’ to test individual methods by predicting the return values and/or variable values given various input parameters and keep a simple log of this.  Continues and reinforces concepts of test inputs, and expected outputs (oracles) 7

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications (cont’d)  Project 5  Poker game with many new elements: multiple classes, conditional statements, passing objects, Object class methods (clone, equals, instanceOf) randomization, etc.  Extension of Project 5 with Test  This is where debugging is introduced. JUnit could also be introduced at this point by requiring a few clearly defined (almost, but not quite, given)  Provides the first exposure to a testing tool. 8

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications (cont’d)  Project 6  The game of NIM. New concepts are looping, validity checking, exception handling, pausing threads, more advanced math calculations, etc.  Extension of Project 6 with Test  The complexity of this project makes this a good point to require JUnit test cases. The numeric nature of this project makes it a good place to teach ‘boundary value analysis’.  This would be the point at which students would begin thinking of and writing their own test cases. 9

© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Points to Note  Initially we use some features of the existing IDE to introduce the students to practical testing without the complexities of a new testing tool  We use the Object Bench of BlueJ as a test driver  By the 6 th project (of 8) students are familiar with JUnit, and using it independently  For the remaining projects they continue using JUnit and refine their testing skills. 10