IPPO 2020-2021: Schedule Schedule IPPO 2020-2021 IPPO Logo IPPO 2020 Home Schedule Resources i Piazza i Learn Assignments Getting Started Getting Started Form Assignment 1 Assignment 2 Feedback B x login with EASE This schedule shows the recommended activites for each week of the course. IPPO 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 this symbol are essential: R Week 0 Make sure that you are prepared for the start of the course next week: Browse this schedule and the Course Information so that you understand what is involved in the course and are sure that it is suitable for you. Please do Contact Us if there is anything that you would like to discuss. You should find it helpful to watch this Video where professional programmer Jim Paterson discusses some of the topics from the IPPO course with Paul Anderson. You are very strongly recommended to get a copy of the Course Textbook. This book covers the fundamental principles of the course much more clearly than any other materials. Read the document explaining the Development Tools which will be used on the course. Most students will want to install these on their own machines. 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 This week, you should aim to complete the Getting Started tasks. These will ensure that you can use the necessary software and that you understand the support available to you. Work through the tasks in the Getting Started document and complete the Online Form to confirm that you have done this. Consider attending the Classroom Session at 11.00am on Wednesday 23rd where we will give a brief overview of the course and answer any questions. Week 2 This week, you should aim to get a good basic understanding of the fundamentals of object-oriented programming and the Java language. If you have not yet completed the Getting Started form, you must do this by 4.00pm on Friday. This is a requirement for the first assignment and it will not be possible to obtain a good mark on the assignment without completing this (on time). R 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. We recommend working through some of the examples using the BlueJ software. If you would like to practice some basic exercises with the development tools on some non-assessed material, you should look at the Getting Older exercise. Consider attending the Classroom Session at 11.00am on Wednesday 30th where we will talk about what makes good software and answer any questions which have arisen from the week's tasks. Especially if you don't have much previous programming experience, you are likely to find this challenging. Please do make use of Piazza where tutors will be happy to discuss this with you. Week 3 This week, you should aim to further develop your understanding of the Java language and take a preliminary look at the first assignment - however, this will make use of the material to be studied over the next few weeks, so be careful not to rush into the assignment 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 Assignment Sheet Study chapters 3 and 4 of the textbook (collaborating objects, collections). Again, we recommend working through some of the examples using the BlueJ software. Consider attending the Classroom Session at 3.00pm on Wednesday 7th where we will talk about the first assignment and any other issues which have arisen. 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). Remember to use Piazza if you have any questions or problems. Week 4 This week you should aim to start work on the first assignment and continue to develop your understanding of the relevant Java features. Start work on the assignment. Check some initial code for the assignment into your git repository by 4.00pm on Friday. R Study the chapters 6 and 9 of the textbook (libraries, testing). Consider attending the Classroom Session at 3.00pm on Tuesday 13th where we will talk about debugging and follow up on any questions which have arisen. In a real software development situation, regular engagement with your fellow developers and timely updates to the git repository are important. This is why we are asking you to check some code into your git reposity regularly as an assessed requirement of the assignment. 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 5 This week you should be focussing on completing the first assignment which must be submitted by 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. Study chapter 7 of the textbook (arrays). Check the final version of your assignment into your git repository by 4.00pm on Friday. R Consider attending the Classroom Session at 3.00pm on Wednesday 21st where we will talk about any issues which have arisen. Week 6 This week you should concentrate on making sure that you have a very good understanding of the of the fundamentals of object-oriented programming - these will be essential for the second assignment. You may also be required to discuss and demonstrate your first assignment with a tutor. We will ask a small number of students to do this, especially in cases where we are unable to run the code, or where we have other questions about the submission. Study chapters 10, 11 and 12 of the textbook (inheritance, classes). Consider attempting some of the associated exercises. Consider attending the Classroom Session at 3.00pm on Tuesday 27th where we will provide some feedback on the first assignment. Three book chapters are recommended this week - chapter 10 is particularly 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 must understand the main concepts (look at the "concept summary" at the end of each chapter). Week 7 The focus this week is on design, rather than coding. It is really important that you study this material well - if you are able to create a good design for the second assignment, the coding will be straightforward - a bad design will make the coding very difficult. The Second Assignment will be released this week, and you should be thinking about the design - but you should not work on the implementation of the assignment yet - you will later have an opportunity to see alternative approaches, and it is very likely that you will want to revise your initial design before starting the implementation. Study chapters 8 and 15 of the textbook (designing classes and applications). Consider attempting some of the associated book exercises. It is recommended that you attend the Classroom Session at 3.00pm on Wednesday 4th where we will talk about design issues for the second assignment. 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 8 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 JavaFx, instead of the material in chapter 13 of the textbook (although you may want to skim this). The Resource Page includes some references to JavaFx materials and some example code which you can run using the development tools. You should also be completing and submitting a preliminary design for the second assignment. Study the JavaFx examples. Check your design document into your git repository by 4.00pm on Friday. R Consider attending the Classroom Session at 3.00pm on Tuesday 10th where we will talk about graphical users interfaces. Week 9 In the online discussion this week, we will be talking about the design of the second assignment and proposing some solutions. You will probably want to consider changing your own design in the light of these discussions since this is likely to make the implementation easier as well as produce a better application (and hence mark). This week also provides 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). You are strongly recommended to attend the Classroom Session at 3.00pm on Wednesday 18th where we will present some solutions to the design of the second assignment. You will probably want to use elements of this design in your own submission. Finalise your assignment design. Week 10 This week is available to work on your assignment. Work on the second assignment. Check some code for your assignment into your git repository by 4.00pm on Friday. R There will be no classroom session this week (Paul will be away). Week 11 This week is available to work on your assignment. Work on the second assignment. Consider attending the Classroom Session at 3.00pm on Wednesday 2nd where we will discuss any issues with the second assignment (note: this has moved from Tuesday 1st). Week 12 The course has finished this week. However ... Check the final version of your assignment into your git repository by 5.00 AM Monday (UK Time). R Remember to complete the Online Form. You may be required to discuss and demonstrate your second assignment with a tutor. We will ask a small number of students to do this, especially in cases where we are unable to run the code, or where we have other questions about the submission.