summaryrefslogtreecommitdiffstats
path: root/tmp/teaching-cs.page
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@archive.org>2022-11-13 20:55:11 -0800
committerBryan Newbold <bnewbold@archive.org>2022-11-13 20:55:33 -0800
commitbddda1613c461aa96a3f5ee01b48f2456cdd6c62 (patch)
treee86d625bd28a8b5ede6faf456f1f79e3bd7e0289 /tmp/teaching-cs.page
parenta3c2af968cda5d27ec0bd36328e9c14cd32deebf (diff)
downloadknowledge-bddda1613c461aa96a3f5ee01b48f2456cdd6c62.tar.gz
knowledge-bddda1613c461aa96a3f5ee01b48f2456cdd6c62.zip
more tmp and misc stuff to scratch
Diffstat (limited to 'tmp/teaching-cs.page')
-rw-r--r--tmp/teaching-cs.page102
1 files changed, 0 insertions, 102 deletions
diff --git a/tmp/teaching-cs.page b/tmp/teaching-cs.page
deleted file mode 100644
index d441985..0000000
--- a/tmp/teaching-cs.page
+++ /dev/null
@@ -1,102 +0,0 @@
----
-format: rst
-categories: cs
-toc: no
-...
-====================================
-Notes on Teaching Computer Science
-====================================
-
-:author: Bryan Newbold <bnewbold@mit.edu>
-
-.. note:: Incomplete, just a structure of starting topics
-
-.. contents::
-
-In thinking about how to teach somebody new "how to program" or "about
-computers", it seems like getting the rough big picture is the best first step.
-
-
-Engineering and Scientific Philosophies
------------------------------------------
-keywords: computation, computability, hierarchy, interface, implementation
-
-In approaching computer science it is important to note an arbitrary division
-of the field between "computation" and "computability" that has arisen over
-the years. Similar to the "theory" vs "experiment" schisms in other scientific
-fields like physics, "computation" puts emphasis on actually generating
-hardware and software to run in the real world, while "computability" focuses
-on what can be computed and generalizations of specific computations. Of course
-they are two sides of the same coin and should be appreciated together.
-
-It is almost impossible to deal with computer systems (hardware or software)
-without breaking them up into modules and layers. Perhaps more so than in any
-other field, conceptual barriers are reflected in the actual design and
-implementation of systems, which can make it hard to learn how things work
-because their inner workings are shielded from view both literally and
-figuratively. For example, a software developer writing a web browser doesn't
-have to know about what kind of monitor the user is sitting in front of,
-what kind of physical link to the internet they have (or even how this
-connection is managed), the details of their computer architecture, how their
-application is delegated computing resources, what kind of mouse is being used,
-etc etc.
-
-A more formal example is the ethernet protocol, which is used to
-pass data between nodes in a relatively unstructured network. The ethernet
-protocol itself lies above the physical "link layer", which means the same
-protocol can be used for wireless radio communications or with conducting
-wires. It lies below any sort of higher network layers and far below the
-"application layer", so large amounts of data can be streamed over it between
-two nodes, or messages between dozens of nodes can be passed over it, or it
-can be only one link in a very large web of interconnections. This flexibility
-has made it ubiquitous and is the protocol most network devices use without
-a hitch, but occasionally it's imperfections can lead to problems at higher
-levels which are hard to track down.
-
-Turing Completeness
------------------------------------------
-keywords: finite state machine, deterministic
-
-Personal Computer Hierarchy
------------------------------------------
-keywords: CPU, RAM, hard disk, peripherals, network, BIOS, motherboard,
- operating system, serial, parallel, interrupts, multicore, register
-
-UNIX Operating Systems
------------------------------------------
-keywords: file system, kernel, driver, threading,
-
-UNIX is the Latin of operating systems: there were operating systems that came
-after, and the average user isn't running a UNIX operating system, but it's
-design is simple, functional, and has represents the dominant paradigms for
-modern (non-experimental or special use) operating systems.
-
-As some context, Microsoft Windows is not directly based on UNIX. Apple OSX
-and subsequent versions is built on top of a UNIX core. Linux is an open source
-implementation of UNIX. BSD was the free UC Berkeley distribution of UNIX which
-has branched off into open source implementations like FreeBSD, OpenBSD, and
-NetBSD. "UNIX" got started as a Bell Labs research project in the 70's (?)
-
-
-The Internet
------------------------------------------
-keywords: IP (internet protocol), ARP, MAC, routing, servers, backbone,
- protocol, email, http, html
-
-
-Software Development Tools
------------------------------------------
-keywords: compiler, lexical analysis, library, language, interpreter
-
-
-Data Formats, Structures, and Algorithms
------------------------------------------
-keywords: string, integer, bit, list, pointer, tree, sort, P/NP
-
-
-Design Paradigms
------------------------------------------
-keywords: server/client, object oriented, wrappers, KISS, parallelization,
- resource locking, serialization, buffer
-
-