Assignments in 1st semester course „OOP with Java“ as small projects

Slides:



Advertisements
Similar presentations
Placement Workshop Y2, Sem 2 Professional Practice Module (PPM)
Advertisements

New results from examinations based on multiple-choice questions (MCQs) Klaus Bothe, Michael Ritzschke 14th Workshop “Software Engineering Education and.
Zhang Hongyi CSCI2100B Data Structures Tutorial 2
Introduction to Computer Programming I CSE 113
Experience in using eLearning technologies in the teaching process Dragan Janković Faculty of Electronic Engineering, University of Niš, Serbia.
CIS101 Introduction to Computing Week 04. Agenda Your questions Update on online quizzes Set up WS-FTP Excel Project Three This week online Next week’s.
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Templates. January 6, Step 1: Activity Template An activity is a task that requires a single submission. Multiple activities may be combined into.
Compute This! Michigan Science Olympiad Anthony Kendall Cheryl Kendall
10th Workshop "Software Engineering Education and Reverse Engineering" Ivanjica, Serbia, 5-12 September 2010 First experience in teaching HCI course Dusanka.
Principles of Procedural Programming
Prof. R. Willingale Department of Physics and Astronomy 2nd Year C+R 2 nd Year C and R Workshop Part of module PA2930 – 2.5 credits Venue: Computer terminal.
Math TLC Tutor Lab Overview: All sections of Math 010 and 110 are taught in a single, dedicated, technology-enhanced classroom that is adjacent to a.
28/08/2015SJF L31 F21SF Software Engineering Foundations ASSUMPTIONS AND TESTING Monica Farrow EM G30 Material available on Vision.
Fall CIS 764 Database Systems Engineering L3: Two Assignments Relating to J2EE.
CS110/CS119 Introduction to Computing (Java)
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
Lecture 61 CS110 Lecture 6 Thursday, February 12, 2004 Announcements –hw2 due today Agenda –questions –testing –modeling text files –declarations (classes,
/425 Declarative Methods - J. Eisner /425 Declarative Methods Prof. Jason Eisner MWF 3-4pm (sometimes 3-4:15)
Wiley eGrade. What is eGrade? Web-based software that enables instructors to automate the process of assigning and grading homework and quiz assignments.
An introduction for Data Reporters. College Credit Plus Replaces PSEO Replaces dual enrollment.
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department.
Course ‘Data structures and algorithms – using Java’ Teaching materials and presentation experience Anastas Misev Institute of Informatics Faculty of Natural.
AtoCC Compiler Construction Workshop Michael Hielscher Aalborg, Creating an Interpreter and Compiler for a music language ML.
CSCE 1040 Computer Science 2 First Day. Course Dr. Ryan Garlick Office: Research Park F201 B –Inside the Computer Science department.
Electronic Engineering Department Final Year Projects September 2008.
© 2001 Business & Information Systems 2/e1 Chapter 8 Personal Productivity and Problem Solving.
CSE 219 Computer Science III Program Design Principles.
Practice and Evaluation. Practice Develop a java class called: SumCalculator.java which computes a sum of all integer from 1 to 100 and displays the result.
Introduction to MATLAB 7 Engineering 161 Engineering Practices II Joe Mixsell Spring 2010.
Welcome to Physics 2015! ( General Physics Lab 1 - Fall 2012)
Designing classes How to write classes in a way that they are easily understandable, maintainable and reusable 5.0.
Contact: Phil Benjamin: Web site for this presentation: eden.rutgers.edu/~pmben Office hour: Wed:
1 Overview of Class #7 Teaching Segment #3: Warm-up problem Introduction to base-ten blocks Analysis of student thinking using samples of students’ written.
Ministry of Higher Education Sohar College of Applied Sciences IT department Comp Introduction to Programming Using C++ Fall, 2011.
Topic 1 Object Oriented Programming. 1-2 Objectives To review the concepts and terminology of object-oriented programming To discuss some features of.
INTRODUCTION TO PROGRAMMING ISMAIL ABUMUHFOUZ | CS 146.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Introduction to programming Carl Smith National Certificate Year 2 – Unit 4.
CSCE 1030 Computer Science 1 First Day. Course Dr. Ryan Garlick Office: Research Park F201 B –Inside the Computer Science department.
GdI/ICS 1 WS 2009/2010 Telecooperation/RBG Prof. Dr. Max Mühlhäuser Dr. Guido Rößling Dr. Dirk Schnelle-Walka, Stefan Radomski.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
The influence of the new administrative law upon teaching OOP course Ana Madevska Bogdanova Nevena Ackovska University “Sts. Cyril and Methodius”, Skopje,
Summary CGS 3460, Lecture 43 April 26, 2006 Hen-I Yang.
Announcements You will receive your scores back for Assignment 2 this week. You will have an opportunity to correct your code and resubmit it for partial.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
CSC 205 Programming II Lecture 1 PSP. The Importance of High-Quality Work Three aspects to doing an effective software engineering job producing quality.
Computer Science I ISMAIL ABUMUHFOUZ | CS 180. CS 180 Description BRIEF SUMMARY: This course covers a study of the algorithmic approach and the object.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
Academic Seminar – Week 6 Lesson Plans & Formative Assessment Graphs.
CIS 115 All Exercises Devry University (Devry) FOR MORE CLASSES VISIT CIS 115 All Exercises Devry University.
Course Information EECS 2031 Fall Instructor Uyen Trang (U.T.) Nguyen Office: LAS Office hours: 
Computer aided teaching of statistics: advantages and disadvantages
CSc 1302 Principles of Computer Science II
Required Data Files Review
It’s called “wifi”! Source: Somewhere on the Internet!
About the Presentations
Week 1 Gates Introduction to Information Technology cosc 010 Week 1 Gates
Problem Solving (design of programs) CS140: Introduction to Computing 1 8/26/13.
Algorithms and Problem Solving
CSCI N317 Computation for Scientific Applications Unit 1 – 1 MATLAB
Presentation and project
Presentation and project
Welcome.
Introduction to Computer Science and Object-Oriented Programming
Presentation transcript:

Assignments in 1st semester course „OOP with Java“ as small projects Michael Ritzschke Humboldt-Universität zu Berlin Department of Computer Science Software Engineering Reihenfolge der DA Tabelle nicht anfassen: FETT Agenda nicht animiert? Seitennummmern auch bei weißem blatt? Gesamtstatistik S. 30 10th Workshop “Software Engineering Education and Reverse Engineering” Ivanjica, Serbia , 5 September – 12 September 2010

Ivanjica, Serbia , 5 September – 12 September 2010 Contents Programming lab “OOP with Java” (Overview) Assignment details: Structure, Requirements Example: Sudoku checker Shell scripts allows partially automatical evaluation Statistic WS2009/2010 and summary Ivanjica, Serbia , 5 September – 12 September 2010

Programming lab “OOP with Java” in WS 0910 (Overview) Bachelor students (94 registrations) 12 assignments, handling time 2 weeks Submission of the solutions: special management system “goya”, upload packed file Success: 50 % of the reachable points

Programming lab website

Java assignments (overview WS0910) Decide the weekday for any date (formula from Zeller) Prime factorization Big numbers in arrays, different mathematical operations How many combinations of coints can realize a given value Well known game Model of a supermarket Test correctness of two Sudoku kinds: with diagonal line or without Solves 9 x 9 Sudokus, if possible

Other interesting little java projects Management for a calendar of birthdays The game of Life Computation of special primes, e.g. weakly primes, gaps of primes, twin primes ... Some calculations for credits, e.g. interest rates, duration ... Peg Solitaire Management of foods in a fridge

Ivanjica, Serbia , 5 September – 12 September 2010 Contents Programming lab “OOP with Java” (Overview) Assignment details: Structure, Requirements Example: Sudoku checker Shell scripts allows partially automatical evaluation Statistic WS2009/2010 and summary Ivanjica, Serbia , 5 September – 12 September 2010

The assignment structure Summary Job description

The basically requirements (relevant to all solutions)

Different kinds of assignments Only the expected result is given Additionally students get a frame with the declarations of classes and methods Students get a description like javadoc result

Ivanjica, Serbia , 5 September – 12 September 2010 Contents Programming lab “OOP with Java” (Overview) Assignment details: Structure, Requirements Example: Sudoku checker Shell scripts allows partially automatical evaluation Statistic WS2009/2010 and summary Ivanjica, Serbia , 5 September – 12 September 2010

Example: Sudoku checker Job description: Frames of 3 classes, input, expected output TODO: Constructors (data structure); functions read, write, check

Ideal Solution: Internal data structure, super comments

Solution: Function read()

Solution: Function write()

Function check(): Calls checkLines and other parts ... Checks all lines, rows, 3x3 blocks and diagonal lines

The (hopefully successful) test of the written program with some given different input files

Next assignment: Sudoku solver Possible solution algorithm: Backtracking Variable fields and constant fields Fill step by step all variable fields by increasing numbers and check after increasing if the sudoku is still correct If correct, do the same for the next field, if not, clear the field and go back to the last correct field and continue with the last correct field

Backtracking needs time … easy and difficult Sudoku

Results of a competition

Ivanjica, Serbia , 5 September – 12 September 2010 Contents Programming lab “OOP with Java” (Overview) Details: Structure, Requirements Example: Sudoku checker Shell scripts allows partially automatical evaluation Statistic WS2009/2010 and summary Ivanjica, Serbia , 5 September – 12 September 2010

Shell script revise … Reads the file with all uploaded programs Generates directories with the extracted solutions Copies the testing program and the expected pattern solution Compiles the files and starts the testing program

Shell script comparisionResults … Compares the produced result Exxxx with the expected exemplary output Uses the command diff (or a tool, for instance kDiff3, look http://kdiff3.sourceforge.net/)

Shell script plagiarismSearch … compares all java sources - also with the command diff

5 examples of student solutions (assignment “Quader.java”) Number contents 05842 filename incorrect 18456 o.k. 28506 1 calculation incorrect 30785 1 method without body 40881 o.k., but plagiarism Download from goya: result_assignments5.zip

Revise: Build the resultFiles Exxxx…

ComparisionResults: … for i in `< numbers` do diff results/E$i ../inputs/$assignment/solution.out done without result all 95 lines are different line with difference (surface too small)

PlagiarismSearch: $ diff -i -e -b -w $file1 $file2 |wc -l no difference: potentially plagiat

Summary evaluation Revise: Prepares excellent the solutions for evaluation; furthermore it shows invalid classes and methods ComparisionResults: Helps to find methods with different results PlagiarismSearch: Gives an indication for plagiarism Finally the inspector has always to look into the source files for evaluation the layout and the annotation of classes and methods Students get: points and email with critical comments

Ivanjica, Serbia , 5 September – 12 September 2010 Contents Programming lab “OOP with Java” (Overview) Details: Structure, Requirements Example: Sudoku checker Shell scripts allows partially automatical evaluation Statistic WS2009/2010 and summary Ivanjica, Serbia , 5 September – 12 September 2010

Statistics WS0910 48 students passed the programming lab with success assignment 1 2 3 4 5 6 7 8 9 10 11 solutions(goya) 94 83 78 63 58 51 52 35 40 22 points 75-100% 77 48 69 37 38 31 30 27 17 points 50-75% 13 points 25-50% points 0-25% 12 average 9,3 16,2 9,5 7,5 7,1 12,4 14,9 15,5 15,7 19,1 20,0 max. points 20 average % 93,0 80,8 94,8 75,0 70,8 61,8 74,7 77,3 78,7 63,6 66,7 non-valued   48 students passed the programming lab with success

Summary Some students have experience in Java programming In addition to the lessons students get many executable program examples So the programming lab contains little projects with interesting backgrounds (games) There are mentored times in the computer rooms to clear up questions and to understand the solutions (students don’t get sample solutions) Comments from students: Programming lab contains motivating homework tasks

Summary Thank you for your attention!