icsc-paradigms-and-patterns

Slides and exercises for the iCSC lecture "Software Paradigms and Programming Patterns"

https://github.com/klieret/icsc-paradigms-and-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

design-patterns design-patterns-python icsc icsc2020 lecture lecture-material lecture-notes paradigms

Keywords from Contributors

mesh pipeline-testing datacleaner data-profilers exoplanet energy-system hydrology spacy-extension hacking interactive
Last synced: 6 months ago · JSON representation

Repository

Slides and exercises for the iCSC lecture "Software Paradigms and Programming Patterns"

Basic Info
  • Host: GitHub
  • Owner: klieret
  • License: other
  • Language: TeX
  • Default Branch: master
  • Homepage:
  • Size: 1.57 MB
Statistics
  • Stars: 16
  • Watchers: 2
  • Forks: 4
  • Open Issues: 3
  • Releases: 3
Topics
design-patterns design-patterns-python icsc icsc2020 lecture lecture-material lecture-notes paradigms
Created about 6 years ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

readme.md

Programming Paradigms and Patterns

DOI pre-commit.ci status gh actions git tutorial

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:

Binder

You should see something like this:

binder loading

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

binder ready

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:

DOI

Owner

  • Name: Kilian Lieret
  • Login: klieret
  • Kind: user
  • Location: Princeton, NJ, USA
  • Company: Princeton University

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

All Time
  • Total Commits: 117
  • Total Committers: 5
  • Avg Commits per committer: 23.4
  • Development Distribution Score (DDS): 0.41
Past Year
  • Commits: 3
  • Committers: 2
  • Avg Commits per committer: 1.5
  • Development Distribution Score (DDS): 0.333
Top Committers
Name Email 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
Committer Domains (Top 20 + Academic)

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
enhancement (2)
Pull Request Labels
dependencies (6) github_actions (1)

Dependencies

requirements.txt pypi
  • jupyter *
  • matplotlib *
.github/workflows/workflow.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • xu-cheng/latex-action v2 composite