What is Computer Science?


Computer Science encompasses theoretical ideas about how information is stored and processed. How can we express the step by step instructions (algorithms) necessary to write useful programs? It is also about practical techniques for the creation of new computer software and hardware.

Computer Science is having a profound effect on society and this is discussed in the course. Why is Computer Science a "science"? Computers take input, processes it and outputs. Plants do something similar producing oxygen from the process of photosynthesis using sunlight etc. In addition like all sciences it includes an organised body of knowledge, a track record of non-obvious discoveries, an experimental method to test hypotheses, and an openness to any hypothesis being falsified

In this website I have tried to take some very technical topics and make them accessable and easier to understand. Therefore it will be useful for GCSE pupils as well as IB. There are no real official text books but many teachers have done and are doing their best to provide great resources and I am grateful for their work, ideas and resources.

If you are a teacher or student please feel free to use the content here.

Preparing for the course

Your teacher will be using Google Classroom to set classroom assignments . Set up a folder structure for Computer Science. In addition a USB flash drive has Eclipse and other useful applications. If you lose it, please provide your own replacement. Your project work and notes CAN NOT solely be on the flash drive!

Software required

eclipse

Eclipse is a free open source Integrated Development Environment (IDE). It will work on Linux, Windows and Apple OS.

I will provide you with a copy of Eclipse already configured to program in Java as well as to create graphical user interfaces (GUI) using JavaFx and Scenebuilder.

You can copy this onto your own home computer or run from the USB flash drive.

dia

Dia is again an open source application which will help you design flowcharts and UML diagrams etc. It's included on the flash drive.

git

Git & Github

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.

When given a choice to make files private or public, choose private and avoid giving personal information here and on forums.

Professional attitudes required

You will need a spirit of resilience, collaboration, creativity, humility and honesty to succed.

In terms of resilience, programs rarely work first time for example. That would be normal, so don't worry! Try not to keep making the same errors though.

I have always found computer people really helpful and not too proud to seek advice themselves. Just look at the Stack Overflow site.

https://stackoverflow.com/

By all means use forums to ask for help (practically all programmers do) but you won't be popular unless you have a go first and share what you have tried to date.

In addition, you must acknowledge this help in your work.

 

 

2. Computer Organisation (6hrs)

I have made topic 2 the first one to learn. I think it will help your credibility with friends and family if you know how computers work first.

cpu

1. System
Fundamentals (20 hrs)

Here we learn how new computer systems start with dissastifaction with how things are. We learn the principles of succesfully designing and implementing a new system into a business context.

skin

3. Networks (9 hrs)

Networks involve hardware and software that need to keep to a set of rules to give us all their amazing benefits of shared resources and information

snow

4. Computational thinking (45 hrs)

Here is where we learn how to create algorithms and programs to solve problems.

 

These are available for each tutorial. Remember after each lesson review the work of the day.

Here is my Java Course

Here is the course syllabus

If you prefer other software IntelliJ or Netbeans for example then please do.

Use the brilliant website resources below for your notes as well as those in this website.

https://ib.compscihub.net

and this one:

https://www.cs-ib.net

Both have been designed to give IB mark scheme orientated information.

Past papers are represented by this image. There is one for answers too

pastpaper

Note that these are encrypted.

Your teacher will give you the password.

Student Revision notes here ( courtesy of Leonard Marshall-Afzal)