All Episodes

February 22, 2024 29 mins

How to Teach Computer Science episode 2, "What IS Computer Science", in which I attempt to cover the whole spec in 30 minutes, from Data Representation through Programming and Algorithms to Issues and Impacts: a whistle-stop tour of the core and hinterland.

Transcript at httcs.online/pod002

Full episode list at pod.httcs.online

Buy me a coffee at ko-fi.com/mraharrisoncs Thanks!

Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:08):
Hello.
Welcome to how to teachcomputer science, the podcast.
This is episode two.
They said it would never last.
What is computer science?
Is the title of this episode, theone you've been waiting for no need
to study for three years, or evendo a SKE for six weeks next summer.
Just put this on, repeat fora few days and you're done.

(00:29):
Heh, my name is Alan Harrison.
I wrote the books how to teach computerscience and how to learn computer science
available at many online bookstores.
And you can find out more details atthe companion website httcs.Online.
That's the initials of howto teach computer science.
HTTCS.
Dot online.
I've got 25 episodes planned,which will take us up to the summer

(00:50):
holidays and some fab guests bookedin including drum roll, please.
Andrew Virnuls oadvanced-ict.comom.
Adrienne Tough, Andy Colley,Beverly Clark and Harry and Anna
Wake from mission encodable.
Looking forward to invitingthose fantastic people onto
the podcast in a few weeks.

(01:11):
There will be parables practiceand pedagogy in this podcast.
And a lot of computer science, subjectknowledge and more jokes probably
and anecdotes and other fun stufflike competitions and prize draws.
As I was writing this script.
Yes.
I wrote a script.
Don't be rude.
The thesaurus packed up in Microsoft word.
So I have no.
Thesaurus now, which is terrible.
It's also terrible.

(01:37):
Oh, no.
Now the dictionary is gone as well.
I have no words.
Transcript by
If you want to give me feedback.
On that.
Or anything else?
Or get involved, just go to HTTCSto online or check the show notes.
I'm also on threads Mastodon and X.

(01:58):
mraharrison, or you can emailme alan at HTTCS dot online.
Remember, if you liked thiscontent, please subscribe.
Tell your friends, buy mybooks, leave a review on Amazon.
Or at the very least buy me a coffee.
At ko-fi.com/mraharrisoncsdetails at HTTCS dot online.

(02:20):
The transcript will beon the blog as normal.
That's HTTCS online slash blog.
So if you don't like my voice.
You can get your favorite text tospeech engine to read out my words.
Who's this.
Alan's podcast isessential listening for me.
I tune in every week.
There is no life I know tocompare to pure imagination.
That was Willy Wonka actor gene Wilder.

(02:42):
Bye Gene.
Thanks for popping in.
I wonder who'll be on the show next week?
So let's get today's episode goingwith another fertile question
. If you don't know what that is, go back to last week's episode.
So today's fertile question
is what is computer science?
I'm now about to tell you in under30 minutes using the TLDR sections of

(03:06):
each chapter in the book, if you're notterminally online, like I am, you might
wonder what TL semi-colon D R stands for.
It is of course too long didn'tread and you'll see it if you dare
post anything longer than a tweeton any internet forum these days,
kids just don't have the atten-.
So here we go then.
What is computer science?

(03:28):
1.
Data representation.
The heart of this topic is the idea thatif we can turn information into binary
data, We can use a computer to process it.
Digital computers process binarynumbers, because they used to state
electrical signals the chMastodonges,therefore to find a transformation
for real-world information tobinary, this transformation is called

(03:51):
encoding and it makes use of a code.
ASCII and Unicode are used to encode text.
JPEG GIF PNG do the samefor bitmap images and wow.
MP3 and AAC and code digital sound.
But it's important to realizethat there are virtually limitless

(04:12):
ways of encoding information.
And these are just thetechniques that are widely used.
Oh into that effectiveness orofficial recognition or both.
I'd love to digital conversion isthe process of mapping the original
data to the digital representation.
And it's vital to understand binary, toreally grasp the importance of that debt

(04:32):
resolution and their effect on file size.
Metadata is data about data anddescribes the contents of the file or
something about the original information.
That's really the fundamentalsof data representation covered.
The most important concept is we need away of encoding information as binary.
Then we've cracked it.

