General
News
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:
- The language design philosophy behind Java.
- The language design philosophy behind C#.
- The key language mechanisms of both languages, and how to use them.
- The main properties differentiating the languages.
Content:
- Introduction, object-oriented concepts.
- Frameworks overview and in-the-small language features.
- Classes, objects, inheritance, polymorphism.
- Packages/assemblies, abstract classes and interfaces.
- Exceptions and genericity.
- Reflection.
- Threads and Concurrency.
- Persistence.
- Web Services and Functional Programming.
- Design choices comparison.
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
- Java
- Cay S.Horstmann, Gary Cornell, Core Java 9th Edition, Prentice Hall PTR 2012, 2 volumes
- Java API specifications
- Joshua Bloch, Effective Java Second Edition (The Java Series), Addison Wesley 2008
- C#
- Jeffrey Richter, CLR via C# (Microsoft, Developer Reference), 4th Edition 2012.
- C# programming guide
- Jeffrey Richter, CLR via C# (Microsoft, Developer Reference), 4th Edition 2012.
- Comparison between Java and C#
- Dominik Gruntz, C# and Java: The Smart Distinctions, Journal of Object Technology 1(5):163--176, 2002. Even if it's not updated with the latest features of Java and C#, it's still a valuable comparison
- http://www.25hoursaday.com/CsharpVsJava.html
Lecture
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 |
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 |
Java C Sharp |
Assignment 1 solution (Java) Exercise session 2 slides |
|
4.3.2013 | 3 | Classes, objects, inheritance, and polymorphism | CAF |
Java C Sharp |
Assignment 1 solution (C#) Assignment 2 Exercise session 3 slides |
|
11.3.2013 | 4 | Packages, assemblies, abstract classes and interfaces | CAF |
Java C Sharp |
Exercise session 4 slides | |
18.3.2013 | 5 | Project presentation, GUIs | MP |
Java C Sharp Project guidelines |
Exercise session 5 slides["Job Interview"] Assignment 2 solution (C#) |
|
25.3.2013 | 6 | Exceptions and genericity | CAF |
Java C Sharp |
Exercise session 6 slides | |
8.4.2013 | 7 | Reflection | MP |
Java C Sharp |
Exercise session 7 slides | |
22.4.2013 | 8 | Threads and concurrency | CAF |
Concurrency Intro
Java C Sharp |
Exercise session 8 slides | |
29.4.2013 | 9 | Persistence | MP |
Java C Sharp |
Exercise session 9 slides | |
6.5.2013 | 10 | Web services and elements of functional programming | CAF |
Web Services Java C Sharp Functional Programming |
Exercise session 10 slides | |
13.5.2013 | 11 | Java and C#: an objective personal assessment | BM |
Java and C Sharp |
||
27.5.2013 | 12 | Exam | exam 2010 |
= Temporary version = Final version
Project
Please read the project assignment.
Exercises
When and where
Day | Time | Location |
---|---|---|
Monday | 15:15-16:00 | IFW A 36 |