cu-chess-lectures-2024/flowcharts/flowcharts.md

107 lines
2.8 KiB
Markdown

[comment]: # (THEME = black)
[comment]: # (CODE_THEME = base16/zenburn)
# Cooper CHESS CS: Flowcharts
August 2024
James Ryan, Vaibhav Hariani
[comment]: # (!!!)
## Brief Intro
Hi, we're two Class of 26 EE students, Vaibhav Hariani [vaibhav.hariani@cooper.edu]
\& James Ryan [james.ryan@cooper.edu].
Throughout the lecture, please do not be afraid to ask any questions!
[comment]: # (!!!)
## What even \*IS\* a flowchart, anyways? Why should I care? Who even are you people?
[comment]: # (|||)
![basically, this.](media/xkdc.png)
Note:
WE DONT CARE ABOUT SPECIFICS!!!
For now, just describe whats going on, theres a problem posed, and its being...
uh.. solved?
[comment]: # (|||)
Flowcharts let us take large, complex problems, and break them down into chunks.
In the context of computer science, we can use these to think about how to
implement our goals into code.
[comment]: # (|||)
## Ok, how do I start making one of these?
- Determine the problem
- Consider each factor involved
- What are the inputs?
- From that, consider the steps involved to process your input into an output,
from start to end.
[comment]: # (|||)
### Flowchart Operators: Terminal
<div style="font-size: .4em;">
(as according to ISO 5807.. your mileage may vary.....)
</div>
![term](media/ops/term.svg)<!-- .element: style="height:20vh; image-rendering: crisp-edges;" -->
The Terminal represents the *start* or *end* of a flowchart, and is usually
labeled as such, either explicitly or implicitly (eg. "receive signal")
[comment]: # (|||)
### Flowchart Operators: Process
![term](media/ops/proc.svg)<!-- .element: style="height:20vh; image-rendering: crisp-edges;" -->
The Process represents a (group of) operation(s) which *changes* our information
in some way.
[comment]: # (|||)
### Flowchart Operators: Decision
![term](media/ops/dec.svg)<!-- .element: style="height:20vh; image-rendering: crisp-edges;" -->
The Decision operator changes our flow based on the *condition* set inside of
the operator.
[comment]: # (|||)
### Flowchart Operators: I/O
![term](media/ops/io.svg)<!-- .element: style="height:20vh; image-rendering: crisp-edges;" -->
The I/O (in/out) operator represents either the input or output of information
into our workflow.
[comment]: # (!!!)
## Another Look
![basically, this.](media/xkdc.png)
Note:
Walk through step by step and outline how we see each block being used.
Comment how XKCD ignores ISO 5807 with the start blocks and io
However, CLARITY is the most important part. Despite not using standards,
we can tell whats going on lol
[comment]: # (|||)
### Your turn:
Consider you're at home, and need to decide to go grocery shopping or not.
What do you need in order to get that done? (eg, do i have time?) Can you do it?
Make a flowchart to figure that out.
Get into groups, or do it yourself, up to you. Good luck!
[comment]: # (!!!)