(04:53):
Talking of binary.
I made a worksheet for my classfull of binary number questions
then I went and guillotined theright-hand edge of all the pages.
Chopped off the last digit onthe right, other side of all the
binary numbers on the worksheet.
But it didn't matter, why?
That's today's competition.

(05:14):
Find my tweet, threads post orMastodon post entitled podcast
competition and answer this question.
Why did it.
Not matter that I chopped off thelast digit of all my binary numbers?
Onwards and upwards.
Let's talk about.
Two.
Programming.
In 1968, Donald Knuth wrote, theprocess of preparing programs can

(05:37):
be an aesthetic experience, muchlike composing poetry or music.
Thank you, Mr.
Knuth Renowned Dutch computingpioneer Edsger Dijkstra is famously
supposed to have said, computerscience is no more about computers
than astronomy is about telescopes.
Although this isn't on recordanywhere, but he did say surgery

(05:59):
isn't called knife science.
Programming is not about devices or evenkey words or punctuation or indentation.
Programming exists to solveproblems using machine.
First we find a way to statethe problem computationally.
Then we get a machine toperform the computation.
The first part is what we nowcall computational thinking.

(06:20):
It's easily the largest partof the process, but novice
programmers often forget this.
And sometimes expert instructors do too.
Programming is about using abstractionto determine inputs, processes, outputs.
And deciding which variablesand data structures are needed.
Then using decomposition andalgorithmic sinking to design an

(06:40):
algorithm to process the data.
You will need sequence selection,iteration, and sub programs, which you
will combine in a structured program.
Remembering to make it maintainablewith meaningful white space and the use
of sub programs, that's functions andprocedures to break a problem down into
smaller problems that's decomposition.

(07:01):
In all programming instruction, developingcomputational thinking or CT skills
is where we should spend our time.
And we heard last week that in allteaching, we should consider cognitive
load and make sure learners are thinkinghard about what matters, getting better at
designing programs, using CT and not aboutworking out where the punctuation goes.

(07:21):
This is why when we're teachingprogramming, we should do
lots of code comprehension.
We should use PRIMM.
Parsons problems.
Sabotaged code.
Smelly code and pair programming to reducecognitive load and I'll be discussing
all of those in a future podcast.
So that was programming, but we needto make with our programming skill...

(07:43):
Three.
Robust programs.
Early program mes designed anddebugged their own programs.
Building in code to prevent failuresdue to user error or hardware
failure was pioneered by MargaretHamilton for the Apollo space
program.
Her work led to the creation of anew discipline, software engineering

(08:06):
popularized by a NATO conference in 1968.
New techniques and tools werecreated throughout the seventies
to address the software crisisand improve software quality.
Glenford Myers published theart of software testing in 1979.
And the software developmentlifecycle was born.
Industry found The original waterfalldevelopment model, unresponsive to change.

(08:29):
And iterative techniquesknown collectively as agile
grew popular in the 1990s.
Many companies began to employ testautomation, software to reduce costs.
Modern robust programmingtechniques you need to know include.
Anticipating misuse throughauthentication, access levels,
sanitization and validation.

(08:50):
So let's look at those.
Authentication is keeping out unauthorizedusers by verifying the user's identity
usually with a password more on that inthe cybersecurity episode coming soon.
Access levels limit what a user cando to their permitted functions.
Input sanitization, such asremoving spaces and punctuation

(09:12):
prevents bad data getting in anddefend against SQL injection hacks.
Again, more later in thecybersecurity episode.
Validation checking inputs are reasonable.
For example, the birthday to theliving person must be sometime in
the last hundred and 50 years, right?
Robustness also comes from structuredprogramming techniques, focused on

(09:33):
modular maintainable code that usesmeaningful identifiers, indentation,
white space and sub programs.
Testing is also important for robustness.
Iterative testing is carried out duringdevelopment and final testing at the end.
Black box testing means treatingthe code like a black box we cannot
see into, instead checking eachinput causes expected output.

(09:56):
White box testing, which shouldactually be called transparent
box testing, describes testingwith knowledge of the code.
For example, you might run tests thatensure every line of code is executed.
Do not confuse white and black boxtesting with white and black hat hackers.
They are not related.

