Training

We provide group and individual training from novice to advanced, with core skills and customized courses.

ACENET offers accessible and flexible group and individual training (beginner to advanced), with a focus on customized learning events and regular core skill development opportunities.

Explore our regular course offerings below and check Upcoming Training for our current schedule. You can also see non-training events on our News & Events page. 

To see upcoming training from our regional partners, visit Calcul Québec, Compute Ontario or WestGrid.  


Below is the list of standard workshops and seminars that our team regularly delivers, ranging from introductory sessions to advanced topics.

Courses are scheduled at various times of the year and at various institutions or online, based on demand. Four of the ACENET Basics Series (Introduction to HPC, Introduction to Linux, Introduction to Shell Scripting, and Job Scheduling with Slurm), are offered, at minimum, every May and January. 

There are also video tutorials available for a number of workshops.

Our workshops and seminars can also be provided by arrangement. To access one of our courses outside our Upcoming Training schedule, to arrange customized training, or to indicate that you'd like to see us offer a particular session soon,  SUBMIT A TRAINING REQUEST

ACENET Training Catalogue:

Orientation

Beginner, 1 hour
Prerequisites: None

Digital research tools can help today’s researchers meet ambitious goals and overcome significant challenges, such as

  • Mining and analyzing a large data set
  • Modelling that is too complex for desktop computing
  • Identifying patterns or trends in spatial data or visual imagery
  • Developing a web-based research/analysis tool

In this session, equip yourself with basic terms and concepts related to high performance (HPC), supercomputing and big data analytics, and an understanding of the computing power and expert support available to you through the Digital Research Alliance of Canada and ACENET. Learn how advanced computing is already serving researchers across the sciences, and how you can get started.

Beginner, 1 hour
Prerequisites: None 

Are you interested in learning more about digital research methods, but don't know where to start? Do you have large data sets that you would like to mine and analyze in innovative ways? Do you want to look for patterns in visual imagery, reveal trends in spatial data, or perform quantitative analysis of digitized texts? Perhaps you want to build a web-based research or analytical tool and don’t know where to start. This orientation session will introduce you to the ACENET organization and the research supports and resources available through ACENET and the Digital Research Alliance of Canada that are directly applicable for humanities and social sciences researchers.

Beginner, 1 hour
Prerequisites: None

Academia.edu, ResearchGate, Humanities Commons, ORCID: where is  it worth spending your time on online platforms? This workshop will consider how to create and manage a professional online presence, with a focus on humanities and social sciences. We will talk about choosing platforms and social media based on ethics, audience, features, and, yes, the amount of work they involve. As William Shakespeare once said, “to blog, or not to blog, that is the question.”

YouTube Tutorial: (Video)

Beginner, 2 hours
Prerequisites: None

Most of us have experience using a computer, whether for school, work, or entertainment, but how many of us have actually had an expert teach us how to use it? When one of your computing devices goes wrong, do you struggle to understand why? Perhaps you do an internet search in the hope that someone else who has had the exact same problem as you found a solution that also works for you.

It doesn't need to be (quite) this way. This talk won't teach you how to troubleshoot everything, but will give you insight to how media, programs and data are encoded and used by computers so you can make more sense of why computers behave the ways they do and solve some of your problems with greater efficiency and less frustration. We will provide an approachable overview of how a computer works, by both looking at their history and breaking one down to explain individual components, before highlighting some of the tradeoffs to consider when buying a computer. We will provide practical, simple, and actionable advice on digital security and show you a few "pro tips" on how to make the most of your workstation, phone, or whatever device you happen to use. 

Access Course Slides: (Slides)

Beginner, 2 hours
Prerequisites: None

This is a hands-on introductory workshop focused on fostering best practices for data organization in spreadsheets. Participants will learn how to organize their data to prioritize clarity, reproducibility, and interoperability, such that they can seamlessly load their data later into an analysis program. The spreadsheet programs covered will be Microsoft Excel and Google Sheets. The examples explored will be from the field of Social Sciences, but the principles are relevant for any discipline that collects data in spreadsheets. No previous experience with spreadsheets or programming is required.

ACENET Basic Series

6 hours, total

The essentials of supercomputing at ACENET

New Digital Research Alliance of Canada/ACENET users are strongly encouraged to complete all four sessions in the series.

Experienced users seeking greater efficiency from the computing clusters are encouraged to complete Introduction to Shell Scripting and Job Scheduling with Slurm

