INF1B: Informatics 1 - Object Oriented Programming

Welcome to Informatics 1 - Object Oriented Programming

What is this course about?

This is a course that focusses on developing software engineering skills in Object-Oriented Programming: specifically Java.  That means that whilst learning how to code in Java is a key part of the course, it's not the only focus.  We also focus a lot on how you design and communicate about solutions to coding problems.  Why?  Because this is a really important part of what you need to do to be a good coder.  Professional coding is very rarely about hacking code in isolation — it's about being able to plan your approach based on sound coding principles, work well with your team, properly document what you are doing and explain your approach to coders and non-coders alike.

Students on the course are a mix of those with some or a lot of coding experience, sometimes in Java, and those with no coding experience beyond Inf1A.  We start at the beginning but the learning curve can be quite steep if you haven't done a lot of coding.  Make sure you keep up with the course and practice as much as you can.  If you already have experience the course will be easier for you but good coding is not sufficient to do well - you also need to be developing skills in the other areas discussed above.

Should I take this course?

If you are doing an Informatics degree, this is a required course, and all aspects of the course (not just the coding!) are developing important skills you will build on throughout your degree.  If you are an Engineering or Maths students, you may choose to study this course and we'd love to have you — but bear in mind the above description.  This is not just about coding, and you can't necessarily coast through the course just because you've done Java before.  If you are in another school, it would be great to have you but numbers on the course are limited because it is already very big.  Talk to your student advisor or cohort leader.

Learning Outcomes

On successful completion of this course, you should be able to: 

  1. Implement components of an object-oriented program, given a specification, and demonstrate the use of an object-oriented approach to enable group development of larger applications.
  2. Justify implementation decisions, compare implementations, and comment on their strengths and weaknesses.
  3. Demonstrate an awareness of good software engineering practice, including the use of version control, testing and readable code.
  4. Locate and use additional sources of information (to include discussion with peers where appropriate) to facilitate independent problem-solving, and reflect on ones own and others contribution to a collaborative learning environment
  5. Plan and organize time, working consistently to a goal.
Course Outline

An introduction to the concepts of programming and software engineering using an object oriented programming language.

Assessment

This course is 100% coursework, but with the final assignment released during the exam period to space out the the workload.  There are three assignments (worth 20%, 20% and 40%) and ongoing weekly quizzes (worth 20%).  See the Learn page for further details and deadlines.  Deadlines are also available from the schedule.  

 

Required time commitments

You should be allocating your time more or less as follows:

  • Attending two lectures: 2 hours
  • Attending your tutorial: 1.5 hours
  • Working on lab exercises: 3 hours (including attending drop-in lab sessions as required)
  • Reading set texts: 1.5 hours
  • Working on assessments: 4.5 hours (this includes taking time to reflect on feedback from submitted coursework when you receive this)
  • Taking the quiz and general course logistics: 0.5 hours

Although this course is 100% coursework, the final piece of coursework is released during the exam period.  This is because the workload is very high when we squeeze everything in the semester — this allows you to space your learning out more.   We don't have teaching in the final week and a half of semester.  During this time you should wrap up the course and prepare for the final assignment by:

  • making sure you have gone over all the lectures and understand the course content.
  • completing any missed lab or tutorial exercises.  If you have done them all, consider attempting the advanced lab exercises.
  • carefully considering the feedback you got from your assignments — especially assignment 3 part 1 — and think about how you could improve your solutions.

If you do this, you will be in good shape to do well in the course and to lay down the necessary skills and knowledge for next year.

How do we give feedback in this course?

Feedback is an integral part of your learning experience, and this is why the second assignment comes in two parts.  First of all, you submit early ideas for feedback — but there are no marks associated with this.  You can then work with the feedback you get to optimise your chance of doing well in the final submission.  

Remember that feedback doesn't only come from your assignments.  You will get feedback on your work in the weekly tutorials, in any labs you attend and in the weekly quizzes, as well as course-level feedback in lectures.

 How to get help and support in the course

My office hour will be in AT6:06 - I'll create a poll at the beginning of the course to find the most popular slot.

The most important thing is to join Piazza - that's where you can ask any question about the course and get feedback from teaching staff and your fellow students.  We release a lot of helpful information about the course and assessment on here, so it's really important to sign up.  You have to join through the course Learn page initially, but once signed up you can access Piazza through this page.

Attending your weekly tutorial is really important and your tutors will help you with your tutorial sheets and your assignments.  We also have five weekly drop-in lab sessions where get support on any aspect of the course.  These tend to be under-utilised but are a very helpful source of support.

You can anonymously share any thoughts you have about the course here.

 

License
Creative Commons - Attribution Share A Like