summaryrefslogtreecommitdiff
path: root/01/README.md
diff options
context:
space:
mode:
Diffstat (limited to '01/README.md')
-rwxr-xr-x01/README.md191
1 files changed, 0 insertions, 191 deletions
diff --git a/01/README.md b/01/README.md
deleted file mode 100755
index 0949931..0000000
--- a/01/README.md
+++ /dev/null
@@ -1,191 +0,0 @@
----
-author: Adam T. Carpenter, Carpenter Tutoring
----
-
-# Computational problem solving with _Rust_
-
-## The study of computer science
-
-```
-~~~fsays
-Not just for computer scientists
-~~~
-```
-
-[practice of computing using python](https://www.pearson.com/en-us/subject-catalog/p/practice-of-computing-using-python-the/p200000003329/9780137524839)
-
-[rust book](https://doc.rust-lang.org/book/)
-
----
-
-# Why computer science?
-
-Computers are "more universally applicable than any other commodity in history."
-(Punch & Enbody)
-
-There is no other machine with as many diverse uses as the computer. A
-reprogrammable machine is a machine that works for _you_.
-
-## Not just computer programming
-
-- theory of computation
-- efficiency
-- algorithms and data structures
-- parallelism
-- software engineering
-
-_Computer programming is a great way to begin exploring these fields_
-
----
-
-# Difficulty in first-time programming
-
-It's like learning how to write poetry in a foreign language. You need:
-
-- fluency: the vocabulary and grammar to read and write the language
-- ability: the skill to rhyme, write in verse, _make poetry_
-
-Learning to program has similar roadblocks. You need:
-
-- syntax and semantics: the structure of Rust as a language
-- problem solving: the skill to transform your problem into a solution
-
----
-
-# Good programs are essays
-
-Programming is writing how _you_ think a problem should be solved.
-
-A program is your thoughts!
-
-## 1. Think before you program
-
-Writing a program should describe your thoughts well.
-
-Not just for computers, but for other human beings! You're going to read your
-program over and over again. Eventually you'll inevitably write programs in a
-group. Then others will need to read it too.
-
-## 2. A program is a human-readable essay on problem solving (that also runs on a computer)
-
----
-
-# The promise
-
-A program, or an essay on problem-solving, has impact because it can be executed
-on a computer. Your problem-solving thoughts
-
-- are executable
-- are repeatable
-- are independent of you
-
-Programming is a leap forward in the way the printing press was hundreds of
-years ago.
-
----
-
-# Choosing a language
-
-The variety of languages is enormous, each one with a specific intended purpose.
-
-## Why Rust? "performance, reliability, productivity"
-
-- useful types and memory guarantees
-- makes it easy to write concurrent programs
-- has a friendly compiler and helpful borrow checker
-- provides good documentation
-- offers great standard library and third-party libraries
-
-Thanks to middle school math, most folks have the prerequisite knowledge to
-understand variables, functions, and types.
-
-## Why not C, Java, Python, etc.?
-
-Some of these languages force you to think about computer organization. Others
-may direct you into an object-oriented programming mindset. Still others promote
-dynamic type conversion or make it easy to dereference null values.
-
-The most important reason for using Rust is it helps prevent you from making
-mistakes, regardless of your skill level.
-
----
-
-# Is Rust the best language?
-
-If you don't already know you'll soon learn there is no "best language."
-
-All languages compromise on something; Each has its strengths and weaknesses.
-
-Rust is a good, _general-purpose_ programming language with _broad_
-_applications_.
-
-Once you've gotten started, you'll be better equipped to explore other languages
-that may be better suited to solving your specific problems.
-
----
-
-# Computation and computers
-
-_Computation_ is the manipulation of data by humans or machines
-
-...be that data numbers, letters, or other symbols.
-
-A _computer_ is something that does computation
-
-Note this does not specify _how_ the computation is accomplished. However, there
-are some things that every computer needs in order to do its job.
-
-- accept data as input
-- manipulate data (do computation on the input)
-- output data
-
----
-
-# Mechanical and electronic computers
-
-_Computer_ used to be a job description for human beings!
-
-General-purpose, reprogrammable, electronic digital computers first appeared in
-the 20th century.
-
-The basis of every digital computer is an on-off switch. The technology behind
-these "switches" has evolved from mechanical relays to vacuum tubes to
-transistors.
-
-_Transistors_, the tiny electronic switches powering modern computers, are
-either on or off. Just like a light switch, when turned on, they allow
-electricity to flow. Using switches to power other switches, you can create
-circuits that represent logic.
-
----
-
-# Example: a three-pole light switch
-
-```
-~~~graph-easy --as boxart
-[hall switch] .. off ..> [ceiling lamp]
-[den switch] - on -> [ceiling lamp]
-[hall switch] <-> [den switch]
-~~~
-```
-
-```
-~~~graph-easy --as boxart
-[hall switch] - on -> [*ceiling lamp*] { border: bold; }
-[den switch] - on -> [*ceiling lamp*] { border: bold; }
-[hall switch] <-> [den switch]
-~~~
-```
-
-Note: this is actually an XNOR gate, but we'll talk more about logical operators
-later.
-
----
-
-# Replace light with truth
-
-Off: false, 0
-
-On: true, 1
-
-Both switches off: light off, false, 0