Frequency and Availability: Watch our training schedule for regular opportunities to take the Basics Series or submit a training request.

Immediate Access: Each Basic Series session has a corresponding YouTube tutorial. See course descriptions for links.

Beginner, 1.5 hours
Prerequisites: None

Researchers across many disciplines use HPC to tackle analyses that would be either inefficient or impossible on a desktop.

This session offers:

  • a basic description of the infrastructure and support accessible through the Digital Research Alliance of Canada (the Alliance) and ACENET, with entry-level advice about how to begin.
  • an overview of the software packages available through the Alliance and ACENET for applications, data analysis, software development and compiling code, as well as the process of requesting specific software relevant to your work.
  • insight into the potential of parallel computing to accelerate your analysis.

Access Course Slides: (Slides)

YouTube Tutorial: (Video)

Beginner, 1.5 hours
Prerequisites: None
Requirements: a laptop, and sign up for a Digital Research Alliance of Canada account, unless you already have one.

This session involves practical exercises.

To access and use the ACENET and Digital Research Alliance of Canada HPC clusters from your desktop, you will use a terminal interface called “Linux”. You will use Linux to direct the uploading, processing, and retrieval of your data.  In this session, learn how to get started with Linux and how to perform some basic tasks:

  • create and navigate directories for your data
  • load files
  • manage your storage
  • run programs on the computing clusters
  • set file permissions 

Access Course Slides: (Slides)

YouTube Tutorial: (Video)

Beginner or Experienced, 1.5 hours
Prerequisite: ACENET Basic Series Introduction to Linux, or previous experience with Linux
Requirements: a laptop, and sign up for a Digital Research Alliance of Canada/ACENET account in advance, unless you already have one.

This session involves practical exercises.

This session is designed for both new and experienced shell script users. You’ll learn how to name, locate and set permissions for executable files, take input and produce output. Learn about job scripts, shell variables, and looping commands. Refine your use of shell script to exercise the power of the command line.  Save time, automate file management tasks, and use Linux more effectively.


