Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python

A two day, intermediate-level course in research software engineering and development skills and working as part of a team (using Python as an example language).

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in beta - it has been tested several times with different cohorts by the lesson authors as well as independently by people not involved in the course development and is in a good state to be reused and taught by others.

Teaching the Lesson

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson are:

Authors

A list of all contributors to the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

About

Intermediate Research Software Development Skills In Python Lesson Material, customized for TVS

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python

A two day, intermediate-level course in research software engineering and development skills and working as part of a team (using Python as an example language).

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in beta - it has been tested several times with different cohorts by the lesson authors as well as independently by people not involved in the course development and is in a good state to be reused and taught by others.

Teaching the Lesson

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson are:

Authors

A list of all contributors to the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

About

Intermediate Research Software Development Skills In Python Lesson Material, customized for TVS

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python

A two day, intermediate-level course in research software engineering and development skills and working as part of a team (using Python as an example language).

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in beta - it has been tested several times with different cohorts by the lesson authors as well as independently by people not involved in the course development and is in a good state to be reused and taught by others.

Teaching the Lesson

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson are:

Authors

A list of all contributors to the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

About

Intermediate Research Software Development Skills In Python Lesson Material, customized for TVS

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python

A two day, intermediate-level course in research software engineering and development skills and working as part of a team (using Python as an example language).

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in beta - it has been tested several times with different cohorts by the lesson authors as well as independently by people not involved in the course development and is in a good state to be reused and taught by others.

Teaching the Lesson

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson are:

Authors

A list of all contributors to the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

About

Intermediate Research Software Development Skills In Python Lesson Material, customized for TVS

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python

A two day, intermediate-level course in research software engineering and development skills and working as part of a team (using Python as an example language).

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in beta - it has been tested several times with different cohorts by the lesson authors as well as independently by people not involved in the course development and is in a good state to be reused and taught by others.

Teaching the Lesson

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson are:

Authors

A list of all contributors to the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

About

Intermediate Research Software Development Skills In Python Lesson Material, customized for TVS

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python

A two day, intermediate-level course in research software engineering and development skills and working as part of a team (using Python as an example language).

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in beta - it has been tested several times with different cohorts by the lesson authors as well as independently by people not involved in the course development and is in a good state to be reused and taught by others.

Teaching the Lesson

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson are:

Authors

A list of all contributors to the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

About

Intermediate Research Software Development Skills In Python Lesson Material, customized for TVS

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python

A two day, intermediate-level course in research software engineering and development skills and working as part of a team (using Python as an example language).

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in beta - it has been tested several times with different cohorts by the lesson authors as well as independently by people not involved in the course development and is in a good state to be reused and taught by others.

Teaching the Lesson

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson are:

Authors

A list of all contributors to the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

About

Intermediate Research Software Development Skills In Python Lesson Material, customized for TVS

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

DOI

Note that the lesson material can change at any point - if you are planning a workshop using this material, either let the maintainers know or make sure you use your own fork of the lesson.

Intermediate Research Software Development Skills In Python

A two day, intermediate-level course in research software engineering and development skills and working as part of a team (using Python as an example language).

A typical learner for this course may be someone who has gained basic software development skills either by self-learning or attending a foundational course such as the novice Software Carpentry Python course. However, their software development-related projects are now becoming larger and more complex and they need more intermediate software engineering skills to help them design more robust software code, automate the process of testing and verifying its correctness and support collaborations with others.

About the Lesson

This lesson teaches intermediate-level software development skills in a way that mimics a typical software development process in a team, starting from an existing piece of software.

The software project template repository used for this lesson is available at: https://github.com/carpentries-incubator/python-intermediate-inflammation.

The lesson is using the official Carpentries lesson template.

Lesson Status

The lesson is currently in beta - it has been tested several times with different cohorts by the lesson authors as well as independently by people not involved in the course development and is in a good state to be reused and taught by others.

Teaching the Lesson

If you would like to teach this lesson to your audience and help with more beta testing, please let the lesson developers know by opening an issue with your workshop details and a label pilot.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarise yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, instructions on compiling and rendering the lesson locally, and making any changes and adding new content or episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for tags good_first_issue or help_wanted. This indicates that the maintainers will welcome pull requests fixing such issues.

Maintainer(s)

Current maintainers of this lesson are:

Authors

A list of all contributors to the lesson can be found in AUTHORS.

Licence

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) licence. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT licence. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

Acknowledgements

Original lesson authors Aleksandra Nenadic, James Graham, and Steve Crouch were supported by the UK's Software Sustainability Institute via the EPSRC, BBSRC, ESRC, NERC, AHRC, STFC and MRC grant EP/S021779/1.

About

Intermediate Research Software Development Skills In Python Lesson Material, customized for TVS

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages