README.md 1.66 KB
Newer Older
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
1 2 3 4
# Intro to Programming

### Agenda

Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
5
* Computer architecture, memory, compile vs interpret, JIT
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
6 7

* Programming 101
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
8
    - Python Hello World, [Python Standard Libraries](https://docs.python.org/3/library/index.html)
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
9
    - Variables, Types, etc
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
10 11
    - Conditionals ("if/else") 
    - Iterations ("for loops")
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
12
    - Functions, Scopes, [Arduino Functions](https://www.arduino.cc/en/Reference/FunctionDeclaration)
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
13
    - Objects
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
14
    - Writing readable, clean, sharable code
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
15
    
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
16 17
* Programming Languages
    - low level -> abstract
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
18
    - C Hello World, [C Standard Libraries](https://en.wikipedia.org/wiki/C_standard_library)
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
19 20 21 22
        ```
            gcc -o hello_world hello_world.c
            ./hello_world
        ```
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
23
    - Javascript Hello World
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
24 25 26 27
        ```
            javac HelloWorld.java
            java HelloWorld
        ```
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
28
    - NodeJS Hello World
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
29 30 31 32
        ```
            node hello_world_node.js
            # and then visit in a browser http://localhost:8081
        ```
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
33
    - Debugging/Testing
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
34 35

* Programming Embedded Systems
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
36
    - Embedded C, [Arduino Language Reference](https://www.arduino.cc/en/Reference/HomePage)
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
37
    - Memory: EEPROM, Registers
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
38
    - Arduino Hello world
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
39 40 41

### Resources

Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
42
* [Arduino Foundations](https://www.arduino.cc/en/Tutorial/Foundations)
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
43
* [C Programming Tutorial](https://www.cprogramming.com/tutorial/c-tutorial.html)
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
44 45
* [Python Programming Tutorial](https://pythonprogramming.net/introduction-to-python-programming/)
* [JavaScript Programming Tutorial (and more)](https://www.khanacademy.org/computing/computer-programming)
Thrasyvoulos Karydis's avatar
Thrasyvoulos Karydis committed
46 47
* [NodeJS Progamming Tutorial](https://www.tutorialspoint.com/nodejs/nodejs_first_application.htm)
* [Jupyter Notebooks](http://jupyter.org/)