(10:16):
Languages and IDEs.
We need to remember that at its hearta computer is just a collection of
logic circuits that process digitalsignals of high and low voltages
representing zeros and ones.
The circuits can decode patterns of zerosand ones, and we call these bit patterns.
Instructions.

(10:37):
Each CPU responds to a finite setof these low level instructions,
its machine code instruction set.
Coding in binary is difficult anderror prone so each binary code is
given a short, memorable name ormnemonic such as load add or branch.
This assembly language is stilldifficult to code and contains no useful

(10:58):
constructs, such as loops or arrays.
So high-level languages were invented,which are more English like, and allow us
to write complex programs very quickly.
Python Java JavaScript, VB.NET,,CC plus plus, and C sharp are
popular high-level languages.
High-level code must betranslated into machine code

(11:19):
before it can be run on the CPU.
For this, we need a translator.
Compilers translate the whole highlevel source code program into
machine code creating an executablefile of what we call object code.
Interpreters translate the programone line at a time which allows
for rapid coding and debugging butslower execution than compiled code.

(11:41):
Assembly language may still be usedfor small mission critical programs
because machine code compiled fromhigh level code may not be optimal.
an integrated development environmentor IDE is usually used to develop code.
An IDE provides many features tospeed up coding and debugging, such as
syntax checking autocomplete, steppingbreak points on variable tracing.

(12:04):
As an aside, my favorite ID forbeginners is now Thonny, from Thonny.org.
Algorithms.
Earlier we heard that programming is notabout using the correct keywords if while
and, so on but the process of solvinga problem with the building blocks of
code, sequence, selection, and iteration.
Algorithms predate computer science bythousands of years and derive largely

(12:28):
from mathematics and the natural sciences.
Indeed the word algorithm comesfrom the name of a Persian scholar.
Muhammad ibn Mūsā al-Khwārizmī whoworked in Baghdad in the ninth century.
Some algorithms are so useful,they crop up again and again so
an understanding of searching andsorting algorithms is necessary.
The bubble sort algorithm passes overa list or array of data, many times

(12:51):
repeatedly swapping, adjacent items.
Insertion sort maintains a sorted andunsorted sub-list, repeatedly picking the
next unsorted item and placing it intothe correct place in the sorted sub-list.
Merge sort breaks a list down toindividual elements, then recombines
elements into sorted pairs, pairsinto sorted fours and so on.

(13:12):
Until the list is whole again and sorted.
As for searching.
Well, linear search just checks eachitem in the list until it finds the
target and this works on unsorted data.
If our data is sorted, we can usebinary search, which repeatedly
checks the middle item and discardsthe left or right half of the array
each time, which is much quicker.

(13:34):
As we can see two or more algorithms canbe created to solve the same problem.
And they will perform differently givenparticular inputs so it's important to
choose the right algorithm for a task.
Learners must also be able to interpretan algorithm from flowcharts and
pseudo code, correct errors andcomplete unfinished algorithms.
To help with all of this, theyshould be able to trace an algorithm,

(13:56):
thus driving out logic errors.
Okay.
Little break now let'splay the high, lower game.
I'm thinking of a number from one to 64.
Guess what it is.
Oh, I've got a text here from a listener.
I'll text to speech it.

(14:17):
Ah, you've played thisgame before, haven't you.
Lower?
16.
Higher.
24.
Higher.
28.
Higher 30.
Lower.
29.
Correct.
It was 29.
Well done.
Random listener on the text message there.
Yes, no matter what number I choosebetween one and 64, you can guarantee

(14:40):
to get it in six guesses or less.
It's one of my party tricks inthe classroom, but why is this?
And what has it got to do with algorithms?
Well, you can message me.
Just for fun.
To tell me the answer or I'llgive the answer next week.
Architecture.
Alan Turing described the concept ofthe stored program computer in 1936,

(15:01):
John Von Neumann built on Turing'swork explaining in 1945 how a cycle of
fetch decode execute could allow thesame memory to hold programs and data.
Freddie Williams led a team at Manchesteruniversity that built the baby.
Which ran around 700instructions per second in 1946.
Its success led to the 1951 Ferranti MarkI, the first commercial computer, for

