Computer Lib
In 1974, during the advent of personal computers, Ted Nelson published a book called "Computer Lib", describing how computers will become popular and affect our lives. He makes it clear how important it is that people understand how computers work, not only be able to use them, but deeply understand how they work and what they are capable of.
Almost 50 years later we live in a world where computers are omnipresent and affect every aspect of our lives. Computers are in control of more than we would like to admit. More than ever we need to understand very deeply how computers work.
Courses and Workshops
In the spirit of "Computer Lib" I would like to organize workshops and courses in which we explore what computers do and understand how they work in order to feel more in control of our computerized lives.
This is a work-in-progress list of courses and workshops that I have or would be interested in giving. I am very much open to suggestions for further topics.
Courses are generally in English as most of the ressources on the topic are in English. I also speak German and French.
If you are interested in organizing or attending a course or workshop please contact me via email at pukkamustard [at] posteo [dot] net.
The course materials are freely available on Gitlab.
I Git it!
Git is a a version control system that helps you track computer files and changes made to them. It is an extremly powerfull tool for organizing code and collaborating with others.
This is a workshop introducing basic concepts of Git and how to use them for basic organization of files as well as online collaboration.
The workshop was first held in November 2019 with graduate students of the SLF Davos.
- Duration: half-day
- Prerequisites: Laptop with Git installed, no previous Git knowledge required.
- Availability: can be held again on very short notice
Software Design: Coding with Style
Software is a growing organism. New ideas are exlored, features are added and functionalities are changed. Software becomes more complex and at the same time very messy. The art of keeping software tidy and elegant is called Software Design.
Software Design is a very important skill to ensure correctness and quality of your code. Equally important, it keeps the code base aesthetically pleasing and working with it enjoyable.
This workshop/course is an introduciton into the art of Software Design. We want to learn how to build more elegant and more enjoyable code by:
- Gaining a deeper understanding of how computers and programming languages work.
- Learning how to use different kinds of abstractions and techniques to make the code more elegant.
Workshop will include interactive exercises.
- Duration: 3-4 half days over 2-3 weeks
- Prerequisites: Laptop, basic programming experience
- Availability: Can be held in a couple of months of notice
Beep beep: Networks and how computers talk to each other
Computer are all around us. Even more frightening: they talk to each other constantly.
In this workshop we want to listen in on what computers are talking about, how they talk to each other and how complex computer networks work:
- Basics: How information is transmitted
- Networks: How groups of computers form networks
- Topologies: How to organize computer networks
- Services: How do networked applications (e.g. email) work?
- Internet: What is the internet and how does it work?
This workshop focuses on lower-level functioning of computer networks. For a more high-level introduction to an existing network, the Internet, see the next course.
The workshop will include interactive exercises.
- Duration: half-day to 2 days
- Prerequisites: Laptop, no previous knowledge required
- Availability: Can be held in a couple of months of notice
A series of tubes: A crash course to the internet
The Internet is a global interconnected computer network. It is also what we use when we watch videos, send messages and check the news. But how does it all work?
In this workshop we want to explore how the Internet works by exploring the various levels of protocols and technologies, including:
- TCP/IP: What is a computer network?
- DNS: How can we translate names to addresses?
- HTML: What is a website?
- Services: What are web services? What is an API?
The workshop will include interactive exercises.
- Duration: half-day to 2 days
- Prerequisites: Laptop, no previous knowledge required
- Availability: Can be held in a couple of months of notice
The Art of Computer Programming: Algorithms and Data structures
An introduction to basic algorithms and data structures.
- Duration: half-day to 2 days
- Prerequisites: Laptop, basic programming experience
- Availability: Can be held in a couple of months of notice
Scientific Computation with Julia
An introduction to the Julia programming language.
- Duration: half-day
- Prerequisites: Laptop, basic programming experience
- Availability: Can be held in a couple of months of notice