New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania

Slides:



Advertisements
Similar presentations
Introduction to Computer Programming in C
Advertisements

Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University.
CS/CMPE 535 – Machine Learning Outline. CS Machine Learning (Wi ) - Asim LUMS2 Description A course on the fundamentals of machine.
CMSC 132: Object-Oriented Programming II
CS 331 / CMPE 334 – Intro to AI CS 531 / CMPE AI Course Outline.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
1 CS 425 / CS 625 Software Engineering Fall 2007 Course Syllabus August 27, 2007.
BORIS MILAŠINOVIĆ FACULTY OF ELECTRICAL ENGINEERING AND COMPUTING UNIVERSITY OF ZAGREB, CROATIA Experiences after three years of teaching “Development.
1. Introduction Fundamental English Writing Skills Dr. Hsin-Hsin Cindy Lee.
1 Distributed Systems – Aims The main aim of the course is to introduce fundamental concepts and techniques for distributed systems, i.e., systems in which.
CSC 171 – FALL 2004 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
1 OO Java, Baile Herculane, Romania, 2005 OO Java Requirements Specification - Produce highly adaptable teaching materials - 1 st step: collect all useful.
Introduction to Programming Using C++ Dr. Mohamed Khafagy.
Fall 2013 Course Syllabus Instructor: Sergiu Dascalu Department of Computer Science and Engineering August 27,
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 1 1.
COMP 151: Computer Programming II Spring Course Topics Review of Java and basics of software engineering (3 classes. Chapters 1 and 2) Recursion.
Evaluation and analysis of the application of interactive digital resources in a blended-learning methodology for a computer networks subject F.A. Candelas,
Modern concepts of programming - Course presentation - Prof. Dr Dragan Jankovic.
Object-Oriented Programming Dr. Napoleon H. Reyes, Ph.D. Computer Science Institute of Information and Mathematical Sciences Rm QA, IIMS, Albany.
Object Oriented Programming CEN 221. Course Description Classes, objects, inheritance, polymorphism, graphical user interfaces, event handling, exception.
Computer Network Fundamentals CNT4007C
Introduction. » How the course works ˃Homework ˃Project ˃Exams ˃Grades » prerequisite ˃CSCI 6441: Mandatory prerequisite ˃Take the prereq or get permission.
Welcome to COE212: Engineering Programming Instructor: Wissam F. Fawaz Office 103, Bassil bldg. All week long: What is computer.
Department of Computer Science Comparative Study of Imperative Programming Languages Vergelijkende studie van imperatieve programmeertalen.
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2009 Dept. of Computer Science University of Texas at El Paso.
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
EECE 310 Software Engineering Lecture 0: Course Orientation.
SE-308 Software Engineering-II 7th Term SE University of Engineering & Technology Taxila, Pakistan Software Engineering Department.
CSc 2310 Principles of Programming (Java) Dr. Xiaolin Hu.
Java Teaching Workshop Y. Daniel Liang May 20, 2002 At NCC.
Course Introduction Software Engineering
An analysis of exam results in the Object-Oriented Programming course at „Politehnica” University of Timisoara Ioan Jurca.
SEE&REZagreb, On the course architecture and course homepage Mirjana Ivanovic Faculty of Science, Department of Mathematics and Informatics Trg.
Course ‘Data structures and algorithms – using Java’ Teaching materials and presentation experience Anastas Misev Institute of Informatics Faculty of Natural.
Welcome to CIS 2168 ! Software Design, Data Structures and Algorithms
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Bilgisayar Mühendisliği Bölümü CENG 102 – Computer Programming Melek OKTAY Syllabus Administrative Information.
CSC 171 – FALL 2001 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
Introduction. » How the course works ˃Homework ˃Project ˃Exams ˃Grades » prerequisite ˃CSCI 6441: Mandatory prerequisite ˃Take the prereq or get permission.
Advanced Database Course (ESED5204) Eng. Hanan Alyazji University of Palestine Software Engineering Department.
Welcome to CIS 2168 ! Data Structures and Algorithms
Fall 2011 Course Syllabus Instructor: Sergiu Dascalu Department of Computer Science and Engineering August 30,
AN INTRODUCTION TO JAVA LANGUAGE CT Credit Hours : (3 Lecture, 2 Lab)
Syllabus. Instructor Dr. Hanan Lutfiyya Middlesex College 418 Ext Office Hours: Wednesday 5-6; Thursdays 4-6 or by appointment.
1 CSC111H Introduction Dennis Burford
Implementation of Innovations at FSMN by Miroslav Ćirić & Predrag Krtolica.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
CSE202 Database Management Systems
CS101 Computer Programming I
CSC207 Fall 2016.
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
CSc 020: Programming Concepts and Methodology II
CSE305 Software Engineering
Artificial Intelligence (CS 461D)
Welcome to COE212: Engineering Programming
CS 1302 Programming Principles II
EECE 310 Software Engineering
Introduction to Programming Using C++
CSE 310 Human-Computer Interaction
Experiment with course materials concerning ‘Threads’
DT001A, Simulation of communication systems, 7.5 ECTS
An Introduction to Java Language
An Introduction to Java Language
CS 2530 Intermediate Computing Dr. Schafer
L L Line CSE 420 Computer Games Organizational Issues.
CSE 310 Human-Computer Interaction
Presentation transcript:

