Skip to content

Commit 1f00a13

Browse files
Merge pull request #3 from michaelwisely/intro
Introduction
2 parents 796b475 + 42d9116 commit 1f00a13

17 files changed

+511
-11
lines changed

00-FrontMatter.md

+66-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: Nathan Jarus and Michael Wisely
55
institute: Missouri University of Science and Technology
66

77
documentclass: book
8-
papersize: letter
8+
papersize: a5paper
99
colorlinks: true
1010

1111
toc: true
@@ -16,12 +16,74 @@ header-includes:
1616
- \usepackage{newunicodechar}
1717
- \newunicodechar{↩}{$\color{blue}\scriptstyle\hookleftarrow$}
1818

19-
thanks: |
19+
include-before: |
20+
\pagestyle{empty}
21+
\begingroup
2022
Thanks to those who put up with our nonsense and those who paid us
2123
to write a book that is full of it.
24+
\endgroup
2225
26+
\vfill
27+
28+
\begingroup
29+
The source code for this book is available at [https://github.com/michaelwisely/CS1001-Prelab-Book](https://github.com/michaelwisely/CS1001-Prelab-Book).
30+
We welcome questions, corrections, and improvements.
31+
\endgroup
32+
33+
\vfill
34+
35+
\begingroup
36+
\footnotesize
37+
\parindent 0pt
38+
\parskip \baselineskip
39+
\textcopyright{} 2016--2018 Nathan Jarus and Michael Wisely
40+
41+
\indent
42+
This work is licensed under the Creative Commons Attribution--ShareAlike 4.0 International License.
43+
To view a copy of this license, visit [http://creativecommons.org/licenses/by-sa/4.0/](http://creativecommons.org/licenses/by-sa/4.0/)
44+
or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
45+
46+
\begin{center}
47+
\begin{tabular}{ll}
48+
Zeroth edition: & August 2017
49+
\end{tabular}
50+
\end{center}
51+
52+
\endgroup
53+
\clearpage
2354
...
2455

25-
\chapter*{Introduction}
56+
\frontmatter
57+
\chapter{Introduction}
58+
59+
The field of Computer Science is an odd amalgamation of math, logic, statistics, philosophy, electrical engineering, psychology, and systems engineering.
60+
Some of your classes will be hands-on and easily applicable; others will focus on ideas and theory, leaving the application in your hands.
61+
62+
Throughought your career as a computer scientist, computer engineer, or software engineer, you will write a lot of software.
63+
This book focuses on software tools that will be useful in classes, internships, and personal projects.
64+
Much as chemistry students are taught how to use lab equipment and mechanical engineering students learn the basics of machining,
65+
this book teaches the basics of tools for writing and debugging software.
66+
67+
Each chapter of this book could be a book in itself --- our goal here is to give you an idea of what these tools are useful for
68+
so that you'll know where to look when you need them in the future.
69+
We've included links to more information on the book's topics at the end of each chapter, as well as a quick reference on how to use each tool.
70+
71+
To get the most out of this book, you must do more than just read each chapter.
72+
As you read, try out the examples in the chapter.
73+
Once you get an example working, take it a step further --- try something that seems like it might work, or combine it with something you learned previously!
74+
Your learning does not end when you finish this book either.
75+
Keep using the tools we present; practice will improve both how quickly you can accomplish tasks and your understanding of how
76+
the tools, and by extension computers and software, work.
77+
78+
A note on the copyright license of this book: copyright laws are typically used to restrict the rights of others to copy, modify, and distribute creative works.
79+
This book is distributed under what's known as a 'copyleft' license --- rather than restricting your rights, it ensures that you retain these rights.
80+
The [Creative Commons Attribution--Share Alike (CC BY-SA)](http://creativecommons.org/licenses/by-sa/4.0/) license states that you have the right to copy, modify, and distribute your modifications to this book
81+
as you please so long as you follow two rules:
82+
83+
1. You have to credit the authors of the work and indicate if you have made any changes.
84+
2. You have to distribute your changes under the same license, giving others the same rights to your modifications as you (and they) have to the original work.
85+
86+
We hope that learning the tools in this book make your life easier and that you have a little fun along the way.
87+
Happy hacking!
2688

27-
Well?
89+
\mainmatter

01-Exploring-Text-Editors.md

+2
Original file line numberDiff line numberDiff line change
@@ -521,11 +521,13 @@ Granted, that requires... 13?... More keystrokes than `C-f`, but by golly, you c
521521

522522
`M-x` is *very* useful for invoking commands that don't actually have keybindings.
523523

524+
<!-- copyright
524525
\begin{figure}
525526
\centering
526527
\includegraphics[height=0.3\textheight]{01/mxdonuts}
527528
\caption{Emacs has commands for all kinds of things!}
528529
\end{figure}
530+
-->
529531

530532
#### Moving Around
531533

01/mxdonuts.jpg

-68.7 KB
Binary file not shown.

02-Bash-Basics.md

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
What is a shell?
55
A shell is a hard outer layer of a marine animal, found on beaches.
66

7+
<!--
8+
Licensed under CC0
9+
source: https://pixabay.com/es/mar-shell-almeja-oc%C3%A9ano-1162744/
10+
-->
711
![A shell.](02/shell.png)
812

913
Now that that's cleared up, on to some cool shell facts.

03-Git-Basics.md

-2
Original file line numberDiff line numberDiff line change
@@ -356,8 +356,6 @@ As you code, you see a beautiful person emerge[^emerge] from the field's tall gr
356356

357357
You grimace.
358358

359-
![Grimace](03/grimace.png)
360-
361359
The muse proceeds to explain in great detail how your program can be so much better than it is.
362360
You agree.
363361
This is a muse after all.

03/grimace.png

-75 KB
Binary file not shown.

06-Integrated-Development-Environments.md

-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ Despite their modern appearance and ergonomic appeal, some people don't much car
66
Truly, it is a mind-bending reality that some people would prefer to use a mouse to click *buttons* rather than typing commands in a shell.
77
What a world!
88

9-
![Ain't that just the way?](06/greg.jpg){ width=60% }
10-
119
In our first lab, we tried a number of different text editors.
1210
A couple of those (including Atom and Notepad++) included **graphical user interfaces** (GUIs).
1311
This means you're free to use your mouse to select text, move text, scroll through text, choose menu action, click buttons, et cetera.

06/greg.jpg

-66.7 KB
Binary file not shown.

07-Building-with-Make.md

+2
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ When the linker arrives, it paws through your object files, eats all the cookies
116116
and then through a terrifying process not entirely understood by humans[^exaggerating],
117117
leaves you a beautiful executable wrapped up under your tree[^lovecraft].
118118

119+
<!-- copyright
119120
![How Executables are Made](07/compile.png){width=70%}
121+
-->
120122

121123
So, what's the big deal?
122124
Well, if you compile your code to object files and then change some of your code, you only need to rebuild the object files

07/compile.gif

-12.4 KB
Binary file not shown.

07/compile.png

-7.58 KB
Binary file not shown.

08-Debugging-with-GDB.md

-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ Maybe take some extra time on a test.
1212
Steal a quick bagel for breakfast.
1313
Rob a bank[^escalation]...
1414

15-
![When you can slow down time, taking candy from a baby is like taking candy from a baby.](08/candy.jpg){ width=80% }
16-
1715
It was all fun up to this point.
1816
But now you're here: standing in front of at an array of red-hot lasers, trapped in the vault of the Big Bank of New York, wondering where it all went wrong, and wearing a fancy turtle neck.
1917
At least you look good in a turtle neck.

08/candy.jpg

-999 KB
Binary file not shown.

09-Locating-memory-leaks-with-Memcheck.md

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ For one example, the [WannaCry](https://en.wikipedia.org/wiki/WannaCry_ransomwar
2626
viruses use a memory safety exploit called [EternalBlue](https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue) "allegedly" developed
2727
by the NSA and released by "Russian" hackers early in 2017.
2828

29+
<!--
30+
Image is in the public domain.
31+
source: https://commons.wikimedia.org/wiki/File:Smokey3.jpg
32+
-->
33+
2934
![Smokey Says: "Only You Can Prevent Ransomware"](09/Smokey3.jpg){height=35%}
3035

3136
### Takeaways

14-Typesetting-with-LaTeX.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44

55
Close your eyes. You are [Donald Knuth](http://www-cs-faculty.stanford.edu/~uno/).
66

7-
![You, aka Donald Knuth](14/don.png)
7+
<!--
8+
Licensed CC-BY-SA 2.5; taken by Jacob Appelbaum (ick)
9+
source: https://upload.wikimedia.org/wikipedia/commons/4/4f/KnuthAtOpenContentAlliance.jpg
10+
-->
11+
![You, aka Donald Knuth](14/don.jpg){height=35%}
812

913
The year is 1977, and you have just finished hand-writing the final draft of the second edition of the second volume of *The Art of Computer Programming*.
1014
You send the draft off to the publisher for typesetting, and the proof that comes back is just horrendous.

14/don.png

-15.1 KB
Binary file not shown.

0 commit comments

Comments
 (0)