1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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)
|