From bf6744c95de1123c8ac13dcd1bc87e3bc4eff154 Mon Sep 17 00:00:00 2001 From: Steven Clontz Date: Tue, 6 Aug 2024 14:49:25 +0000 Subject: [PATCH] move old jupyter stuff, add vanilla programming stuff --- .../codespace-python-extension.png | Bin 0 -> 9992 bytes .../screenshots/codespace-python-script.png | Bin 0 -> 46560 bytes source/ch-coding.ptx | 149 +++++++++++++----- source/ch-jupyter.ptx | 51 ++++++ 4 files changed, 157 insertions(+), 43 deletions(-) create mode 100644 assets/screenshots/codespace-python-extension.png create mode 100644 assets/screenshots/codespace-python-script.png diff --git a/assets/screenshots/codespace-python-extension.png b/assets/screenshots/codespace-python-extension.png new file mode 100644 index 0000000000000000000000000000000000000000..20491240821872169d81ca343f58ef1336cc3b15 GIT binary patch literal 9992 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 EKTe0A`v3p{ literal 0 HcmV?d00001 diff --git a/assets/screenshots/codespace-python-script.png b/assets/screenshots/codespace-python-script.png new file mode 100644 index 0000000000000000000000000000000000000000..284dabf73545531a69db75c265b2187f3ef70bb9 GIT binary patch literal 46560 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 -
- Python and Jupyter Notebooks +
+ Writing and Running Code

-Python is an -popular open-source all-purpose programming language, and -a convenient way to write, execute, and share the -results of Python code is a -Jupyter notebook. +Now that we've provisioned our Codespace virtual cloud computer, +we can use it to write and execute code using our web browser for +essentially any programming lanugage.

-To get started, create a Codespace -() -on either an existing or new repository -(). -You can then create a Jupyter notebook file named -notebook.ipynb. +Our first example will be Python, a popular general-purpose programming +language (and the same language we will use in +for Jupyter notebooks). In your Codespace, right-click on the file Explorer +to create a New File.... Name this file something.py so your +Codespace recognizes the file as a Python script (due to the .py file +extension). +This should trigger the prompt shown in +to install a Python extension - go ahead and do it. +

+
+ + +A screenshot of the prompt that displays in a Codespace +to install the Python extension. + + + Prompt to install the Python extension. +
+

+Add the line print("Hello world!") to your file. +A play icon () should be displayed +in the upper-right corner of the text editor (thanks to the +Python extension you installed). Clicking +this button should execute the code to print a greeting +as in . +

+
+ + +A screenshot of a Python script being executed within a Codespace. + + + Running a Python script in a Codespace. +
+

+Unless your Codespace has been customized via a +.devcontainer.json file (which we won't get +into here), you'll be using the default Codespace +image provided by GitHub. This environment is ready +to execute code from various standard programming +lanugages, though for something of them you may +need to run the script using the Terminal.

- -

-In a Codespace, any file with the extension *.ipynb -(short for IPYthon NoteBook, -Jupyter's original name) -will be treated as a -Jupyter notebook. When opening this file, you'll see a notebook -interface, and be prompted to -install the recommended 'Python' extension if it's -not already enabled - do this. -

-

-Then in your notebook file, click the Select Kernel -button, then Install/Enable suggested extensions for -Python+Jupyter. You should then have the option to select -a Python environment such as Python 3.*.*. -

-

-If successful, you should be able to enter -import sys; print(sys.version) into the displayed -text box, -and see the result of executing it with -Shift+Enter. -

-

-There are plenty of existing tutorials on the internet to help you -get acquainted with Python and Jupyter now that you have them -available to you in your Codespace. But to get you started, I've provided -one sample notebook -that you can upload to your Codespace to break the ice. +What do you think the programs in +, +, and + +will output? +Execute them in your Codespace to find out!

+ + + +# name this Python file something.py +# execute using the ▶ button or by running this in a terminal: +# python something.rb +a,b = 1,1 +print(a) +print(b) +for _ in range(10): + print(a+b) + a,b = b,a+b + + + Python code + + + + +# name this Ruby file something.rb +# execute by running this in a terminal: +# ruby something.rb +a,b = 1,1 +puts a +puts b +10.times do + puts a+b + a,b = b,a+b +end + + + Ruby code + + + + +// name this Javascript file something.js +// execute by running this in a terminal: +// node something.js +let a = 1, b = 1 +console.log(a) +console.log(b) +Array.from({ length: 10 }, _ => { + console.log(a+b) + let _a = a + a = b + b = _a + b +}) + + + + Javascript code +
Previewing GitHub Pages diff --git a/source/ch-jupyter.ptx b/source/ch-jupyter.ptx index ce238ba..03ce913 100644 --- a/source/ch-jupyter.ptx +++ b/source/ch-jupyter.ptx @@ -7,4 +7,55 @@ ...

+
+ Old jupyter stuff + +

+ Python is an + popular open-source all-purpose programming language, and + a convenient way to write, execute, and share the + results of Python code is a + Jupyter notebook. +

+

+ To get started, create a Codespace + () + on either an existing or new repository + (). + You can then create a Jupyter notebook file named + notebook.ipynb. +

+ +

+ In a Codespace, any file with the extension *.ipynb + (short for IPYthon NoteBook, + Jupyter's original name) + will be treated as a + Jupyter notebook. When opening this file, you'll see a notebook + interface, and be prompted to + install the recommended 'Python' extension if it's + not already enabled - do this. +

+

+ Then in your notebook file, click the Select Kernel + button, then Install/Enable suggested extensions for + Python+Jupyter. You should then have the option to select + a Python environment such as Python 3.*.*. +

+

+ If successful, you should be able to enter + import sys; print(sys.version) into the displayed + text box, + and see the result of executing it with + Shift+Enter. +

+
+

+ There are plenty of existing tutorials on the internet to help you + get acquainted with Python and Jupyter now that you have them + available to you in your Codespace. But to get you started, I've provided + one sample notebook + that you can upload to your Codespace to break the ice. +

+
\ No newline at end of file