107 lines
2.8 KiB
Markdown
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]: # (!!!)
|