This schedule shows the recommended activites for each week of the course. IJP students have a wide variety of previous experience and you may want to spend different amounts of time on different topics; the schedule is flexible enough to support this, but you should not to assume that it will be easy to catch up if you slip significantly behind.

Tasks marked with a (*) are compulsory and must be completed at the specified times.


Week 0

Make sure that you are prepared for the start of the course next week:

  • Browse the course website so that you understand what is involved in the course and are sure that it is suitable for for you. You should read at least the course Home page, this Schedule, and the information in the Course Info section. If you have significant previous programming experience, then IJP may not be a good choice for you, and you should talk to your personal tutor about an exemption from the programming component of the MSc course.
  • Get a copy of the course textbook. You will need this for next week's exercises.
  • Make sure that you are registered for the IJP Forum (Piazza) using your University email address, and that you are able to access it - this is the main source of help, information and announcements for IJP and you should check this regularly. If you cannot access the forum, please email ijp@ed.ac.uk with the subject "Forum Account".
  • If you want to use your own computer for the exercises, then make sure that you have an appropriate version of the necessary software installed. If you intend to just use "DICE" (Informatics) machines, then the software is installed by default. Unfortunately, the software is not available on the machines elsewhere in the University (for example, in the library).

Especially if you don't have a lot of previous programming experience, you may want to look at next week's activities in advance.

Week 1

There are no scheduled lectures, or lab sessions this week. This is to allow time for all students to confirm their course choices. However, you will be expected to understand the material from the first two chapters of the book, and be able to run the examples using the BlueJ environment, before the lecture next week.

  • Study the first two chapter(s) of the textbook and make sure that you understand the basic concepts, including classes, objects, methods, parameters, state, etc.
  • Make sure that you can run the BlueJ software, either on your own machine, or on a DICE (lab) machine.
  • Please make sure that you are formally registered for the course (usually by your PT). If you are not registered, we may not be able to allocate you a lab session, and you may not have an account on the DICE machines (if you are not an Informatics student).

Especially if you don't have much previous programming experience, you may find this challenging. Please do make use of the online Forum (Piazza) where tutors will be happy to answer your questions.

Week 2

The first lecture will be held at 3.10 on Tuesday 25th, in G.01 in the Lister Building (This is in Roxburgh Place). This will provide an introduction to the course, and some advice for the first assignment.

The first assignment will be released this week. This will make use of the material to be studied over the next few weeks, so be careful not to rush into this without understanding the relevant book chapters - it is particularly important that you understand how to use the classes and objects correctly.

  • Download and browse the materials for the first assignment.
  • Attend the lecture.
  • Make sure that you have registered for a lab session. (*)
  • Study chapters 3 and 4 of the textbook (collaborating objects, collections).

If you are finding the material easy, you may like to look at chapter 5 (lambdas) as well. Otherwise, you can omit this chapter (the material is optional).

You should contact the ITO if you have not received email explaining how to register for a lab session.

Remember to use the online forum if you have any questions or problems.

Week 3

This week, you should be starting to work on the first assignment and reading the relevant background materials.

Lab sessions also start this week where demonstrators will be on hand to help and answer questions about the book exercises, or the assignment. You should be able to change or register for a lab session here.

  • Study the chapters 6 and 9 of the textbook (libraries, testing).
  • Start work on the assignment.
  • Attend your scheduled lab session

Notice that the recommended reading is out of sequence. Chapter 9 is recommended here because it is relevant to the assignment. Chapters 7 and 8 can be deferred until later.

Week 4

This week you should be focussing on completing the first assignment which must be submitted on Friday. One book chapter is recommended, but this is not essential at this stage and can be deferred until later if you are short of time.

It is strongly recommended that you attempt a submission well before the deadline to confirm that you are able to use the system. You may submit multiple copies and only the final copy will be assessed - so you do not need to wait until the assignment is complete before attempting a submission.

Note that the online submission system will close automatically at 4.00pm on Friday. Demonstrators will be giving feedback and discussing assignment solutions in the lab sessions next week - this means that no extensions will be available for this assignment.

Week 5

If you have not already done so, you must show your running assignment code to a demonstrator during this week's lab session. The demonstrator will confirm that your code runs as described in your assignment submission, and provide you with some feedback on your solution.

  • Study chapters 10, 11 and 12 of the textbook (inheritance, classes).
  • Attend your registered lab session, and be prepared to briefly explain and demonstrate your solution for the first assignment to a demonstrator. (*)

Three book chapters are recommended this week - chapter 10 is important, and you should make sure that you understand this material well. If you are finding the material difficult, you do not need to study the other two chapters in so much depth, but you should understand the main concepts (look at the "concept summary" at the end of each chapter).

Please attend this week's lab session on time, otherwise it may be difficult to schedule all of the demonstrations.

Week 6

This week, you should be studying material required to help you design the solution to the second assignment which will be released this week. You should not work on the implementation of the assignment yet - you will later have an opportunity to see alternative designs, and it is likely that you will want to revise your initial design before starting the implementation.

The second lecture will be held at 3.10 on Tuesday 23rd, in G.01 in the Lister Building (This is in Roxburgh Place). This will provide some feedback on your solutions to the first assignment, and advice for the second assignment.

  • Study chapters 8 and 15 of the textbook (designing classes and applications).
  • Attend the lecture.
  • Attend your lab session.

Notice that the book chapters are out of sequence. These chapters are particularly relevant to the lecture, and the design of the second assignment.

Week 7

This week, you should be studying material required to help you build a graphical interface for the second assignment. Notice that you must use JavaFx for the GUI in your assignment. This means that you should study the JavaFx videos and examples on the course website, instead of the material in chapter 13 of the textbook (although you may want to skim this).

You should also be completing and submitting a preliminary design for the second assignment.

Note that the online submission system will close automatically at 4.00pm on Friday. Next week, you will have an opportunity to look at other solutions to the design problem - this means that no extensions will be available for this assignment.

Week 8

This week, you will have an opportunity to look at other students' solutions to the design of the second assignment. Having seen these, you may want to revise your own design before starting work on the implementation.

This is also an opportunity to complete the remaining chapters of the textbook, and consolidate previous material before starting on the implementation of the second assignment.

  • Study chapters 14 and 16 of the textbook (error handling, case study).
  • Attend your lab session.

Week 9

This week is available to work on your assignment.

  • Work on the second assignment.
  • Attend your lab session.

Week 10

This week is available to work on your assignment.

It is strongly recommended that you attempt a submission well before the deadline to confirm that you are able to use the system. You may submit multiple copies and only the final copy will be assessed - so you do not need to wait until the assignment is complete before attempting a submission.

Note that the online submission system will close automatically at 4.00pm on Friday. Assignment solutions will be demonstrated in the lab sessions next week - this means that no extensions will be available for this assignment.

Week 11

The course finishes this week, but you must:

  • Attend your registered lab session, and be prepared to briefly explain and demonstrate your solution for the second assignment to a demonstrator and a small group of other students. (*)

The assignment demonstration will be used to confirm your understanding, and the functionality of your program, as part of the assessment. But it will also be an opportunity for you to discuss your work with other students and to see other people's different approaches to the same problem.

The code for the second assignment will be significantly more varied than for the first assignment. In some cases, the submissions will be complex and may be difficult to follow, so you should find the code comparisons more instructive, and the resulting feedback more useful than the previous assignment.