Tom with puzzle

Software Construction
for Higher School of Economics in Moscow

Fall/Winter 2014-2015

[ Schedule | Assignments | Literature | Downloads | FAQ ]

08-Sep-2014 Consult the peach FAQ for browser support.
08-Sep-2014 Register for this course with peach:
  • Create an account, using initial-and-family-name as username (e.g. sshershakov for Sergey Shershakov).
  • Join the course: select the realm HSE, and join the cluster All

This course is taught as part of the HSE-TU/e partnership agreement (also see TU/e News).

Audience: Second-year HSE students at the School of Software Engineering in the Faculty of Business Informatics

Support staff at HSE:

Support staff at HSE:


Unless stated otherwise, lectures are on Mondays.
Times are given in Moscow time.
Eindhoven time is 2h earlier.
Note: DST ends on Sun 26 Oct 2014, both in Moscow and Eindhoven.
16:30 - 16:40Set up communication equipment
16:40 - 18:00Lecture
18:00 - 18:30Questions and consulting (optionally)

Color Legend
Tentative (content likely to change) No lecture Lecture completed Next upcoming lecture

LectureModuleDate Topic Practical Read
11Mon 08 Sep 2014 Introduction
Imperative core of Java
JDK, DrJava, book, CodingBat [DE] 2.(1, 2, 5); 3.(1, 3, 4, 5); 7.(1, 2.(1, 2))
21Mon 15 Sep 2014 Divide and conquer
Java methods, functional decomposition
File I/O [DE] 2.3.1; 4.(1-4); 7.2.3
31Mon 22 Sep 2014 Pre/post contracts
formal notation
Javadoc, refactoring [DE] 4.(5, 6)
[EB] Ch.7 (or [FF] Ch.1)
41Mon 29 Sep 2014 Unit testing JUnit in DrJava (and NetBeans), code coverage [DE] 4.7; 8.1
TDD handout Sections 1-4
51Mon 06 Oct 2014 Robustness, Exceptions Testing for exceptions [DE] 3.7; 8.3, 8.4.1
61Mon 13 Oct 2014 Data abstraction Packages [DE] 2.3.4; 5, 5.1, 5.2
71Mon 20 Oct 2014 Type hierarchy, Iteration abstraction [DE] 5.3, 5.5; 10.1.(4, 5), 10.2.1; browse 5.7
[EB] Ch.3, 7 (again) (or [FF] Ch.9, first part)
-2Mon 27 Oct 2014 No lecture (HSE exam period)
-2Mon 03 Nov 2014 No lecture (HSE closed)
81Mon 10 Nov 2014 Nested classes for iterators; generic data types. [DE] 5.6, 5.7; 6.1, 6.3, 6.5;
92Mon 17 Nov 2014 Simple GUI; Observer pattern, callbacks [DE] 6.6; 7.3; 9.1; 11.2; 13.4.1
[EB] Ch.9 (or [FF] Ch.2)
102Mon 24 Nov 2014 Composite design pattern. Packages, subpackages,; [DE] 10.3.1
[EB] Ch.4, Ch.5; Composite Pattern extra chapter (or [FF] Ch.9)
112Mon 01 Dec 2014 GUI graphics, global organization. Command Pattern Menus, menu items. Undo/redo [DE] 6.2; 10.3.1
[EB] Command Pattern extra chapter (or [FF] Ch.6)
122Mon 08 Dec 2014 Concurrency, threads for background work.
SOLID, Looking back
SwingWorker [DE] 12.(1, 2.(1-3))
-2Mon 15 Dec 2014 Final written exam.
-2Mon 22 Dec 2014 No lecture


Work for assignments is to be handed in via peach. Deadlines are each week at Thursday 23:00 (Moscow Time), unless otherwise stated.

Final Grade

The grading for this course is based on the following items:

The final grade is the weighted mean of the partial grades. Each (partial and final) grade is a whole number in the range from 0 through 10.

Some further details will be added...


Course books (compulsory reading):

David J. Eck.
Introduction to Programming Using Java.
Version 7.0, August 2014.
[See this book at the author's website (free PDF download)]
If you have difficulties downloading from the site above, then try this.
[Optional reading (this means that the rest is required reading): Ch.1; Ch.2.(4.(1, 2, 3, 5), 6.(1, 2, 3, 5)); Ch.3.(2, 6.2, 9); Ch.5.4; Ch.6.(2, 5); Ch.7.(2.(5, 6), 3.5, 4, 5.3); Ch.8.(2, 4.2, 5); Ch.9.(2, 3, 4, 5); Ch.10.(1.(1, 2, 3), 2.4, 3.(2, 3), 4, 5); Ch.11.(1, 3, 4, 5); Ch.12.(2.4, 3, 4, 5); Ch.13]
Eddie Burris.
Programming in the Large with Design Patterns.
Pretty Print Press, 2012.
Book's web site
PDF for students in this course (RESTRICTED ACCESS)
  • Ch.1 (Introduction)
  • Ch.3 (Iterator)
  • Ch.4 (Adapter)
  • Ch.5 (Decorator)
  • Ch.7 (Strategy)
  • Ch.9 (Observer)
  • Extra chapter on Command Pattern (see Downloads)
  • Extra chapter on Composite Pattern (see Downloads)

Further reading (optional):

Eric Freeman & Elisabeth Freeman.
Head First Design Patterns.
O'Reilly Media, 2004.
[See this book at O'Reilly (also available as DRM-free ebook in various formats; also can download example code here)]
[See this book at Google Books]
Especially: Ch.1 (Strategy), 2 (Observer), 3 (Decorator), 4 (Factory), 6 (Command), 7 (Adapter, Facade), 9 (Iterator, Composite), 12 (Compound)
Joshua Bloch.
Effective Java (Second Edition).
Addison-Wesley, 2008.
Barbara Liskov and John Guttag.
Program Development in Java.
Addison-Wesley, 2001.
[See this book at Google Books]

James Gossling, Bill Joy, Guy Steele, Gilad Brancha.
The Java Language Specification (Java SE 8 Edition).
Oracle, 2014.
[See this book at Oracle]
This is the official definition of Java programming language, for language lawyers.

Sun/Oracle. Java SE 7 Documentation.
View at Oracle
Download page

Sun/Oracle. The Java Tutorials
View at Oracle

Alan Kaminsky. Building Parallel Programs: SMPs, Clusters, and Java.
Cengage Learning, 2009.
[See this book at Google Books]
Book review: There Is Parallel Life for Java Scientific Programmers!

Ronald Mak. Java number cruncher: the Java programmer's guide to numerical computing.
[See this book at Google Books]
Author's book page
Book review: Java Meets Numerical Analysis

©2011-2014, Tom Verhoeff (TUE)
Feedback about this page is welcome