ncasuk / ncas-isc Goto Github PK
View Code? Open in Web Editor NEWTeaching material for the NCAS Introduction to Scientific Computing course.
Teaching material for the NCAS Introduction to Scientific Computing course.
Looks like a single purpose branch created for a pull request which has been merged into master.
"Matplotlib has it's own interactive plotting window" -> "its" (no apostrophe)
The index at http://www.ceda.ac.uk/ncas-leeds-2016/ is useful but points to old versions of presentations.
Add an equivalent (maybe just as part of the README.md
), which points to the HEAD versions of the presentations on github.
The task that we need some work done on is the creation of a new exercise for the ISC course. We previously ran this exercise:
It involved each person on the course (in person) connecting a simple serial logging instrument into their laptop and collecting some readings from it. This gave them some useful skills:
The next course will be run remotely so we need a different exercise. My proposed exercise would work as follows:
Get them reviewed by NCAS/CEDA staff.
This is how we plan to run the Python part of the course:
@japamment : please liaise with appropriate CEDA/NCAS staff to get review and update to this (and please use new template).
We should make our own Python cheat sheet with the diagram of boxes and boundaries from the 'Learning Python' presentation 8 (slices).
Instructions here. Please do an update (next week if you can) :-)
I have spent the last hour trying to clone the repo. It was failing with an EOF error
fatal: the remote end hung up unexpectedly MiB | 6.48 MiB/s
fatal: early EOF
fatal: index-pack failed
The workaround I found, meant that I couldn’t access any of the branches but have found a workaround around the workaround.
Posting here in case others have the same issue. The solution seemed to be:
git clone --depth 1 https://github.com/ncasuk/ncas-isc.git
Get a shallow clonegit fetch --unshallow
turn the shallow clone into a full repogit remote set-branches origin '*'
allow access to remote branchesgit fetch
fetch the remote branchesgit checkout notebooks
change branchWho are we?
Staffing issues:
Student numbers:
Because it should be replaced by Jaspy (conda).
https://www.johnny-lin.com/pyintro/ says that the book has not yet been updated for python 3 - unless this happens before the next course, we should see if there is an alternative book recommendation. In any case, the quoted URL in the slide is wrong.
@alaniwi, here is the plan for the first exercise:
notebooks
.../python/notebook
ex01_variables_types.ipynb
<name>_solutions.ipynb
with the solutions..../python/notebooks/ex01_variables_types.ipynb
Resources:
resources.md
file
If we have to, we can install our own conda env - but much easier to just use Jaspy.
@japamment : please liaise with appropriate CEDA/NCAS staff to get review and update to this (and please use new template).
Decide what will be covered in pre-course setup and how we will cover the initial setup/connecting to JASMIN teaching session. Based on experience in recent JASMIN workshops, people turn up not having done the pre-course exercise and only a few turn up for a trouble shooting session, so it is better to move this content to the start of the main course. This will need to include setting up of MobaXterm, connecting to the JASMIN training accounts and obtaining GitHub accounts.
We need to move the course to Python 3.
Need to update:
And everything needs testing.
@japamment : Please use the standard template for the re-worked version of this.
The current matplotlib exercise uses basemap and needs updating to use cartopy
cartopy also needs to be installed on the laptops
Vertical red lines.
Go here:
https://github.com/settings/tokens
Click: "Generate new token"
In Note, put: "repo-access"
Tick the "repo" checkbox
Click: Generate token
Copy the generated token (it is a string starting with: ghp_
) and save it to a local your password manager.
Then, when you want to clone a repo, insert the <username>:<token>@
string into the URL, e.g.:
https://fred:[email protected]/foo/baa
Or, should we tell them to put the token into their global git config?
We have two extra volunteers this year to present: Mahir and Jack
When we teach the Python section of the ISC remotely, we will not be working in a Linux shell environment. This means that teaching the command-line git
interface is not going to be as straightforward. There are a few ways we could approach this:
Option 1: Remove the teaching of git/github from the course completely
Option 2: Include more demos of using git/github - but without real-world practice for the students
Option 3: Frequently switch to the Linux environment (using the JASMIN Training Accounts, on the sci
servers) - and encourage users to create push their notebooks to github.
I think it is logical to go for Option 3, with the following:
@spepler @rsmith013 @japamment @alaniwi - what do you think?
Solutions to exercises 4 and 5 need brackets for print statements.
Also need to say from datetime import datetime.
In last slide of
https://github.com/ncasuk/ncas-isc/blob/master/python/presentations/learning_python/19_ceda-dict.ppt
we could do with an example of looping over the return value of the items
method. (It should be familiar to students because they have already encountered for (i, val) in enumerate(....)
by this point, but might help as a reminder.)
There are several places in the course where we present multiple presentations between exercises.
Would it be better to merge these together to provide a more flowing presentation set?
I wonder if, psychologically, it is better to have 1, longer presentation than multiple smaller ones. Hoping to avoid the "another one" effect.
I would propose we merge the following:
The example has
(Pdb) x
to show the value of x
. This happens to work, but many other single characters are pdb commands. It would be worth mentioning that if a pdb command exists then this will be done in preference to printing out variable contents, so that if you do not get the expected behaviour then either use a longer variable name or else do an explicit print(...)
To-do:
In order to update the Python presentations we need to:
00_notebooks.ppt
:
Resources:
It is imp.reload() in 3 -3.3 or importlib.reload > 3.4
solution to exercise 3 (lists and slicing), question 2, change range(...)
to list(range(...))
As subject
Change of plan. No longer needed. We'll ask them to copy ncas-isc content to my-isc-work.
Planning doc:
Current timetable:
https://docs.google.com/spreadsheets/d/1kQFoRHLFU1IkaXChtMhLQaZCsGrITe8Dkok4rvHXubE/edit#gid=0
Things to remember:
@japamment : please liaise with appropriate CEDA/NCAS staff (FC?) to get review and update to this (and please use new template).
Create Notebooks for:
We might remove all reference to these rather than keeping old info.
Need to update the slides:
__init__.py
is not necessary__version__
.Need to update exercise and solution:
__version__
in __init__.py
The slide mentions that a function can be desirable "even if it is only called once". Which sort of implies that if it's called from more than one place then it is definitely desirable, but it doesn't say it explicitly. We ought to spell it out.
nbviewer
instead, e.g.:https://nbviewer.jupyter.org/github/ncasuk/ncas-isc/tree/notebooks/python/notebooks/
We should place info in the top-level README.md file in the notebooks
directory to explain that you can view them on nbviewer
as well as github.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.