Homework¶

Today’s “homework” is a mix of reading and programming.

Reading¶

To help prepare for tomorrow’s tutorial on MI, please read the following papers, which can be found in this Google Drive folder.

  1. The perspective by Jain et al. [1].

    • The most critical sections are I, II, and V. The rest can be safely skipped.

  2. The paper by Kyle Michel and Bryce Meredig [2].

    • The exact schema (Physical Information File) is not important, but pay attention to their motivations and design choices, because they raise important issues.

  3. (optional) The viewpoint by Jeannette Wing [3].

    • This is the original paper on computational thinking and nicely encapsulates some of our views on computing education and how we’re approaching our role as mentors.

    • It is only three pages, and not too technical. Also, it truly is optional!

To make your reading experience a little more interactive and to allow for more targeted questions, we’ll experiment with leaving comments directly on the PDF in Google Drive. You’re welcome to ask/answer questions, share observations/reactions, link related content, etc. We’ve left a few comments on the two documents as a demonstration. Participation is optional, but encouraged if you do have questions or thoughts to share. This way we have full context for your questions, the discussion is preserved and organized (opposed to a stream of consciousness on Slack), and everyone can benefit from the discussion. 😊 Enze will periodically check the Google Drive to respond to your comments, but you can also ping him for a faster response.

Programming¶

Today’s programming assignment is intended to be a Python primer. These are some core concepts in the Python language and NumPy [4] that we believe are important for you to learn. As we move forward, we will be building on these concepts and you might find yourself applying them in your self-directed research.

There are two notebook files based on your familiarity with the language.

  • If you have Python experience already, or feel comfortable reading Python documentation for the topics you’re unfamiliar with, we invite you to look at Python: The greatest hits. These are some “fun” problems. 😉

  • If you are less familiar with Python, we invite you to look at Python: The gory details which introduces the language from the very beginning. It is also a superset of everything in the other notebook.

References¶

1

Anubhav Jain, Geoffroy Hautier, Shyue Ping Ong, and Kristin Persson. New opportunities for materials informatics: Resources and data mining techniques for uncovering hidden relationships. Journal of Materials Research, 31(8):977–994, 2016. doi:10.1557/jmr.2016.80.

2

Kyle Michel and Bryce Meredig. Beyond bulk single crystals: A data format for all materials structure–property–processing relationships. MRS Bulletin, 41(8):617–623, 2016. doi:10.1557/mrs.2016.166.

3

Jeannette M. Wing. Computational thinking. Communications of the ACM, 49(3):33–35, 2006. doi:10.1145/1118178.1118215.

4

Charles R. Harris, K. Jarrod Millman, StĂ©fan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, Robert Kern, Matti Picus, Stephan Hoyer, Marten H. van Kerkwijk, Matthew Brett, Allan Haldane, Jaime FernĂĄndez del RĂ­o, Mark Wiebe, Pearu Peterson, Pierre GĂ©rard-Marchant, Kevin Sheppard, Tyler Reddy, Warren Weckesser, Hameer Abbasi, Christoph Gohlke, and Travis E. Oliphant. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.