(15:23):
which women wrote most of the programs.
Valves gateway to much faster transistorsin the 1960s and this exposed the
Von Neumann bottleneck solved bythe Harvard architecture of separate
memories for instructions and data.
Early memory stores included paper tape,magnetic tape, magnetic drum, acoustic
delay lines, and core rope memory untilsemiconductor RAM arrived in the 1960s.

(15:47):
Magnetic hard disk drives providedsecondary storage from the 1950s
onwards with flash memory becomingpopular in the 21st century for portable
storage devices and solid state disks.
Compact discs invented in 1979and DVDs and Blu Ray disks are
examples of the third commonstorage type, the optical disk.
Computer performance is limitedby the three CS, clock speed,

(16:10):
Cores and size of cache.
From the baby to the modernsmartphone, all CPUs still contain
an arithmetic and logic unit or ALU,some registers and a control unit.
And they perform a fetch decodeexecute cycle first described
by Von Neumann in 1945.
Talking of Von Neumann, I'm sayingNOY-mann because he was Hungarian.

(16:32):
And not to be confused with Max Newman whoworked at Bletchley park with Alan Turing.
So von Neumann thank youfor your contribution.
And inventing the arithmetic andlogic unit, talking of logic.
7.
Boolean logic.

(16:52):
George Boole publishedhis paper, in 1847.
Describing what becameknown as Boolean algebra.
Claude Shannon saw how Boole's workcould be applied to electronics in 1938.
The first digital computers usedfragile valves and slow relays.
Transistor computers arrived in the 1950s,greatly improving speed and reliability.

(17:13):
Computer's use a high voltagearound five volts to represent
either true or a binary 1.
And a low voltage close to zero voltsto represent False or binary zero.
A transistor acts like an electronicswitch, turning the voltage on or off.
Transistors can becombined into logic gates.
A logic gate is a collectionof microscopic transistors

(17:34):
that perform a Boolean logicoperation, such as, AND, OR or NOT.
Logic gates are combined intocircuits, inside a computer to perform
arithmetic and logical operations.
An AND gate takes two inputs andproduces the output one or true
only if both inputs are one or true.
One input AND the other.

(17:55):
The OR gate produces an output one,if either one OR the other input
is one and a NOT gate inverts theoutput zero to one and one to zero.
We use truth tables to list the outputsfor every possible combination of inputs.
We can write Boolean expressions,such as Q = A AND NOT B, and then draw
logic circuits, connecting symbols,which represent the logic gates.

(18:19):
Hey, talking of logic.
Three computer scientistswalk into a bar, the bartender
asks, do you all want a drink?
The first says, I don't know.
The second says, I don't know.
The third thinks for aminute and says, yes.
If you know how that works, messageme on threads, Mastodon or X.
Just for fun.

(18:40):
Eight.
System software.
Early computers were hardwiredto perform a single program.
Running a different program requiredextensive manual intervention.
An IBM project called stretch in 1961and Manchester's Atlas computer in 1962.
Provided multi programmingfeatures for the first time.
In 1964.

(19:01):
IBM's 360 delivered index data files,program libraries, a job scheduler,
interrupt, handling, and print spooling.
The modern operating system was thusborn Two Bell labs, researchers, Ken
Thompson and Dennis Ritchie createdUnix in 1971, which became the most
popular OS on the planet by 1980.

(19:21):
Apple's 1984 Macintosh was theworld's first successful home computer
with a graphical user interface.
And a year later, bill gates, Microsoftreleased its first GUI called windows.
Mobile versions were spun offin the 21st century, including
iOS and the windows Phone OS.
Which is now dead.
The Finnish student.

(19:42):
Linus Torvalds released the first versionof Linux in 1991 and it now runs hundreds
of millions of devices from home internetrouters to Amazon's data center servers.
Linux is open source, meaninganyone can see copy amend and
contribute to the source code.
OSs are a type of system software thatexists to manage the hardware and to allow

