## Thinking like a Computer Scientist ---- ## VoidSpaceXYZ ### A Human ### EC Member @ Free Software Movement Karnataka ### fsmk.org
### What is a computer ?

----

### What is a software ?

====

** What does any program(code) basically do ? **

- Input <!-- .element: class="fragment" data-fragment-index="1" -->
- Output <!-- .element: class="fragment" data-fragment-index="2" -->
- Control Flow <!-- .element: class="fragment" data-fragment-index="3" -->
- Repetation <!-- .element: class="fragment" data-fragment-index="4" -->
- Data Manipulation <!-- .element: class="fragment" data-fragment-index="5" -->
- Memory Management <!-- .element: class="fragment" data-fragment-index="6" -->

====

Lets Solve some problems ...!

====

** The Fizz Buzz Problem. **

> Write a program that prints the numbers from 1 to 100. But for multiples of three printFizzinstead of the number and for the multiples of five printBuzz”. For numbers which are multiples of both three and five printFizzBuzz”.

====

** Alternate Case Characters**

> Without using upper() or lower() or any other related functions, can you print AbCdEf....

====

** Writing our own Random function **

> Lets write our own random.h

====

** Before Coding ? **

- Thinking of a solution before coding. <!-- .element: class="fragment" data-fragment-index="1" -->
- Logic     <!-- .element: class="fragment" data-fragment-index="2" -->
- Write psuedo code <!-- .element: class="fragment" data-fragment-index="3" -->
- Execute the psuedo code   <!-- .element: class="fragment" data-fragment-index="4" -->
- Validate all conditions and loops <!-- .element: class="fragment" data-fragment-index="5" -->
- Now write code in the computer. <!-- .element: class="fragment" data-fragment-index="6" -->

====

** Readibility / Comments **

a = 4 # Declaring value of a to 4  <!-- .element: class="fragment" data-fragment-index="1" -->

car_no_of_wheels = 4 # No of wheels of a car  <!-- .element: class="fragment" data-fragment-index="2" -->

====

** Experimental debugging**

Programming is error-prone.

====

Old Monk VS The New Shiny Thing

====

Types of Computer Engineers

- The random programmers (like me)
- Research Engineers (Old Monks on Steroids)
- Algorithmic programmers (people who flunked in math like me, dont fit in here)

====

![Wheels, We are too busy](theme/img/compsci/toobusy.jpg)

====

As a college student,  with programming and FOSS, what can I do ?
# ![Wheels, We are too busy](theme/img/questions.png) ---- ### Reach me at - null@voidspace.xyz or ram@fsmk.org - Riot : @voidspacexyz:matrix.org - Twitter/Facebook - @voidspacexyz - Telegram - @voidspacexyz ---- ### You = awesome. Me = hungry. Shall we go for lunch ?