Objectives

Students will be able to:

  • review OOP concepts so far, including UML diagrams, encapsulation, polymorphism and containment(aggregation), inheritance

Fun Fact

Operating Systems are great! You would have a hard time using your computer without one.

Operating Systems are great at

  • memory management, by handling requests by programs for memory (RAM) allocation.
  • input and output device management eg when you click a key on your keyboard it is the operating system who handles that first.
  • file management, eg when you create a new file or move a file, the operating system is handling all of the dirty work for you.

A modern operating system will also provide you with a Graphical User Interface (GUI) to help you use your computer effectively.

Imagine having to move a file from one folder to another without a GUI?!

Dedicated Operating Systems

Some systems don't require a commercial operating system such as Mac's Monterray OS.

This could be because the system is extremely simple and doesn't require all of the features of a commercial OS, such as the microprocessor controlling your washing machine's cycle.

Or it could be that the system requires a dedicated OS to optimize system performance in some way.

Commercial OS tend to take up a lot of memory too, so for some systems that don't require a lot of memory, it may be better to opt for a dedicated OS.

Note, Operating Systems are covered in Topic 2 and HL Topic 6

Review 3

key concepts so far

Scenario

An dedicated operating system manages files and folders.

You will complete an exam-style question.

You will also have the opportunity to actually code the solution as you are answering the questions.

You will need the following files if you opt for this practical opportunity:

Note: if you attempt the practical task (recommended), be ready to use the main() method to test your solutions.

Exam Question

Find a link to the Exam Question below.

Video explainer

Here is an explainer video. Make sure you attempt the questions first.

Glossary of Terms

Make sure you can define each of the following terms clearly:

  • constructor method
  • accessor method
  • mutator method
  • encapsulation
  • polymorphism (method overriding)
  • polymorphism (method overloading)
  • private (modifier)
  • public (modifier)
  • static (modifier)
  • final (modifier)
  • protected (modifier)
  • class
  • instance of a class (object)
  • inheritance
  • super class
  • sub class
  • dependencies

Tags

classprivate public protected static final method constructor encapsulation mutator data-hiding accessormodifiers