At our university we notice that our first years students' "computer literacy" is declining over the years, probably because of the rise of smartphone usage, replacing regular computer use.

We are looking for a textbook that would help these students, age around 18, understand more of computers and computing in general. Examples of topics would be:

  • history of the computer
  • different hardware parts of a computer
  • how does software and programming work
  • how do companies use computers (office applications, administrative applications, business intelligence)
  • what is networking, the internet, cloud computing, how does it work
  • how to use AI
  • computer security
  • ...

Can anyone recommend a textbook or resources about this?

  • 1
    $\begingroup$ I have a similar question you may take a look cseducators.stackexchange.com/questions/7536/… $\endgroup$ Commented Mar 31, 2023 at 9:34
  • 1
    $\begingroup$ "how does software and programming work" - in my experience, quality textbooks in this area do not exist, and if they did they would probably go under a guise different from and more general than "software" or even "computer science", as the general concept of "programs" existed before computers. $\endgroup$
    – Steve
    Commented Apr 10, 2023 at 9:23

1 Answer 1


(I am not an educator, so this answer is probably quite stupid, but) Frame challenge: Is it actually relevant?

I feel that teaching the broad overview of something not immediately useful is often not useful. For example another question where somebody said they taught the OSI model before sockets. Why? I don't think as a student I would remember that very easily. I surely saw the OSI model early on, but I properly learned it after that, when I delved deeper into networking.

History of a computer is useful insofar as it helps to understand some design decisions today (such as filesystems and user accounts) but otherwise not relevant. Filesystems - that Gen Z doesn't know about - become relevant on day 1 since many programming languages are designed for use with file systems, but do you learn how they work from a book, or do you learn by doing?

The distinction between CPU and RAM becomes relevant when you get into cache optimization. Not before. One thing my university did do was have everyone assemble a computer and install an operating system in the first week. It was memorable, because it was hands-on, but I'm not sure how useful it actually was for teaching. Maybe it helped to get students hooked a little.

Design of software on smartphones and the web (and even tablets and laptops!) often actually suffers because it's designed by people thinking with a desktop way of mind. They are fundamentally not the same kind of device - even though they all have processors - and we should not expect stuff to carry over any more than we should expect mainframe software to carry over to microcomputers. Insisting that everyone becomes desktop-centric might actually be doing them a disservice, just like writing desktop software by pretending the desktop is a mainframe.

Most people coming into a computer programming class don't know how software and programming work. That's the point of the class.

How companies use computers seems completely off-topic. Why companies and offices? Why not how some restaurant servers use tablet computers to take your order, why not how people browse their social media on the train? Why not how Google serves search queries? It's fine background information (if so, include all of these, not just one); I don't really see how it's something worth explicitly learning about. Certainly students will do a little of all of these in the projects they'll do throughout their education.

Networking, AI and security are big enough to be entire courses of their own, but you can give tasters: connect to a chat server and chat; either make something with a pre-made AI model (e.g. using the huggingface transformers library) or classify MNIST digits using an AI framework (your choice); try to hack a given program with some obvious bugs.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.