<p>I think the ancient history is less relevant to a general curriculum, the context that many of us learnt to program with is not likely to help students understand the environment they will be working in in the future. </p>

<p>Similarly, Mores law does not predict the future (and is expected to only continue with step changes in tech beyond 5nm).</p>

<p>What probably is relevant is to look back 10 years, and see how phones have changed, how battery tech has improved, how everyone carries broadband with them, sat-phones cover the whole planet, and many houses have well over 20 Mb Internet. </p>

<p>So not only are computers near enough free (outside of supercomputer) but they are far better connected. This is fairly new, and things are still changing, but you ought to be able to demonstrate some comparisons which are accessible and help students imagine how things might change. </p>

<p>Domestic drones are my current best example of tech which has only recently been accessible at a sensible price. </p>

CC BY-SA 3.0
2017-05-27T21:57:17.847Z
2017-06-11T16:43:14.357Z
2017-06-11T16:43:14.357Z
Sean Houlihane
<p>There are some history topics that link really well with computing - for example a history of communication, taking in writing, printing, semaphore, the telegraph and Morse code etc, through to the internet and the web. The <a href="https://www.gov.uk/government/publications/national-curriculum-in-england-history-programmes-of-study/national-curriculum-in-england-history-programmes-of-study#key-stage-1" rel="noreferrer">English history curriculum for 5-7 year olds</a> suggests that pupils compare William Caxton and Tim Berners Lee. </p>

<p>Another great topic would be cryptography, perhaps starting with the Caesar cipher, mono-alphabetic and poly-alphabetic substitutions, Enigma, Colossus and other work at Bletchley Park, public / private key encryption (with applications to SSL), some of the contemporary issues around privacy and perhaps a look ahead to quantum cryptography.</p>

<p>YMMV, but I think context like these may make these topics more engaging than a straight history of computing unit.</p>

CC BY-SA 3.0
2017-05-25T20:10:48.997Z
2017-05-25T20:25:56.127Z
2017-05-25T20:25:56.127Z
Miles
<p>In short, yes. When introducing students to programming and how a computer works, historical perspective can prove highly valuable in several areas. Consider this one image of Margaret Hamilton next to NASA code:</p>

<p><a href="https://i.sstatic.net/SQqCU.jpg" rel="noreferrer"><img src="https://i.sstatic.net/SQqCU.jpg" alt="Margaret Hamilton next to NASA code"></a></p>

<p>Encapsulated here are several important ideas:</p>

<ul>
<li><p>Women played an essential role in the development of the space program (<em>Hidden Figures</em> also brought this fact to the cultural forefront recently)</p></li>
<li><p>The term <em>computer</em> used to refer to the person, not the machine.</p></li>
<li><p>Languages have developed from low-level to high-level in significant ways, so we stand on the shoulders of abstraction when we program today.</p></li>
</ul>

<p>This leads to a discussion of the <a href="https://en.wikipedia.org/wiki/Apollo_Guidance_Computer" rel="noreferrer">Apollo Guidance Computer</a> itself. Low-level details like a 16-bit 2.048 MHz processor on a <em>70-pound machine</em> contrasts heavily with the magnitudes of order faster devices we have now. There's a great perspective to be gained, especially in terms of speed and memory. </p>

<p>An additional resource I'd recommend for integrating the historical development of computers and computing is Brian Kernighan's book <em>D is for Digital</em>. It weaves in historical information throughout as a way of explaining just how we have arrived where we are now. Its examples are even more recent, so it provides an insight into just how much and how fast advancement has been recently. My students are reading part of it for summer reading, and here is the guide I made with sample questions that might related to your goal of teaching history: <a href="https://github.com/cs50sacramento/source-code-17-18/blob/master/DIsForDigitalReadingGuide.pdf" rel="noreferrer"><em>D is for Digital</em> Reading Guide</a>.</p>

