DD1337 HT17 (50654) Programming

Welcome

Course Outline

This is a basic course in computer science which starts with an introduction to how to use computing environment at KTH. Throughout the course we will use Java as the main programming language and we'll also use Git/Github to manage the coursework assignments.

In this course you'll learn the following:

  • Use command line, version control and typesetting software
  • Become confident with the Java programming language
  • Design and implement simple sequential programs to solve problems
  • Develop design, documentation and testing abilities
  • Hopefully, code with style!

For more information on how the course is managed, with tips and advice, please read the course guide that has been created by former students and teaching assistants.

Lectures

Every week, there is a lecture that will introduce the topic, provide the necessary background and as well as discussing the weekly assignments. Please note that the lectures linked beneath may change, so check back before the lecture.

Week 35 Environment ( Download Bash, Download Github, Download LaTeX)
Week 36 Download Course Information & Download Objects and Classes
Week 37 Download Understanding Class Definitions (I)
Week 38 Download Understanding Class Definitions (II)
Week 39 Download Object Interaction
Week 40 Download Grouping Objects (I)
Week 41 Download Grouping Objects (II)
Week 44 Download Documentation and Useful Class Libraries
Week 45 Download Designing Classes and Download Exceptions & Basic IO
Week 46 Download Well-behaved Objects


Click for the full schedule.

Labs

Every week there is a 2hr lab. These labs are reserved for you to come and work on the assignments and get support from teaching assistants.

Assignments

In the first three weeks, you must complete the basic introduction assignments. These are mandatory and you must have your work approved by a teaching assistant.

From the second week onwards, there will be weekly assignments that must be completed each week. You will be assigned to a group in the first week, and a teaching assistant will help guide you through the assignments. We have beginner, regular, plus and plus-plus groups to suit all levels of ability. We will make sure you find a group you are comfortable with. Finally, there are two övningar groups in the schedule - one early and the other later in the day. You only need to attend the one you are assigned to.

Goto Assignments page via navigation bar when you are ready to begin!

Course Literature

We have one recommended book if you are new to programming. Assignments build on the content of this book, however exercise texts are provided in the assignments.

Required Reading

objfj6ed-1.jpg

Objects First with Java (6th Ed.) Links to an external site.
By D. Barnes and M. Kölling

More resources (project source code, video lectures, etc) at: http://www.bluej.org/objects-first/ Links to an external site. Links to an external site.

n.b. 4th and 5th editions are still usable.

Optional Texts
cc.jpg

Code Complete (2nd Ed.) Links to an external site.

By S. McConnell

An excellent book that collects together a wealth of practical tips on how to make your code better.  

ej.jpg

Effective Java (2nd Ed.) Links to an external site.

By J. Bloch

Considered to be one of the best books on refining your skills in Java and progressing beyond the level of a basic understanding in Java.