icsc-paradigms-and-patterns
Slides and exercises for the iCSC lecture "Software Paradigms and Programming Patterns"
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.1%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Slides and exercises for the iCSC lecture "Software Paradigms and Programming Patterns"
Basic Info
Statistics
- Stars: 16
- Watchers: 2
- Forks: 4
- Open Issues: 3
- Releases: 3
Topics
Metadata Files
readme.md
Programming Paradigms and Patterns
This repository contains lecture slides (both as source code and as rendered pdfs) and exercises.
The course was first taught in September/October 2020 at the iCSC 2020.
Recordings of the lectures:
Slides: The final versions of the rendered slides at the time of the presentation are in the root directory of this repository. There are two versions, one with animations and one without (*_handout.pdf).
Exercises: See below.
Getting help
During the event, there are two channels on CERN mattermost (you might need to create a CERN lightweight account, which is free for everyone):
After the event, you can open an issue in this repository.
Running the exercises
The exercises come with solutions for you to compare to. If you have any questions, please join the exercise discussion slot.
If you're completely new to this, use option 1 or 2. If you already have python and Jupyter set up on your computer, we recommend option 3. Note that your changes are not saved automatically in the first two options!
Option 1: Using binder
This means you don't have to install anything, but you can simply use the binder service to provide you with a Jupyter environment in your browser. It might be a bit slow to start up, but once it's running you're ready to go!
Simply click on the following link:
You should see something like this:

After some time (don't worry if it takes 5 minutes) you are brought to the Jupyter server:

Navigate on exercises and then click on one of the two notebooks (patterns.ipynb or paradigms.ipynb) to start your training!
If you've never use Jupyter notebook, you can also do this training or take a look at the documentation. But basically you can execute a cell by hitting Shift+Enter and add cells with the menu.
Option 2: Google colab
Simply click the link (you need to log in to your google account though)
If you've never used Google colab, you can also go to this page and try it out (but it's very similar to Jupyter notebooks if you're familiar with that).
Option 3: Local run
You need to have python3 and its package manager pip3.
Clone the repository
sh
git clone git@github.com:klieret/icsc-paradigms-and-patterns.git
cd icsc-paradigms-and-patterns
Make sure you have the required python packages:
sh
pip3 install -r requirements.txt
Then run the Jupyter notebook
sh
jupyter-notebook
It should open in your browser.
Generating lecture slides from source
You need to use XeLaTeX:
sh
cd latex
mkdir -p build && xelatex --output-directory build -shell-escape software_patterns.tex
mkdir -p build && xelatex --output-directory build -shell-escape programming_paradigms.tex
The -shell-escape flag is needed for code highlighting. You might need to install
the pygments package.
The slides work with overlays (partial reveals of bullet points and other elements).
As this is less practical for studying yourself, take a look at the main .tex file
and change \handoutfalse to \handouttrue if needed.
Developing this further
We are planning to convert this into a training similar to that of the Software Carpentry in order to be included in the HSF curriculum. Help is much appreciated.
If you have any particular comments, feel free to open an issue on github for this repository.
Citation & License
Licensed as CC BY 4.0, see file license.md. Please use the following zenodo ID to cite this
work:
Owner
- Name: Kilian Lieret
- Login: klieret
- Kind: user
- Location: Princeton, NJ, USA
- Company: Princeton University
- Website: https://www.lieret.net
- Twitter: KLieret
- Repositories: 30
- Profile: https://github.com/klieret
Postdoctoral Research Associate at Princeton University Research Computing
GitHub Events
Total
- Watch event: 3
- Issue comment event: 3
- Push event: 1
- Pull request event: 2
- Create event: 1
Last Year
- Watch event: 3
- Issue comment event: 3
- Push event: 1
- Pull request event: 2
- Create event: 1
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Kilian | k****t@p****e | 69 |
| Kilian Lieret | k****t@d****e | 32 |
| pre-commit-ci[bot] | 6****] | 10 |
| dependabot[bot] | 4****] | 5 |
| Nikolai Hartmann | n****e@p****e | 1 |
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 2
- Total pull requests: 22
- Average time to close issues: N/A
- Average time to close pull requests: 10 days
- Total issue authors: 1
- Total pull request authors: 5
- Average comments per issue: 2.0
- Average comments per pull request: 0.36
- Merged pull requests: 17
- Bot issues: 0
- Bot pull requests: 19
Past Year
- Issues: 0
- Pull requests: 3
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.33
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 3
Top Authors
Issue Authors
- klieret (2)
Pull Request Authors
- pre-commit-ci[bot] (14)
- dependabot[bot] (6)
- klieret (1)
- nikoladze (1)
- simranwaqar27 (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- jupyter *
- matplotlib *
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- xu-cheng/latex-action v2 composite