CC BY-SA 3.0
2017-06-11T16:45:44.753Z
Good point about languages. I'm sure C would be different if it were replaced now, and it's pretty mainstream in the right domains.
Sean Houlihane
CC BY-SA 3.0
2017-06-15T02:59:28.590Z
You beat me to mentioning using the history of computing to highlight women's contributions.
Ellen Spertus
CC BY-SA 3.0
2017-06-15T03:00:59.390Z
Apparently, a single Google search uses more compute power than the whole Apollo program. I still can't wrap my mind around that. https://search.googleblog.com/2012/08/the-power-of-apollo-missions-in-single.html
Ellen Spertus
CC BY-SA 3.0
2017-06-11T16:13:51.200Z
2017-06-11T16:13:51.200Z
Peter
<p>To give another perspective, when teaching an intro to web development course it's very useful to teach things in a way similar to how they were discovered and contextualize the different concepts in history. It's easy to understand why HTML is a markup language rather than a full fledged language when you consider the time: The Web was used for serving plain text pages, and they wanted a little markup to make it nicer. HTML was born. When styling become larger than HTML could encompass, CSS was born. When interactions wanted to be built in, JS was born, etc. Otherwise you can get into extended discussions about why the front-end environment is the way it is.</p>

<p>In cryptography it's the same way. By following the history you can see the mistakes of those before you, and thus avoid those mistakes. Crypto is all about the cycle of making a new algorithm then having it broken, and the arms race that it causes. History illustrates common pieces of advise, like to avoid security by obscurity, and history also shows why perfect forward secrecy is needed. It shows the need for key exchange, and shows the relationship between unsolved math problems and crypto. All of these are great reasons to teach crypto in chronological order, from the oldest discoveries to the newest.</p>

<p>I would guess that this sense of parallels between the order in which things are invented and the order in which things are taught exists in other fields as well, and so teaching history along with the normal coursework could be very useful.</p>

CC BY-SA 3.0
2017-05-26T02:00:11.697Z
2017-05-26T02:08:24.960Z
2017-05-26T02:08:24.960Z
thesecretmaster
<p>I enjoy computing history and some of the mankier bits of Computing history are partly my fault, I'm even holding a dinner in the City to mark the 50th anniversary of Real Time Computing <a href="https://www.eventbrite.co.uk/e/real-time-computing-50-years-on-and-50-years-hence-tickets-32702374683" rel="nofollow noreferrer">https://www.eventbrite.co.uk/e/real-time-computing-50-years-on-and-50-years-hence-tickets-32702374683</a>, but it's a hobby, not a subject.</p>

<p>Firstly, there are no good texts to provide the 'common thread' that some people desire. Some books do incidents well, but I've never seen a thematic text of any value, some are interesting, but mostly because they are wrong in novel ways.</p>

<p>Secondly, to be done properly it is astonishingly hard. I've written IT history professionally and you find yourself explaining the economics of chip fabrication in the context of Agile vs Waterfall software development methodologies. Unless you can do this, today and without further research and not scratch your head on why they are related, you aren't qualified. I don't think I'm qualified either.</p>

<p>Next, it's a cop out. Teaching logic, applying set theory, expounding of floating point, the legalities of licencing, O(N) notation, and why in the name of god does VB do <em>that</em> is <em>hard</em>. History is comfortable and easy. There are no nasty error messages on the screen saying you are wrong, the kids understand stories they are told about heroes and everyone goes home happy. But not educated.</p>

<p>Computing history's big. Computing is a big thing that has been big for a long time. All you really can teach is a few anecdotes, fine but that's not a theme. There are themes, but they require a huge level of investment in time by a teacher if they are to avoid merely spouting corporate propaganda or uncritically propagating the heroic myths of Hopper and Lovelace. Imagine yourself pointing out that Hopper helped fight the Vietnam war and Lovelace was a drug addict who helped on a colossal failed government funded computer project. If you're not pointing out the bad as well as the good, then why not just shoe them Disney's Frozen instead ?</p>

<p>I enjoy history, I even write some, but don't pretend it is useful <em>to the student</em> and that has to be the measure of any structure </p>

