252-0284-00L Java and C# in depth

Carlo A. Furia, Marco Piccioni and Bertrand Meyer, Spring 2013



24.5.2013 — The end-of-semester exam will take place on May 27 from 13:15 to 15:00 in IFW A 36. Students can consult written notes or books, but using electronic devices (such as cell phones, laptops, or calculators) is not allowed.

20.4.2013 — Updated the project description with requirements for Part III. Added more information regarding the bonus points.

4.4.2013 — Posted the C# solution to assignment 2; Updated project description with requirements for Part II.

28.3.2013 — Added code analysis tools usage guidelines.

25.3.2013 — Added report template (LaTeX source).

18.3.2013 — Added updated project description.

14.3.2013 — Added project description.

11.3.2013 — Please send your project groups to the assistant(s) of your exercise session via email with subject "[JCD] Project group". If you have not found a group yet, send an email anyway: we'll assign you to a group. The deadline for submission is 13.03 (Wednesday).

20.2.2013 — Posted 2010 exam.

17.2.2013 — Distribution of students across exercise sessions depending on last name (see page bottom).

17.1.2013 — The initial version of this page is up.

Course description

Abstract: Java and C#, both similar and each with its own characteristics, are important languages with wide applications. This course goes into the depth of both languages, each considered for itself but also in comparison with the other.

Objective: This course provides students with an in-depth understanding of:


Grading: The assessment consists of a project (50%), and a written semester end exam (50%). During the exam paper documents are allowed (lecture notes, books, written documents...), while electronic devices are forbidden (cell phones, laptops, calculators...). The only way to get a grade is to submit the project and take the written exam. This applies regardless of your department or status. The performance assessment is only offered at the end after the course unit. Repetition is only possible after re-enrolling.

Helping and getting help

Talk to the assistants or to your peers by using PIAZZA.

Literature and resources


When and where

Day Time Location
Monday (Lecture) 13:15-15:00 IFW A 36

Lecture schedule

Date No. Title Lecturer Lecture Slides (pdf) Additional materials
18.2.2013 1 Introduction and O-O concepts MP Final version Course Intro
OO Intro
Java Intro
C Sharp Intro
Assignment 1
Exercise session 1 slides
25.2.2013 2 Frameworks overview and in-the-small language features MP Final version Java
C Sharp
Assignment 1 solution (Java)
Exercise session 2 slides
4.3.2013 3 Classes, objects, inheritance, and polymorphism CAF Final version Java
C Sharp
Assignment 1 solution (C#)
Assignment 2
Exercise session 3 slides
11.3.2013 4 Packages, assemblies, abstract classes and interfaces CAF Final version Java
C Sharp
Exercise session 4 slides
18.3.2013 5 Project presentation, GUIs MP Final version Java
C Sharp Project guidelines
Exercise session 5 slides["Job Interview"]
Assignment 2 solution (C#)
25.3.2013 6 Exceptions and genericity CAF Final version Java
C Sharp
Exercise session 6 slides
8.4.2013 7 Reflection MP Final version Java
C Sharp
Exercise session 7 slides
22.4.2013 8 Threads and concurrency CAF Final version Concurrency Intro Java
C Sharp
Exercise session 8 slides
29.4.2013 9 Persistence MP Final version Java
C Sharp
Exercise session 9 slides
6.5.2013 10 Web services and elements of functional programming CAF Final version Web Services
Java C Sharp Functional Programming
Exercise session 10 slides
13.5.2013 11 Java and C#: an objective personal assessment BM Final version Java and C Sharp
27.5.2013 12 Exam exam 2010

Temporary version = Temporary version Final version = Final version


Please read the project assignment.


When and where

Day Time Location
Monday 15:15-16:00 IFW A 36