Access Course Slides: (Slides)
YouTube Tutorial: (Video
Alternate YouTube Tutorial: (Video 2)

Beginner, 1.5 hours
Prerequisites: Completion of Basic Series: Introduction to Linux and Introduction to Shell Scripting or prior experience with both.
Requirements: a laptop, and sign up for a Compute Canada account, unless you already have one.

This session involves practical exercises.

Compute Canada’s national systems use the job scheduler called “Slurm”. This session is designed for users who have had no experience with using Slurm, are transitioning to Slurm, or are seeking to improve efficiency with Slurm. You will learn how Slurm works and how it allocates jobs, enabling you to

  • minimize wait time by framing reasonable requests
  • optimize use of the resources to achieve efficiency
  • increase throughput
  • run more jobs simultaneously
  • troubleshoot and address crashes

Access Course Slides: (Slides)
YouTube Tutorial: (Video)

Introductory Programming

Beginner, 2 days
Prerequisites: None
Requirements: a laptop with a Mac, Linux or Windows operating system (not a tablet, Chromebook, etc), on which you have administrative privileges, as you will need to pre-load specific software packages.

This workshop involves practical exercises.

Software Carpentry teaches basic computational research skills. Using software-carpentry.org materials this workshop introduces you to the fundamentals of the Unix Shell, Version Control with Git and Python.

This hands-on workshop covers the fundamentals of Python, including data types, conditional statements, loops and functions, as well as program design, version control, data management, and task automation. Participants will be encouraged to help one another and to apply what they have learned to their own projects. The goal is to teach the practical knowledge needed to start programming, debugging and using Python in everyday tasks.

Of interest to: active computational researchers and their teams; companies using computational tools for R&D; anyone considering a research project that requires computational research; and students eager to enhance their career choices by expanding their skill set.

Beginner, 2 days
Prerequisites: None
Requirements: a laptop with a Mac, Linux or Windows operating system (not a tablet, Chromebook, etc), on which you have administrative privileges, as you will need to pre-load specific software packages.

This workshop involves practical exercises.

Software Carpentry teaches basic computational research skills. Using software-carpentry.org materials this workshop introduces you to the fundamentals of the Unix Shell, Version Control with Git and R.

This hands-on workshop covers the fundamentals of R, including data types, conditional statements, loops and functions, as well as program design, version control, data management, and task automation. Participants will be encouraged to help one another and to apply what they have learned to their own projects. The goal is to teach the practical knowledge needed to start programming, debugging and using R in everyday tasks.

Of interest to: active computational researchers and their teams; companies using computational tools for R&D; anyone considering a research project that requires computational research; and students eager to enhance their career choices by expanding their skill set.

Beginner, 1 day
Prerequisites: None
Requirements: a laptop with a Mac, Linux or Windows operating system (not a tablet, Chromebook, etc), on which you have administrative privileges, as you will need to pre-load specific software packages.

This workshop involves practical exercises.

Software Carpentry teaches basic computational research skills. Using software-carpentry.org materials this workshop introduces you to the fundamentals of MATLAB.

This is a beginner level workshop that is hands-on, covering the fundamentals of MATLAB, including data types, conditional statements, loops and functions, as well as program design, version control, data management, and task automation. Participants will be encouraged to help one another and to apply what they have learned to their own research problems. The goal is to teach the practical knowledge needed to start programming, debugging and using MATLAB in everyday tasks.

Of interest to: active computational researchers and their teams; companies using computational tools for R&D; anyone considering a research project that requires computational research; and students eager to enhance their career choices by expanding their skill set.

Beginner, 2 days
Prerequisites: None
Requirements: A laptop and sign up for a Digital Research Alliance of Canada account unless you already have one

This session involves practical exercises

This is an introductory workshop for researchers and students who are interested in programming basics for humanities and social sciences applications. No prior experience in programming is necessary. Topics covered include an introduction to Unix Shell and Linux, websites and versioning with Git, regular expressions, Python for humanities and web scraping with Python. Applications include web scraping, survey field restriction, websites and text analysis. The workshop will use software-carpentry.org materials.

Beginner, 2 hours
Prerequisites: None

This workshop will introduce you to the basic techniques for collecting information from social media sites and the web in general. We will cover Twitter, Facebook, and general web pages. We’ll spend most of our time looking at Twitter, but the basics of collecting information from Facebook will also be introduced, and we’ll talk generally about a few methods for collecting from web pages. Working examples will be shared throughout that you can take and use (almost) immediately. Prior programming experience is neither needed nor expected. The final 30 minutes will be used for open consultation about any scraping projects you are currently engaged in, planning, or just starting to think about.

Beginner, 9 hours
Prerequisites: None
Requirements: a laptop with a Mac, Linux or Windows operating system (not a tablet, Chromebook, etc), on which you have administrative privileges, as you will need to pre-load specific software packages.

Introductory Python for Ecologists is presented jointly by ACENET and the Ocean Tracking Network (OTN). Over multiple days, it explores data analysis and visualization with Python, based on the Data Carpentry Lessons. Each session builds on the last.

The series starts with basic Python syntax and the Jupyter notebook interface. It then moves to importing CSV files using the Pandas package to manipulate and summarize data frames, and covers a brief introduction to plotting. Finally, it demonstrates how to work with databases directly from Python.

No previous coding experience is necessary.

 

Beginner, 9 hours
Prerequisites: None
Requirements: a laptop with a Mac, Linux or Windows operating system (not a tablet, Chromebook, etc), on which you have administrative privileges, as you will need to pre-load specific software packages.

The Introductory R for Ecologists workshop series is presented jointly by ACENET and the Ocean Tracking Network (OTN). Over multiple days, it explores data analysis and visualization with R, based on the Data Carpentry Lessons. Each session builds on the last.

The series begins with basic R syntax and the R Studio notebook interface. It then moves to importing CSV files, the structure of data frames, how to deal with factors, how to add/remove rows and columns, how to calculate summary statistics from a data frame, and a brief introduction to plotting. Finally, it demonstrates how to work with databases directly from R.

No previous coding experience is necessary.

 

Cloud

Beginner, 1 hour
Prerequisites: None

This session provides an introduction to the Digital Research Alliance of Canada cloud which is used to create and manage virtual machines. Virtual machines allow great flexibility but require knowledge and effort to configure them for your specific needs. Virtual machines can be used for diverse work flows, from processing particle physics data to running humanities and social sciences websites. Learn how to create a virtual machine and how to start using it.

Access Course Slides:  Slides

Beginner, 1 hour
Prerequisites: None

In this session, we will give an overview of what a cloud is generally, as well as the Digital Research Alliance of Canada cloud specifically. To demonstrate what may be accomplished with a cloud, different cloud usage cases for the humanities and social sciences will be presented followed by a discussion of two common methods for website generation, a common use for the cloud. We will finish with a brief discussion of server security and the implications it has for the two methods presented for creating websites.

Access Course Slides: ( Slides)

Beginner, 4 x 3 hours
Prerequisites: Software Carpentry's Unix Shell, or similar experience

This is a beginner level series. Cloud computing provides great flexibility, allowing complete control of the computing environment. In addition, the environment can be copied, backed up, created and recreated in an automated way. In these lessons, we will start you on the path towards making use of the great flexibility and power of cloud computing. We will be using the popular static website generator Jekyll. This is an in-depth workshop for those with no prior cloud experience, at the end of which you will have a virtual machine and a Jekyll website.

Access Course Slides: (Slides)

Beginner to Intermediate, 1 hour
Prerequisites: None

This is a beginner to intermediate level session. Learn the best practices at the Digital Research Alliance of Canada for minimizing your risk for cyber attacks. Topics will include SSH security, firewalls, using logs and creating backups; all applied to running and maintaining cloud projects at the Digital Research Alliance of Canada.

Access Course Slides: (Slides)

Data Management

Beginner, 1 hour
Prerequisites: None

This presentation will give an introduction to the Portage Network, an initiative of the Canadian Association of Research Libraries (CARL), with the goal of building research data management (RDM) capacity in Canada through a network of experts in a growing community of practice. The session will focus on the importance of data management and progress made by the Portage Network in finding solutions to practical challenges researchers and institutions face in managing their research data and meeting journal and funding-agency requirements. Specifically, we will cover the tools and services available to Atlantic Canadian researchers that can help you better manage your data, enhance the discoverability of your research, and ensure that your valuable research data are preserved for future reuse.

Beginner, 2 days
Prerequisites: None
Requirements: laptop with a Mac, Linux or Windows operating system (not a tablet, Chromebook, etc) on which you have administrative privileges, as you will need to pre-load specific software packages.

This workshop involves practical exercises.

This is an introductory workshop to teach core data skills for efficient, shareable, and reproducible research practices covering the early stages of the lifecycle of data-driven research and projects. Through a two-day hands-on approach, the focus is on the introductory computational skills needed for data organization and analysis. This workshop is domain-specific, focusing on examples and challenges from Humanities and Social Sciences research fields. The workshop will use data-carpentry.org materials.

Beginner, 1 hour
Prerequisites: None

This session will explore what sensitive data are, the different levels of data sensitivity, address sensitive data management, ethical handling, cybersecurity considerations, and resources for dealing with sensitive data in Atlantic Canada. We will also provide you with a customizable toolkit to help you manage and maintain your data ethically and responsibly. Discussion will be encouraged about your own experiences, considerations, frustrations and solutions.

Cybersecurity

Beginner, 1.5 hours
Prerequisites: None

Join the ACENET cybersecurity team for a session that will tackle the basics of information security. Topics will include a discussion of the social and psychological aspects of avoiding common attacks. Safe browsing, file sharing, video conferencing, and tools for online collaboration will all be covered in a discussion of how to stay safe while living and working on the internet. Email security, passwords and password management, encryption basics, and best practices for securing the home/office environment will all be addressed. Bring your own questions and concerns.

Beginner to Intermediate, 1 hour
Prerequisites: None

This is a beginner to intermediate level session. Learn the best practices at Compute Canada for minimizing your risk for cyber attacks. Topics will include SSH security, firewalls, using logs and creating backups; all applied to running and maintaining cloud projects at Compute Canada.

Access Course Slides: (Slides)

Github

Beginner, 1 hour
Prerequisites: None

A key concept in software engineering for decades, version control is integral to effective management and manipulation of evolving work in a digital environment. You may have heard of Git, but there are many competing version control tools available, and they all exist in a large “ecosystem” of related web services. Learn how to assess your options and choose a combination of version control tools and services for your work.

Access Course Slides: (Slides)

Beginner, 4 hours
Prerequisites: None

Version control is the practice of managing and sharing changes to documents, programming code, websites or any other files to keep track of what’s been changed, by whom, when and why. All previous versions of files are saved and you can even revert to a previous version. Git is a version control software.

Git-portal sites, like GitHub or GitLab, offer many useful features to facilitate collaborative development.

This beginner level session will introduce you to Git. We will show you how to create a repository, record changes to files, explore and restore from the recorded history and how to resolve conflicts (when one member overwrites another’s changes).

Lesson Material: http://github-pages.ucl.ac.uk/git-novice/

Beginner, 4 hours
Prerequisites: Basic experience using Git

Version control is the practice of managing and sharing changes to documents, programming code, websites or any other files to keep track of what’s been changed, by whom, when and why. All previous versions of files are saved and you can even revert to a previous version. Git is a version control software.

Git-portal sites, like GitHub or GitLab, offer many useful features to facilitate collaborative development.

This session will focus on collaborative development workflows using Git-collaboration sites like GitHub, GitLab or Bitbucket and will demonstrate how to work with branches, issue tracking, contribute to projects using pull-/merge-requests, code-review, how to run CI/CD-pipelines and use other common features of these platforms.

Lesson Material: https://acenet-arc.github.io/git-collaboration/

Big Data

Beginner, 1 hour
Prerequisites: None

Designed to serve anyone considering a project that involves complex analysis, and/or a large data set, of special interest to researchers working in the humanities and natural sciences, eager to explore new possibilities.

This short introduction to data management and analysis tools will help you consider your data, and understand which aspects of the Big Data Ecosystem pertain to your research. Data analysis has been around for a long time – but today’s researchers manipulate an unprecedented variety and volume of data from myriad sources, and use advanced computing for high velocity processing.

It’s no surprise that diverse data sources (e.g., GPS coordinates, videos from mobile devices, and massive on-line archives of digitized manuscripts etc.) require strategic approaches to management and analysis. This seminar will help you choose an approach that fits your data.

Parallel Programming

Beginner, 1 hour
Prerequisites: Prior programming experience or completion of the ACENET Basics Series

Parallel computing is the business of breaking a large problem into tens, hundreds, or even thousands of smaller problems which can then be solved at the same time, possibly on more than one computer.  It can reduce processing time to a fraction of what it would have been, or enable you to tackle larger, more complex problems, or both. It’s widely used in big data mining, AI, time-critical simulations, and advanced graphics such as augmented or virtual reality. It’s used in fields as diverse as genetics, biotech, geographic information systems, computational fluid dynamics, medical imaging, drug discovery, and agriculture.

This session introduces the terminology and concepts of parallel programming. Learn about parallel computer architectures, approaches to parallel program design and performance measurement.

Access Course Slides

This is a one-hour crash course in the primary tool for writing message-passing parallel programs. It covers the basic concepts of MPI, including sending and receiving messages, coordination, and data synchronization. This workshop assumes that you have some programming experience with one or more languages and have take the ACENET Basics sessions. (1 hour) (Slides)

Participants will learn about the primary tool for writing shared-memory parallel programs. The session covers OpenMP and provides a short introduction to POSIX threads. You will learn about the most common techniques, such as parallel for loops, barriers and critical sections. This workshop assumes that you have programming experience with one or more languages and have taken the ACENET Basics sessions. (1 hour) (Slides)

Offered annually in spring

The school is designed for participants familiar with the Linux command line and who have some level of programming experience. Completion of the ACENET Basics Series, or equivalent experience, is strongly recommended. The mornings will consist of lectures, with the afternoons following a lab format, where participants will be given exercises, or can bring specific problems to instructors related to their research. Topics include general parallel computing, OpenMP, GPGPU, and Message Passing Interface (MPI). (3.5 days)

Machine Learning

Beginner, 2 hours
Prerequisites: None

Are you curious about machine learning, but not sure where to start, or if the discipline is for you? Join ACENET for a survey and explanation of several methods used to make machines learn. From simple models like Naive Bayes, Regression and Decision Trees to an introduction to Support Vector Machines and Feed-Forward Neural Networks. This talk is geared to be approachable to a novice audience, curious about machine learning, but not necessarily math or computer science majors. Methods and techniques will be explained using metaphors, examples, and clear language, without diving too deeply into the math and calculus on which these techniques are based.

Beginner, 2 hours
Prerequisites: None

What do you need to make a machine learning project successful? How can you make smart decisions about setup and execution of a machine learning project? How should you hire and support the staff working on the project? We hope to provide clear, thoughtful answers to these, and other common questions to get you thinking about whether machine learning is a technology that you and your company or group should think about investing in. We will discuss topics like data collection, the trade-offs involved in choosing a model, and what to expect from a successful project, as well as how to salvage useful by-products and skills when projects don’t go as planned.

This is a beginner session oriented to business owners and project managers curious to learn more about machine learning, or who may have an idea that involves machine learning and want to know where to begin.

Beginner, 3 hours
Prerequisites: None

How do computers understand language? It seems impossible that zeroes and ones could ever add up to words that humans can understand, but machine language has come a long way in the past few years. Let us take you behind the code to explain how machines simulate language comprehension, and why it’s a far more complicated problem than “bonjour = hello”.

This talk is aimed at an audience who is not necessarily familiar with computers or language comprehension, but would like a primer to the field, and what it can realistically do. We will explain natural language processing from the perspective of machines that cannot understand words, but capture semantic meaning by processing data.

Intermediate, 3 hours
Prerequisites: Familiarity with feed-forward neural networks

Have you wondered how machine learning models can suddenly do so many different types of work? How is it that machines can learn things like language, vision and translation in such a short amount of time, and what has helped drive these kinds of improvements? The obvious answers - big data and big processors - are only part of the story, and to understand the full picture, we need to take a closer look at the models driving the AI revolution. This talk is aimed at people who are familiar with the basics of feed-forward neural networks, and will involve an in-depth explanation of how information is represented for machines to learn on, how machines can make sense of information, and the challenges presented.

Computational Fluid Dynamics (CFD)

Tools & Techniques

Intermediate, 1 hour
Prerequisites: ACENET Basics; programming experience

Many programs come as source code and a mysterious Makefile, with instructions like “make all; make install”. Here’s how it works, what can go wrong, how to fix it, and maybe even how to write your own. Participants must have some programming experience and have taken the ACENET Basics sessions.

Access Course Slides:  (Slides)

Advanced, 1 hour

This workshop assumes that you have some experience with one or more programming languages. It covers some basic optimization techniques that are general in nature, as well as several tips for specific languages.

Intermediate, 1 day

This workshop introduces researchers to the theory, key ideas, and techniques of Molecular Dynamics. A practical application targeted at biosimulations is introduced using the GROMACS package.

Coding

This workshop will cover an introduction to the Python programming language, including syntax, variables and data structures. While not necessary, some experience with programming concepts would be helpful. By the end of the workshop, you should be able to read Python programs and be able to write simple ones of your own. (2 hours) (Slides)

Intermediate, 1 hour

This lecture assumes that you have some experience with the Python programming language. It will cover several packages, including numpy and scipy, that are useful in doing scientific computations. Several different examples will be discussed, including solving PDEs, solving systems of equations, and even doing symbolic computations.

Access Course Slides:  (Slides)

Intermediate, 1.5 hours
Prerequisites: Previous Python experience

This workshop assumes that you have some previous Python experience. You will learn many of the tools available to profile your code and find the trouble spots. Once located, the second half of the workshop presents a series of tips and tricks that may be able to help you speed up the execution of your program. 

Advanced, 4 hours
Prerequisites: Familiarity another programming language

This workshop will be an introduction to the Fortran programming language. Participants must be familiar with another programming language. Fortran, one of the initial high-level programming languages, continues to be an excellent option for high-performance computing due to its superb performance. The newer versions of Fortran offer many modern features, including object-oriented programming capabilities to programmers. In this course some of these features will be covered.

Advanced, 4 hours
Prerequisites: Familiarity with another programming language 

A great deal of high-performance computing software is written in C, but few universities offer courses in the language any more. If you have to work with “legacy code” written in C, adding features, porting to a new machine, or patching errors, or if you want to write user-defined functions for engineering packages such as Fluent, then this workshop is for you.

Access Course Slides: (Slides)

Advanced, 4 hours
Prerequisites: “C as a Second Language” 

A great deal of high-performance computing software is written in C++, but few universities offer courses in the language any more. If you have to work with “legacy code” written in C++, adding features, porting to a new machine, or patching errors, or if you want to extend packages like OpenFOAM which are written in C++, then this workshop is for you.

C++ was designed as an extension of the C language but has its own distinct idiom or style. This workshop assumes that you already know C to the level reached in the prerequisite ACENET workshop, “C as a Second Language”.

Access Course Slides: (Slides)