CC BY-SA 3.0
2017-06-14T18:52:17.167Z
2017-06-14T18:52:17.167Z
Dominic Connor Quant Headhunt
<p>First, remember that every course should have a through-line - a central story that it tells. This story is what provides coherence to the pieces. If history is part of that <em>central story</em>, then the answer to your question is self-apparent. For instance, the information obviously belongs in a <em>Social History of Computing in Society</em> course.</p>

<p>Questions like this arise, however, when the material in question doesn't comfortably nestle inside that core through-line.  In those instances, I recommend the following approach:</p>

<p>Non-curricular "extras" are wonderful if they substantially enhance or broaden students' perspectives, but don't bog things down too much.  So: if it's <em>really</em> valuable, make sure you can keep it short and to the point.</p>

<p>The question, then, is whether the cost to the pacing of the class is overridden by the generalized benefit of gaining some context.  Since these extras aren't a part of the central story of a class, and aren't cornerstone pieces of the key course goals, they <em>inherently</em> slow down the pacing of the course and muddy that central through-line.  If you enter into too many side-paths, the central message of the course can get truly lost, and the whole course will begin to feel rudderless.  A few diversions down side-paths can be enriching, but too many destroy the arc of the class.</p>

<p>If you're unsure about whether your through-line is being communicated, you can poll students about the <em>purposes</em> of the various exercises and lessons  <em>how do they all fit into the bigger picture?</em>  If your students seem to know what's going on, you're in good shape.  If the results are more mixed, I would spend time re-telling your big story, and steer clear of side pursuits until the central line is firmly reestablished.</p>

CC BY-SA 3.0
2017-06-11T18:03:15.400Z
But might not history be part of the central story?  Physics class labs often include significant time repeating some of Archimedes and Galileo's ancient experiments before moving on to tensors, statistical mechanics, etc.
hotpaw2
CC BY-SA 3.0
2017-06-11T18:23:37.290Z
Good point! I fleshed out my answer to clarify.
Ben I.
CC BY-SA 3.0
2017-06-11T17:08:42.353Z
2017-07-10T15:15:59.533Z
2017-07-10T15:15:59.533Z
Ben I.
<p>Should some portion of introductory CS curriculum include something about the history of computers, especially with respect to Moore's law and what that might imply about the growth of computing power?</p>

<p>Would this help give students a perspective regarding the potential of how computing and programming might change in the near future, based on how things have changed in the past?</p>