(20:03):
applications and users to interact withand control the system by managing memory,
CPU time slices and input and output.
Utilities and driversare also system software.
Utilities help keep the computerrunning smoothly while drivers
communicate with the hardware.
Anything, that's not an applicationis probably system software.

(20:24):
Nine.
Networks.
Let's quickly look back atthe creation of the internet.
The internet, is that thing still around?
And then the worldwide web.
In the 1960s computers on universitycampuses like UCLA would join together
in a local area network or LAN.
Then in 1969, the first wide area networkor WAN was created between UCLA and

(20:47):
Stanford as part of the ARPANET project.
Early routers called interface messageprocessors or IMPs performed packet,
switching the process of breakingup data into chunks and routing it
across a network with the packetspotentially taking different routes.
And being reassembled at the other end.
This was a key strength of theARPANET, allowing it to grow

(21:08):
quickly and perform reliably.
In 1983.
The ARPANET adopted a set ofstandard protocols created
by Vint Cerf called TCP IP.
Protocols are rules that enable verydifferent computers to communicate.
The protocols are arranged in layerswith each layer, performing a single job.
At the top is the applicationlayer where email sits and later

(21:31):
websites displayed by the browser.
Throughout the 1980s, the internetwas used mostly by universities and
the military to access text onlyservices like email, FTP, and use net.
Home users arrived on theinternet in the early 1990s.
Thanks to the first commercialISP, including AOL and CompuServe.
True story.

(21:51):
I sent my first email in 1986from Sheffield university to my
friend at Newcastle university.
But within weeks of starting, mycourse, our email access was removed
because we crashed the server withchain emails, full of ASCII cows.
Google ASCII cows and thank me later.
Tim Berners Lee combined HTML with TCPIP to create the worldwide web in 1993.

(22:16):
This technology allows a browser todownload and display pages from a
web server anywhere in the world.
The web has grown rapidly and around 66%.
of the world's population is now online.
It's important to draw aclear distinction between the
internet and the worldwide web.
The internet is a global network ofcables, satellite links, switches, and
routers that join computers together.

(22:38):
The web is the collection of websites,apps, and services that make use of
the internet to do useful things.
Computer networks can be LANs consistingof switches, wireless access points, and
Ethernet cables or WANs which use copper,fiber optic, microwave and satellite
links to join devices over long distances.

(23:01):
a Router connects a LANto another LAN or a WAN.
The router in your home is actually amultifunction device containing a switch,
wireless access point, router and modem.
Right.
So what's next.
Oh, I think there'sanother celebrity guest.
Cybersecurity.
I don't know much about that.

(23:21):
Don't worry, Peter.
I do
.. Ten.
security.
Keeping secrets is asold as writing messages.
Julius Caesar is said to have encryptedhis messages by shifting each letter
down the alphabet by a known shift key.
An encryption method that changes eachletter for another letter or symbol, like
this is called a substitution cipher.

(23:43):
These are easily brokenby frequency analysis.
First documented by the ninthcentury Persian scholar Al Kindi.
During the second world war,the Nazis used electromechanical
machines called enigma and Lorenz.
Which were cracked by expertmathematicians working with early
computers at the UKs Bletchleypark code, breaking center.
Modern encryption uses mathematicalmethods to ensure that computers

(24:05):
cannot brute force the key.
Verifying the identity of auser is called authentication.
Passwords are the most commonmeans of authentication.
But a weak password can easilybe brute forced by trying
all possible combinations.
Passwords can also be guessed orspotted while shoulder surfing.
The second layer of protection is addedby two factor authentication or 2FA.

(24:27):
Typically 2FA requires a code,delivered by text message or
generated by a token or app.
Or a biometric indicator such asa fingerprint or face recognition.
Attacks on the network includedistributed denial of service,
DDoS, and hacking attempts.
Firewalls at the network perimeter willkeep out unwanted network, traffic and
website should be protected againstSQL injection attacks by sanitizing

(24:50):
their inputs as we discussed earlier.
Malicious software or malware, consistsof viruses, Trojans, and worms.
Antivirus or more accurately.
Anti-malware software can help, butother security measures such as patching
firewalls and user training are vital.
Social engineering is often calledhacking the human and includes phishing

