summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2023-04-29 22:47:00 -0400
committerAdam T. Carpenter <atc@53hor.net>2023-04-29 22:47:00 -0400
commita4dc687eb213a424547c933716e7e1578f48a6e2 (patch)
tree8b8119c49db529d6fa7b79c314e3d44258a09243
downloadcps-rust-a4dc687eb213a424547c933716e7e1578f48a6e2.tar.xz
cps-rust-a4dc687eb213a424547c933716e7e1578f48a6e2.zip
finish 00 start 01
-rw-r--r--00.md111
-rw-r--r--01.md28
2 files changed, 139 insertions, 0 deletions
diff --git a/00.md b/00.md
new file mode 100644
index 0000000..659077c
--- /dev/null
+++ b/00.md
@@ -0,0 +1,111 @@
+---
+author: Adam T. Carpenter, Carpenter Tutoring
+---
+
+# Computational problem solving with _Rust_
+
+## Introduction
+
+```
+ __________
+< Welcome! >
+ ----------
+ \
+ \
+ _~^~^~_
+ \) / o o \ (/
+ '_ - _'
+ / '-----' \
+```
+
+---
+
+# What is this course?
+
+This course will focus on computational problem solving using Rust as a first
+language. _It aims to provide students with the knowledge and skills to write
+programs to solve problems._
+
+Consider this an introductory, "101"-level computer science course on
+programming fundamentals taught by Carpenter Tutoring.
+
+---
+
+# Who is this course for?
+
+- people in school who are new to computer programming
+- people with careers who want to use programming to get work done
+- people who tinker with machines and want to experiment with programming
+
+Computer programming is for everyone, not just a select few ("programmers").
+Text processing and number crunching i.e., working with data, are two primary
+instigators for computer programming. Everyone will likely find these things
+useful.
+
+_This course is for everyone who wants to solve problems using computers._
+
+---
+
+# Who is this course _not_ for?
+
+- people who are already proficient in programming
+- programmers who want to pick up Rust fast
+- people who aren't interested in learning something hard to make life easy
+
+---
+
+# Materials
+
+This course is a translation from one language to another. Instead of being
+taught in Python, it's being taught in Rust.
+
+[Practice of Computing Using Python](https://www.pearson.com/en-us/subject-catalog/p/practice-of-computing-using-python-the/P200000003329/9780137524839)
+
+The above textbook is used for course framework and method. The syntax and other
+language content comes from the [Rust Book](https://doc.rust-lang.org/book/).
+
+---
+
+# Who am I?
+
+- Bachelor's of Science from College of William and Mary, majoring in CS
+- Nearly five years employed as software engineer focusing on server-side
+ automation and support self-service
+- Using Rust productively for over three years
+
+[Bio](https://www.53hor.net/info)
+
+[Carpenter Tutoring](https://carpentertutoring.com)
+
+---
+
+# Why the Rust programming language?
+
+- enables writing useful programs that are easy to share
+- prevents beginners from making mistakes (in other languages)
+- 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.?
+
+- C forces you to think about computer organization (more)
+- Java forces you to think Object-Oriented
+- Python forces you to think dynamic type conversion
+
+These languages contain many foot guns for novice programmers!
+
+---
+
+# Setup and resources
+
+[The playground](https://play.rust-lang.org)
+
+[Getting started/installation](https://www.rust-lang.org/learn/get-started)
+
+[Docs, books, and self-learning](https://www.rust-lang.org/learn)
diff --git a/01.md b/01.md
new file mode 100644
index 0000000..14edc28
--- /dev/null
+++ b/01.md
@@ -0,0 +1,28 @@
+---
+author: Adam T. Carpenter, Carpenter Tutoring
+---
+
+# Computational problem solving with _Rust_
+
+## The study of computer science
+
+```
+ __________
+< Welcome! >
+ ----------
+ \
+ \
+ _~^~^~_
+ \) / o o \ (/
+ '_ - _'
+ / '-----' \
+```
+
+---
+
+# Rules
+
+1. Think before you program
+2. A program is a human-readable essay on problem-solving that also executes on
+ a computer
+3. Practice!