pythoninchemistry / ch40208 Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://pythoninchemistry.org/ch40208/
License: Creative Commons Attribution 4.0 International
Home Page: https://pythoninchemistry.org/ch40208/
License: Creative Commons Attribution 4.0 International
I think @bjmorgan might have a preferences for a template for the handout/worksheet material.
Need to set the exam content. What will the coding exercise be?
The final slide contains old information
Both “interatomic distances” bits of code are now in the same week, so I think this just needs the slide editing.
From @bjmorgan
Should we include a "what is this course for / overview" at the beginning of the handout and in the lecture content? At the moment the handout reads like the students are doing a programming course, rather than a programming + comp chem methods course. I am happy to add some stuff at the beginning (or to another document) talking about the overall course outline and how we see it fitting together (including, e.g. why we are teaching comp chem through programming exercises rather than a traditional series of lectures).
Do we have a specification for what each week's material should contain when "finished"? It appears @arm61 has a template in mind for each week, but it would be helpful to have this written down somewhere so that others can tick parts off when reviewing / updating.
Introduce doc strings, commenting, readable code, and testing. Repeat the debugging exercise and show how testing is a more reliable way to debug.
From @bjmorgan
I noticed in your exercises you talk about having to check different ASCII codes for upper and lower case inputs. I presume this is a left-over piece of (now useless) advice from the Fortran version?
Bring together each of the coding exercises from the previous weeks towards some larger application. Probably molecular vibration.
e.g.
my_float = 1.3e-12
Create a live coding help sheet for each week of lectures
Replace
\usepackage{url}
with
\usepackage[hyphens]{url}
A like for like recreation of the week 1 content from Fortran, dropping the unnecessary stuff.
I think @bjmorgan might have a preferences for a template for the lecture material.
Ideas:
A like for like recreation of the week 4 content from Fortran, dropping the unnecessary stuff, with functions replacing subroutines. Plus the introduction of code modularisation by using *.py files to store frequently used functions.
Currently lecture 1 has xs for the dates of the exams
It would be helpful to have a document that lists the course outline included in the repository, that we can then refer to to a) check we have covered everything we want to, and b) think about what to add or remove, and the order of different topics. @arm61 do you have the draft outline we put together in Bristol?
This can also then be a first draft for a student-facing syllabus / breakdown of the weeks and the learning activities / concepts.
Looking at the week 1 slides during the lecture, the code keywords / function names etc. could be made more visually distinct: it was only clear to me that these were keywords because I already knew what was being discussed.
Options:
- alternate font choice
- different colouring
- always have code on a separate line
- highlight using an outline / different background colour
We want something like this effect
.
Even better:
# syntax highlighting would be even better
def example_func(args):
do_something(args)
One possible approach: https://macops.ca/syntax-highlighting-in-apple-keynote-using-highlight/
Explain variable scope in Week 3
"So variables defined outside a function are available inside, but variables defined inside are local. And even if they have the same name, they are a different variable (which is one reason functions are useful)."
Some matplotlib (rehashing years 1 and 2)
Not really computational chemistry but I like this example http://nbviewer.jupyter.org/github/arm61/demos/blob/master/uncertainty_propagation.ipynb?flush_cache=true
generate rotation matrix then just give them matmul
Additional content that is currently a lecture however, it would be useful to create coding content to go alongside this.
Fitting experimental data
The instructions in the worksheet currently talk about using range
and ask the students to look this up online. But we don't cover using range
and loops until week 2. Suggest changing this to "repeat the calculation at different temperatures", or similar?
Calculating the equilibrium constant requires using an exponential, which is a native function in Fortran, but not in Python. The students will need to use from math import exp
and exp(x)
.
A like for like recreation of the week 2 content from Fortran, dropping the unnecessary stuff.
This will probably go into week 3 and like with Numpy
A like for like recreation of the week 3 content from Fortran, dropping the unnecessary stuff. Plus the introduction of NumPy vectorisation of mathematical operations and how this may be used for code optimisation.
To make life easier for looking through the repo to see where we are.
Debugging code by hand. These bugs can be particular well hidden. Also introduce the generalisation of problems and how Google is your friend.
Running Python wraps MD codes and doing some analysis on the result (this could be something as simple as pylj or as complex as LAMMPS).
Examples of analysis:
numerical problems with minimisation
Live coding notes for week one include a discussion of the different quotes allows for creating strings. Would be nice to add a comment about what happens when you mix / mismatch quote types.
look in textbook
list1 = [ , , ]
v v v
a b c
^ ^ ^
list2 = [ , , ]
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.