CC BY-SA 3.0
2017-06-11T03:31:56.070Z
I (hopefully) made the question more objective and wonder if it can be reopened in its current form.
Tom Au
CC BY-SA 3.0
2017-06-11T15:16:16.593Z
... in the past? (from the original question) e.g. going from when great-grandma may have been employed as a computer to computers shrinking from the size of a house to that of a speck of dust, how good they have it not having to punch cards, and etc.
hotpaw2
CC BY-SA 3.0
2017-06-11T15:19:50.473Z
(from the original question) ... Are there any other merits of including the technology history? Or knowledge of historical computing frowned upon by mainstream CS educators?
hotpaw2
CC BY-SA 3.0
2017-06-11T17:01:20.937Z
@hotpaw2 I edited those at because I saw the questions left as covering those areas implicitly. Asking further questions can often muddy the waters. Limiting it to 1-2 questions keeps the scope narrow enough for a precise answer.
Peter
CC BY-SA 3.0
2017-05-25T19:21:27.227Z
I was recently contemplating cross curricular computing and what this should be: not using a word processor in English, and creating a power point for history. But instead History teaching the history of computing; English teaching the poetry “there is no place like `::1`” (also `127.0.0.1` and `~`);  Geography considering computing culture, moor's law, and the fact that the internet is full (the internet is dead, long live IPv4);
ctrl-alt-delor
CC BY-SA 3.0
2017-05-26T02:13:42.820Z
Isn't this purely opinion?  Without knowing the goals of the course, it is impossible to guess.
Ben I.
CC BY-SA 3.0
2017-05-26T03:03:36.300Z
I think that the question is attempting to ask about if history should be part of the course goals. I'd prefer to say that this is too broad, but then again "Should I talk about history?" is 90% of the time "Yes," but because of the "why" aspect of the question it may still be too broad.
thesecretmaster
CC BY-SA 3.0
2017-05-26T12:27:33.507Z
IMO, this really only becomes relevant as you face going out into the workforce to maintain legacy code. Understanding that the first databases weren't relational is only useful when you're looking at code that's a holdover/hangover from those days.
G. Ann - SonarSource Team
CC BY-SA 3.0
2017-05-26T19:57:53.810Z
Which curriculum? You don't teach the same thing to future programmers and to future accountants.
Gilles 'SO- stop being evil'
CC BY-SA 4.0
2024-06-18T12:08:52.597Z
Moore's law is not a typical example of historical information that is useful for computer scientists, because Moore's law is as much about the future as it is about the past. (Yes, there are hard physical limits, but there's no sign that transistor counts have plateaued yet.) The biggest reason to teach about Moore's law is that it is *not* only history.
kaya3
<social-context><computer-history>
What are the merits of including the history of computers in the entry level curriculum?
# What are the merits of including the history of computers in the entry level curriculum?

(Asked by: username_0 on 2017-05-25)

Should some portion of introductory CS curriculum include something about the history of computers, especially with respect to Moore's law and what that might imply about the growth of computing power?

Would this help give students a perspective regarding the potential of how computing and programming might change in the near future, based on how things have changed in the past?

**Tags:** social-context, computer-history

> **Comments:**
> **username_3**: I was recently contemplating cross curricular computing and what this should be: not using a word processor in English, and creating a power point for history. But instead History teaching the history of computing; English teaching the poetry “there is no place like `::1`” (also `127.0.0.1` and `~`);  Geography considering computing culture, moor's law, and the fact that the internet is full (the internet is dead, long live IPv4);  
> **username_4**: Isn't this purely opinion?  Without knowing the goals of the course, it is impossible to guess.  
> **username_5**: I think that the question is attempting to ask about if history should be part of the course goals. I'd prefer to say that this is too broad, but then again "Should I talk about history?" is 90% of the time "Yes," but because of the "why" aspect of the question it may still be too broad.  
> **username_6**: IMO, this really only becomes relevant as you face going out into the workforce to maintain legacy code. Understanding that the first databases weren't relational is only useful when you're looking at code that's a holdover/hangover from those days.  
> **username_7**: Which curriculum? You don't teach the same thing to future programmers and to future accountants.  
> **username_1**: I (hopefully) made the question more objective and wonder if it can be reopened in its current form.  
> **username_0**: ... in the past? (from the original question) e.g. going from when great-grandma may have been employed as a computer to computers shrinking from the size of a house to that of a speck of dust, how good they have it not having to punch cards, and etc.  
> **username_0**: (from the original question) ... Are there any other merits of including the technology history? Or knowledge of historical computing frowned upon by mainstream CS educators?  
> **username_2**: @username_0 I edited those at because I saw the questions left as covering those areas implicitly. Asking further questions can often muddy the waters. Limiting it to 1-2 questions keeps the scope narrow enough for a precise answer.  
> **username_8**: Moore's law is not a typical example of historical information that is useful for computer scientists, because Moore's law is as much about the future as it is about the past. (Yes, there are hard physical limits, but there's no sign that transistor counts have plateaued yet.) The biggest reason to teach about Moore's law is that it is *not* only history.  

---

## 6 answers

### Answer by username_5 on 2017-05-26. Score: 8

To give another perspective, when teaching an intro to web development course it's very useful to teach things in a way similar to how they were discovered and contextualize the different concepts in history. It's easy to understand why HTML is a markup language rather than a full fledged language when you consider the time: The Web was used for serving plain text pages, and they wanted a little markup to make it nicer. HTML was born. When styling become larger than HTML could encompass, CSS was born. When interactions wanted to be built in, JS was born, etc. Otherwise you can get into extended discussions about why the front-end environment is the way it is.

In cryptography it's the same way. By following the history you can see the mistakes of those before you, and thus avoid those mistakes. Crypto is all about the cycle of making a new algorithm then having it broken, and the arms race that it causes. History illustrates common pieces of advise, like to avoid security by obscurity, and history also shows why perfect forward secrecy is needed. It shows the need for key exchange, and shows the relationship between unsolved math problems and crypto. All of these are great reasons to teach crypto in chronological order, from the oldest discoveries to the newest.

I would guess that this sense of parallels between the order in which things are invented and the order in which things are taught exists in other fields as well, and so teaching history along with the normal coursework could be very useful.


---

### Answer by username_10 on 2017-05-25. Score: 6

There are some history topics that link really well with computing - for example a history of communication, taking in writing, printing, semaphore, the telegraph and Morse code etc, through to the internet and the web. The [English history curriculum for 5-7 year olds](https://www.gov.uk/government/publications/national-curriculum-in-england-history-programmes-of-study/national-curriculum-in-england-history-programmes-of-study#key-stage-1) suggests that pupils compare William Caxton and Tim Berners Lee.

Another great topic would be cryptography, perhaps starting with the Caesar cipher, mono-alphabetic and poly-alphabetic substitutions, Enigma, Colossus and other work at Bletchley Park, public / private key encryption (with applications to SSL), some of the contemporary issues around privacy and perhaps a look ahead to quantum cryptography.

YMMV, but I think context like these may make these topics more engaging than a straight history of computing unit.


---

### Answer by username_2 on 2017-06-11. Score: 5

In short, yes. When introducing students to programming and how a computer works, historical perspective can prove highly valuable in several areas. Consider this one image of Margaret Hamilton next to NASA code:

[![Margaret Hamilton next to NASA code](https://i.sstatic.net/SQqCU.jpg)](https://i.sstatic.net/SQqCU.jpg)

Encapsulated here are several important ideas:

* Women played an essential role in the development of the space program (*Hidden Figures* also brought this fact to the cultural forefront recently)
* The term *computer* used to refer to the person, not the machine.
* Languages have developed from low-level to high-level in significant ways, so we stand on the shoulders of abstraction when we program today.

This leads to a discussion of the [Apollo Guidance Computer](https://en.wikipedia.org/wiki/Apollo_Guidance_Computer) itself. Low-level details like a 16-bit 2.048 MHz processor on a *70-pound machine* contrasts heavily with the magnitudes of order faster devices we have now. There's a great perspective to be gained, especially in terms of speed and memory.

An additional resource I'd recommend for integrating the historical development of computers and computing is Brian Kernighan's book *D is for Digital*. It weaves in historical information throughout as a way of explaining just how we have arrived where we are now. Its examples are even more recent, so it provides an insight into just how much and how fast advancement has been recently. My students are reading part of it for summer reading, and here is the guide I made with sample questions that might related to your goal of teaching history: [*D is for Digital* Reading Guide](https://github.com/cs50sacramento/source-code-17-18/blob/master/DIsForDigitalReadingGuide.pdf).

> **Comments:**
> **username_9**: Good point about languages. I'm sure C would be different if it were replaced now, and it's pretty mainstream in the right domains.  
> **username_11**: You beat me to mentioning using the history of computing to highlight women's contributions.  
> **username_11**: Apparently, a single Google search uses more compute power than the whole Apollo program. I still can't wrap my mind around that. https://search.googleblog.com/2012/08/the-power-of-apollo-missions-in-single.html  

---

### Answer by username_12 on 2017-06-14. Score: 2

I enjoy computing history and some of the mankier bits of Computing history are partly my fault, I'm even holding a dinner in the City to mark the 50th anniversary of Real Time Computing <https://www.eventbrite.co.uk/e/real-time-computing-50-years-on-and-50-years-hence-tickets-32702374683>, but it's a hobby, not a subject.

Firstly, there are no good texts to provide the 'common thread' that some people desire. Some books do incidents well, but I've never seen a thematic text of any value, some are interesting, but mostly because they are wrong in novel ways.

Secondly, to be done properly it is astonishingly hard. I've written IT history professionally and you find yourself explaining the economics of chip fabrication in the context of Agile vs Waterfall software development methodologies. Unless you can do this, today and without further research and not scratch your head on why they are related, you aren't qualified. I don't think I'm qualified either.

Next, it's a cop out. Teaching logic, applying set theory, expounding of floating point, the legalities of licencing, O(N) notation, and why in the name of god does VB do *that* is *hard*. History is comfortable and easy. There are no nasty error messages on the screen saying you are wrong, the kids understand stories they are told about heroes and everyone goes home happy. But not educated.

Computing history's big. Computing is a big thing that has been big for a long time. All you really can teach is a few anecdotes, fine but that's not a theme. There are themes, but they require a huge level of investment in time by a teacher if they are to avoid merely spouting corporate propaganda or uncritically propagating the heroic myths of Hopper and Lovelace. Imagine yourself pointing out that Hopper helped fight the Vietnam war and Lovelace was a drug addict who helped on a colossal failed government funded computer project. If you're not pointing out the bad as well as the good, then why not just shoe them Disney's Frozen instead ?

I enjoy history, I even write some, but don't pretend it is useful *to the student* and that has to be the measure of any structure


---

### Answer by username_4 on 2017-06-11. Score: 2

First, remember that every course should have a through-line - a central story that it tells. This story is what provides coherence to the pieces. If history is part of that *central story*, then the answer to your question is self-apparent. For instance, the information obviously belongs in a *Social History of Computing in Society* course.

Questions like this arise, however, when the material in question doesn't comfortably nestle inside that core through-line. In those instances, I recommend the following approach:

Non-curricular "extras" are wonderful if they substantially enhance or broaden students' perspectives, but don't bog things down too much. So: if it's *really* valuable, make sure you can keep it short and to the point.

The question, then, is whether the cost to the pacing of the class is overridden by the generalized benefit of gaining some context. Since these extras aren't a part of the central story of a class, and aren't cornerstone pieces of the key course goals, they *inherently* slow down the pacing of the course and muddy that central through-line. If you enter into too many side-paths, the central message of the course can get truly lost, and the whole course will begin to feel rudderless. A few diversions down side-paths can be enriching, but too many destroy the arc of the class.

If you're unsure about whether your through-line is being communicated, you can poll students about the *purposes* of the various exercises and lessons *how do they all fit into the bigger picture?* If your students seem to know what's going on, you're in good shape. If the results are more mixed, I would spend time re-telling your big story, and steer clear of side pursuits until the central line is firmly reestablished.

> **Comments:**
> **username_0**: But might not history be part of the central story?  Physics class labs often include significant time repeating some of Archimedes and Galileo's ancient experiments before moving on to tensors, statistical mechanics, etc.  
> **username_4**: Good point! I fleshed out my answer to clarify.  

---

### Answer by username_9 on 2017-05-27. Score: 1

I think the ancient history is less relevant to a general curriculum, the context that many of us learnt to program with is not likely to help students understand the environment they will be working in in the future.

Similarly, Mores law does not predict the future (and is expected to only continue with step changes in tech beyond 5nm).

What probably is relevant is to look back 10 years, and see how phones have changed, how battery tech has improved, how everyone carries broadband with them, sat-phones cover the whole planet, and many houses have well over 20 Mb Internet.

So not only are computers near enough free (outside of supercomputer) but they are far better connected. This is fairly new, and things are still changing, but you ought to be able to demonstrate some comparisons which are accessible and help students imagine how things might change.

Domestic drones are my current best example of tech which has only recently been accessible at a sensible price.


---