New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania

Contents Place of OOP course in the curricula Course topics Relation to other courses Experience from lectures Experience from lab assignments Experience from exams Conclusions

Place of OOP in the curricula Old curricula – Introduced in 2000 – Placed in the 4th semester, after introductory programming courses that used Pascal and C – 2 lecture hours/week, 2 lab hours/week – Runs in parallel with Data Structures and Algorithms – ‘Lighter’ form of examination (colloquium vs. exam) New curricula – Starts in autumn 2006 – Placed in the 3rd semester after introductory programming in C, in parallel with Data Structures and Algorithms – 2 lecture hours/week, 2 lab hours/week – ‘Continuous assessment’ as a new form of examination

Course topics Introduction Classes and objects Inheritance and polymorphism Interfaces Nested classes and interfaces Exceptions and assertions Packages Input/output Collection framework Concurrent programming Graphical user interfaces

Course topics - rationale No emphasis on non-object part of Java, i.e. control flow statements, operators, expressions etc. ‘Objects first’: classes and objects, principles of object- orientation presented from the beginning (‘change of paradigm’ from previous programming courses) OOP principles first, their implementation in Java second Packages presented as a higher level of program structuring GUI at the end, not to confuse principles Collection framework connects well with data structures Present evolution of Java Concurrent programming as a new programming paradigm

Relation to other courses Prerequisite (not really enforced!): knowledge of at least one imperative programming language, preferably C Prerequisite for: Software Engineering, Operating Systems, Computer Network Programming Synergetic relation to Data Structures and Algorithms Could also be useful for courses on Data Bases, Parallel Programming, Computer Graphics, Computer Security

Experience from lectures Attendance not compulsory  less than ¼ of students attend Previous years: students had to take notes Now: book + PPT slides based on the book Try to make comparisons with other object oriented languages, especially C++, known to some students from high school Students received well presentation of the new concepts introduced in Java 5 For collections and concurrent programming use the lectures prepared as part of our project (with explanations in Romanian) Difficult to engage students in discussions, they do not read in advance PPT slides offer possibility to discuss more program examples During breaks: some students come and ask how to solve lab assignments

Experience from lab assignments Attendance compulsory Tried different approaches in different years From the beginning: written material on the Web, now also in the form of a book Lab assignments follow (loosely) the course topics, do not use IDEs Students may develop programs at home and present them to the assistants during lab hours Assistants used to making ‘short lectures’ during lab hours Rules about late submission of assignments Rules about plagiarism and use of a program to find out ‘program duplicates’ Very important: every student must show that (s)he is capable of explaining the submitted programs Student groups too large due to financial constraints

Experience from exams ECTS was introduced several years ago A student cannot obtain a final grade(and thus the credits) without a grade for lab assignments Final grade is calculated usually as (2/3* exam +1/3* lab) A student has 3 chances of passing an exam Tried different approaches: either ‘midterm’ + ‘final’, or only final, with no difference in student motivation The exam consists of two equally weigthed parts: ‘theory’, and ‘problems’ A passing grade requires at least half of the points from each of the two parts Students can re-contract a course if they do not get a passing grade during an academic year Although OOP is taught in 2 nd year, there are students in the 5th year that still contract it

Conclusions Position in the curricula influences contents, position not always determined ‘logically’ Enforcing prerequisits can help in student motivation, not (yet) done for ‘political reasons’ No influence (yet) of availability of more teaching materials Case studies not used in lectures due to time constraints Better links with other courses have to be developed Java vs. C# ??