Computational Skills Students Need to Hit the Ground Running
<p>Data from survey of computational physics researchers about which skills students need to know to get started in computational research versus skills they can learn along the way. </p> <p>Possible responses for each skill are:<br> Ideally, students have prior experience with these;<br> Students learn these in natural course of research with me;<br> Students get focused training on these;<br> This skill is unnecessary for my work;</p> <p>Full list of skills:<br> Algorithmic thinking skills [Converting a problem to a step-by-step procedure amenable to coding]<br> Basic coding skills and knowledge [Programming in some language at "hello, world!" level]<br> Basic coding skills and knowledge [Calculation/visualization environment (e.g. Mathematica, Jupyter notebook, Matlab)]<br> Basic coding skills and knowledge [ Numerical arithmetic (e.g. machine precision, data types)]<br> Basic coding skills and knowledge [Flow control (loops, conditionals, etc.)]<br> Basic coding skills and knowledge [Scoping rules particular to a programming language]<br> Basic coding skills and knowledge [Selecting and manipulating data structures]<br> Software engineering [Whiteboarding]<br> Software engineering [Pseudocoding & diagramming ]<br> Software engineering [Software lifecycle best practices (design-code-implement-validate-utilize-archive)]<br> Software engineering [Keeping a TODO list]<br> Software engineering [Documenting code and keeping documentation current]<br> Software engineering [camelType and other strong typing]<br> Software engineering [Interfacing homegrown code with external libraries]<br> Software engineering [Object oriented design principles]<br> Software engineering [Fluency in an object oriented language]<br> Software engineering [Parsing/understanding legacy or inherited code]<br> Software engineering [Extending functionality of existing code]<br> Software engineering [Version control]<br> Software engineering [Creating modular, well-structured code easily passed on to other students]<br> Software engineering [Using an IDE]<br> Scientific project and data management [Keeping a lab notebook or electronic log]<br> Scientific project and data management [In situ documentation (README files, etc)]<br> Scientific project and data management [Recording input parameters when codes are run in production mode]<br> Scientific project and data management [Recording version of code used to produce any set of data]<br> Scientific project and data management [Naming conventions of output files]<br> Scientific project and data management [Backing up and knowing how to restore data/codes]<br> Scientific project and data management [Sharing code effectively with others]<br> Scientific project and data management [Proactive communication of results and issues]<br> Scientific project and data management [Collaborative mindset]<br> Fundamental scientific computing skills [Running an executable code one is given]<br> Fundamental scientific computing skills [Asking people for help with running or writing code]<br> Fundamental scientific computing skills [Reading code documentation]<br> Fundamental scientific computing skills [Googling to answer coding questions]<br> Fundamental scientific computing skills [Locating existing code and libraries on web-based servers]<br> Fundamental scientific computing skills [Terminal / unix shell programming]<br> Fundamental scientific computing skills [Unix shell scripting]<br> Fundamental scientific computing skills [Accessing and utilizing remote platforms (ssh, scp, etc.)]<br> Fundamental scientific computing skills [Submitting jobs to a queue]<br> Fundamental scientific computing skills [Using a terminal-based text editor]<br> Fundamental scientific computing skills [Compiling and making]<br> Fundamental scientific computing skills [Reading formatted data]<br> Fundamental scientific computing skills [Writing formatted data]<br> Fundamental scientific computing skills [Understanding compile-time and runtime errors]<br> Fundamental scientific computing skills [Visualizing line data (plots)]<br> Fundamental scientific computing skills [Visualizing image data (2D)]<br> Fundamental scientific computing skills [Visualizing volumetric data (3D)]<br> Fundamental scientific computing skills [Creating animations]<br> More advanced computational skills [High performance computing]<br> More advanced computational skills [Profiling code and optimizing execution]<br> More advanced computational skills [Specialized hardware (GPUs, etc)]<br> More advanced computational skills [Using a debugging environment]</p>
ShareScore
16/100
Overall dataset sharing score
Score breakdown
These five areas show where the dataset supports — or may limit — practical reuse.
- Stewardship
- 8
- Harmonization
- 4
- Access
- 0
- Reuse readiness
- 0
- Engagement
- 4