(25:10):
pretexting and shoulder surfing.
For any company, educating users isimportant and this should be part
of the network security policy.
Finally defensive design means designingsystems to be secure in the first place.
This can include secure networkdesign code reviews, testing,
and anticipating misuse.
As we discussed earlier,robust programming.

(25:30):
And security, thus go hand-in-handand are linked to many of the
topics in the final chapter.
How are we doing for time?
I did say I do this in 30 minutes.
So I'm going to have to speed this one up.
Okay.
Eleven.
Issues and impacts.
Information technology caused athird industrial revolution and

(25:53):
analysts are calling the convergenceof mobile internet automation and
AI the fourth industrial revolution.
With all new technology comesboth opportunities and challenges.
We face privacy, legal, cultural,environmental, and ethical
questions, and many issues span twoor more of those categories, such
as automation, equality, bias indecision-making and the future of work.

(26:14):
Decisions require us to balancecompeting issues and impacts.
For example, automation drivesdown the cost of production and
eliminates hazardous occupations, butcan cut jobs or worsen inequality.
The internet has opened up communicationspreviously impossible, but has
created a digital divide betweenthose, with access and those without.

(26:34):
Artificial intelligence isrevolutionizing manufacturing,
healthcare transport and the arts.
But it suffers from bias,discrimination and lack of transparency.
Cryptocurrencies such as Bitcoin havebeen criticized for their energy use
and electronic waste is a growingethical, environmental and legal issue.
While finite resources needed insmartphones are mined by low paid

(26:55):
workers in exploitative practices.
In every question about issues andimpacts of technology we must consider
all the stakeholders involved, includingthe creators vendors, shareholders,
consumers, and wider society andbalance their often competing interests.
How have I done for time?.

(27:17):
Wow.
That was a whistle-stop tour ofthe GCSE in computer science.
So now you're ready to sit the exam.
Or to teach the subject So let'srevisit our fertile question.
What is computer science?
Have I answered it?
Let me know in thecomments or on the socials.

(27:41):
This has been how to teach computerscience, the podcast I'm Alan Harrison.
If you want to give me feedbackor get involved, just go to HTTCS
online or check the show notes.
I'm also on threads Mastodon an Xas mraharrison, remember, if you
liked this content, please subscribe.
Tell your friends, buy my books, leavea review of my books on Amazon, or

(28:03):
at the very least buy me a coffee.
I'm also available for staff trainingINSET days and student masterclasses
see the website for details.
Next week, I have a guest, the amazingAndrew Virnuls, who like me sat the old
computer studies O-level in the eighties.
And worked in IT for decades.
So we'll be catching up and discussingin more detail one of my favorite
topics, data representation,
I'm off for a cappuccino paidfor by our listener mark Weddell.

(28:24):
Thanks mark.
Really appreciated.
If you enjoyed this, why not do the same?
Don't forget to hit subscribeand I'll see you next week.
Advertise With Us

Popular Podcasts

Cold Case Files: Miami

Cold Case Files: Miami

Joyce Sapp, 76; Bryan Herrera, 16; and Laurance Webb, 32—three Miami residents whose lives were stolen in brutal, unsolved homicides.  Cold Case Files: Miami follows award‑winning radio host and City of Miami Police reserve officer  Enrique Santos as he partners with the department’s Cold Case Homicide Unit, determined family members, and the advocates who spend their lives fighting for justice for the victims who can no longer fight for themselves.

24/7 News: The Latest

24/7 News: The Latest

The latest news in 4 minutes updated every hour, every day.

Crime Junkie

Crime Junkie

Does hearing about a true crime case always leave you scouring the internet for the truth behind the story? Dive into your next mystery with Crime Junkie. Every Monday, join your host Ashley Flowers as she unravels all the details of infamous and underreported true crime cases with her best friend Brit Prawat. From cold cases to missing persons and heroes in our community who seek justice, Crime Junkie is your destination for theories and stories you won’t hear anywhere else. Whether you're a seasoned true crime enthusiast or new to the genre, you'll find yourself on the edge of your seat awaiting a new episode every Monday. If you can never get enough true crime... Congratulations, you’ve found your people. Follow to join a community of Crime Junkies! Crime Junkie is presented by audiochuck Media Company.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.