Good Enough Computing in Science (GECS)

flowchart LR
A[Experiment] --> B[Data]

%% Parallel paths (layout only)
subgraph Reproducible
direction TB
C(**GECS**)
end

subgraph Irreproducible
direction TB
E[Ad-hoc]
end

B --> C
B --> E

C --> G[Results]
E --> G

%% Emphasize GECS edges
linkStyle 1 stroke-width:4px
linkStyle 3 stroke-width:4px

%% Node styles
classDef gecs fill:#cfe9e5,stroke:transparent,color:#000
classDef adhoc fill:#eeeeee,stroke:transparent,color:#000
classDef neutral fill:#f7f7f7,stroke:transparent,color:#000
classDef results fill:#e6dff1,stroke:transparent,color:#000

%% Apply styles
class C gecs
class E adhoc
class A,B neutral
class G results

%% Make subgraphs invisible
style Reproducible fill:transparent,stroke-width:0px
style Irreproducible fill:transparent,stroke-width:0px

Aim

To provide an overview of core software development practices that support efficient research project management and its reproducibility.

Description

Less time for programming, more time for science. This mini course introduces the basics of software development. In two hour sessions, we cover tools and practices that are used by reserachers tp manage their projects effectively. The course is dieided in two parts, three sessions each. The first part focuses on the must-know: the terminal, version control, and project structure. The second part covers more advanced topics, such as virtual environments, automation, and testing. You will not learn how to write a specific code, but the way to think about your code from bird’s eye view. The course is designed to be language agnostic, but we will use Python for examples.

Target Audience

This course is for researchers who want to learn how to automate repetitive tasks in data analysis. Some prior programming experience is helpful but not required.

Schedule

Time: 10:00-12:00 (Fridays)
Location: L3B700 (near-ish the GS counter)

Part 1 Part 2
January 16 Terminal March 6 Virtual Environment
23 Project Structure 13 Automation
30 Version Control 27 Testing

Drop-in

After every session there will be a drop-in the following week. You can come with questions or problems regarding the course.

Time: 12:00-13:00 (Wednesdays)
Location: C102 (The Cafe Private Room)
Dates: Jan 21, Jan 28, Feb 4 for the Part 1; Mar 11, Mar 25, and Apr 1 for the Part 2.

Setting Up

If you need help with configuring your computer for the course, a session will be held on January 14 Wednesday at the Cafe Private Room during the lunchtime, 12:00-13:00. See Setting Up section.

Registration

REGISTER HERE
For official details, see the Graduate School hosted website on TIDA.

People

  • Igors Dubanevics Y4 @ESBU
  • Pin Ju Chou Y1 @CNEU (rotation)
  • Vitoria Yumi Uetuki Nicoleti Y1 @NCU (rotation)

Manifesto

β€œTeach a course you want to attend.”

adapted from Austin Kleon, Steal Like an Artist

As cheesy as it sounds, we are learning from you (probably more at this point) than you will learn from this course. Stupid question permission is granted. Suggestions, tips, and corrections are welcome!

What this course is NOT?

  • Introduction to a specific programming language (e.g., Python, Bash, etc.)
  • Numerical simulations/modeling course
  • High Performance Computing (HPC) training

Inspiration & Credits

Acknowledgements

Arthur Turrell, Greg Wilson and The Carpentries, Justin Bois, Richard McElreath, and the MulQuaBio collective.

References

β€œGood artists copy, great artists steal.”

β€” Pablo Picasso