Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/404.html" rel="permalink">Page Not Found</a>
  
</h2>



    


<p class="archive__item-excerpt" itemprop="description"><p>Page not found. Your pixels are in another canvas.</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/" rel="permalink"></a>
  
</h2>



    


<p class="archive__item-excerpt" itemprop="description"><p>About me</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/archive-layout-with-content/" rel="permalink">Archive Layout with Content</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/categories/" rel="permalink">Posts by Category</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/collection-archive/" rel="permalink">Posts by Collection</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/cv/" rel="permalink">CV</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/assets/css/main.css" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/markdown/" rel="permalink">Markdown</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/non-menu-page/" rel="permalink">Page not in menu</a>
  
</h2>



    


<p class="archive__item-excerpt" itemprop="description"><p>This is a page not in th emain menu</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/page-archive/" rel="permalink">Page Archive</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/portfolio/" rel="permalink">Portfolio</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publications/" rel="permalink">Publications</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/sitemap/" rel="permalink">Sitemap</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/tags/" rel="permalink">Posts by Tags</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talkmap.html" rel="permalink">Talk map</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/" rel="permalink">Talks and presentations</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/teaching/" rel="permalink">Teaching</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/terms/" rel="permalink">Terms and Privacy Policy</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/year-archive/" rel="permalink">Blog posts</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/assets/css/style.css" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/about/" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/about.html" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/resume" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/md/" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/markdown.html" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/nmp/" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/nmp.html" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/wordpress/blog-posts/" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/redirects.json" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/markdown_generator/" rel="permalink">Jupyter notebook markdown generator</a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/sitemap.xml" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/robots.txt" rel="permalink"></a>
  
</h2>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/feed.xml" rel="permalink"></a>
  
</h2>

Posts

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/posts/2021/03/cpp-custom-sort/" rel="permalink">Writing your custom sort functions in C++ </a>
  
</h2>


  <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 


  
  1 minute read

</p>

     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2021-03-11T00:00:00-08:00">March 11, 2021</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>In this blog post I will quickly go over how to define your custom comparator for <code class="language-plaintext highlighter-rouge">sort()</code> for your data structure in C++ based on two example cases.</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/posts/2020/11/pytorch-multi-gpu-issue/" rel="permalink">A gotcha with multi-GPU training of dynamic neural networks in PyTorch </a>
  
</h2>


  <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 


  
  5 minute read

</p>

     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2020-11-04T00:00:00-08:00">November 04, 2020</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>I recently ran into an issue with training/testing dynamic neural network architectures on multiple GPUs in PyTorch. In this short blog post I will summarize the issue and suggest a possible workaround for others who might come across it.</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/posts/2020/10/abs-reasoning/" rel="permalink">Abstract reasoning and conceptual generalisation in deep learning </a>
  
</h2>


  <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> 


  
  7 minute read

</p>

     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2020-10-07T00:00:00-07:00">October 07, 2020</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p><em>In this blog post I will go over the problem of abstract visual reasoning; which has recently emerged as a challenging domain for machine learning tasks. Before I do that I will explain the issues with ‘conceptual’ generalisation in machine learning.</em></p>

</p>

portfolio

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/portfolio/portfolio-1/" rel="permalink">Under construction </a>
  
</h2>



    


<p class="archive__item-excerpt" itemprop="description">

</p>

publications

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publication/2018-11-02-bigdata-mrcnn-01" rel="permalink">Road Damage Detection And Classification In Smartphone Captured Images Using Mask R-CNN </a>
  
</h2>



    
      <p>Published in <i>IEEE BigData Cup 2018 workshop</i>, 2018 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>We fine-tuned a Mask R-CNN trained on MS-COCO dataset to detect and classify road damage in real-world images of roads taken from smartphones.</p>

</p>

  <p>Recommended citation:  <a href=""><u></u></a></p>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publication/2019-08-02-icdar-tvqa-03" rel="permalink">OCR-VQA: Visual question answering by reading text in images </a>
  
</h2>



    
      <p>Published in <i>International Conference on Document Analysis and Recognition</i>, 2019 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>We released the first dataset for Visual Question Answering that requires understanding scene-text through Optical Character Recognition (OCR).</p>

</p>

  <p>Recommended citation:  <a href=""><u></u></a></p>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publication/2019-11-02-iccv-tkvqa-04" rel="permalink">From Strings to Things: Knowledge-enabled VQA Model that can Read and Reason </a>
  
</h2>



    
      <p>Published in <i>International Conference on Computer Vision</i>, 2019 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>We released the first dataset for Visual Question Answering (VQA) that requires traversing an external knowledge-graph as well as understanding scene-text through Optical Character Recognition (OCR). We also proposed a Graph-RNN based approach for VQA with external knowledge and demonstrated state-of-the-art results.</p>

</p>

  <p>Recommended citation:  <a href="http://openaccess.thecvf.com/content_ICCV_2019/papers/Singh_From_Strings_to_Things_Knowledge-Enabled_VQA_Model_That_Can_Read_ICCV_2019_paper.pdf"><u>http://openaccess.thecvf.com/content_ICCV_2019/papers/Singh_From_Strings_to_Things_Knowledge-Enabled_VQA_Model_That_Can_Read_ICCV_2019_paper.pdf</u></a></p>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publication/2019-12-01-tifs-oitl-02" rel="permalink">Operator-in-the-Loop Deep Sequential Multi-camera Feature Fusion for Person Re-identification </a>
  
</h2>



    
      <p>Published in <i>IEEE Transactions on Information Forensics and Security</i>, 2019 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>We developed a human-in-the-loop system to rank image retrieval results from an image recognition CNN and then merge them with human choice for person re-identification. Our method showed consistent improvement in performance across 6 cameras compared to only relying on model insights.</p>

</p>

  <p>Recommended citation:  <a href="https://ieeexplore.ieee.org/abstract/document/8922622"><u>https://ieeexplore.ieee.org/abstract/document/8922622</u></a></p>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publication/2020-06-14-cvprw-rt-05" rel="permalink">Response Time Analysis for Explainability of Visual Processing in CNNs </a>
  
</h2>



    
      <p>Published in <i>Computer Vision and Pattern Recognition (CVPR) Workshop</i>, 2020 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>We adapt response time evaluation in human psychophysics for deep learning to calculate Neural Response Times (NRT) by profiling dynamic DNNs. We verify that NRT is able to corroborate known effects about the feature space composed by object recognition models when tested on OOD view points. We further demonstrate that NRT can be used to causally verify Scene Grammar effects in identifying semantic and syntactic inconsistencies across visual scenes.</p>

</p>

  <p>Recommended citation:  <a href="https://openaccess.thecvf.com/content_CVPRW_2020/papers/w26/Taylor_Response_Time_Analysis_for_Explainability_of_Visual_Processing_in_CNNs_CVPRW_2020_paper.pdf"><u>https://openaccess.thecvf.com/content_CVPRW_2020/papers/w26/Taylor_Response_Time_Analysis_for_Explainability_of_Visual_Processing_in_CNNs_CVPRW_2020_paper.pdf</u></a></p>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publication/2021-10-11-iccv-sgtrans-06" rel="permalink">Context-aware Scene Graph Generation with Seq2Seq Transformers </a>
  
</h2>



    
      <p>Published in <i>International Conference on Computer Vision</i>, 2021 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>We demonstrated state-of-the-art results in generating scene graphs from natural images by using a sequential subject-&gt;predicate-&gt;object generation using a transformer encoder on object bounding boxes derived using a detection model.</p>

</p>

  <p>Recommended citation:  <a href="https://openaccess.thecvf.com/content/ICCV2021/papers/Lu_Context-Aware_Scene_Graph_Generation_With_Seq2Seq_Transformers_ICCV_2021_paper.pdf"><u>https://openaccess.thecvf.com/content/ICCV2021/papers/Lu_Context-Aware_Scene_Graph_Generation_With_Seq2Seq_Transformers_ICCV_2021_paper.pdf</u></a></p>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publication/2021-10-25-wiley-nrt-07" rel="permalink">Neural response time analysis: Explainable artificial intelligence using only a stopwatch </a>
  
</h2>



    
      <p>Published in <i>Applied AI Letters</i>, 2021 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>We extended our work on Neural Response Time analysis from CVPR-W 2020 with an additional experiment showing that NRTs are sensitive to intra-class variations, yet can be used to reliably inform between intra-class variations between objects.</p>

</p>

  <p>Recommended citation:  <a href="https://onlinelibrary.wiley.com/doi/pdf/10.1002/ail2.48"><u>https://onlinelibrary.wiley.com/doi/pdf/10.1002/ail2.48</u></a></p>
<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/publication/2022-01-27-mascthesis-08" rel="permalink">Inductive Biases For Higher-Order Visual Cognition </a>
  
</h2>



    
      <p>Published in <i>Master's Thesis</i>, 2022 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>We demonstrated state-of-the-art results in generating scene graphs from natural images by using a sequential subject-&gt;predicate-&gt;object generation using a transformer encoder on object bounding boxes derived using a detection model.</p>

</p>

  <p>Recommended citation:  <a href="https://atrium.lib.uoguelph.ca/xmlui/bitstream/handle/10214/26739/Shekhar_Shashank_202201_MASc.pdf"><u>https://atrium.lib.uoguelph.ca/xmlui/bitstream/handle/10214/26739/Shekhar_Shashank_202201_MASc.pdf</u></a></p>

talks

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/2019-10-10-tkvqa" rel="permalink">Knowledge-Enabled Visual Question Answering that utilizes scene text </a>
  
</h2>



    
     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2019-10-10T00:00:00-07:00">October 10, 2019</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>I gave a talk on my research work on visual question answering where models can successfully utilize scene text information as well as external world knowledge from knowledge graphs. The talk was a summary of our research published at ICDAR and ICCV. Slides available:</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/2020-03-01-dynamic-inference" rel="permalink">Dynamic Inference Models </a>
  
</h2>



    
     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2020-03-01T00:00:00-08:00">March 01, 2020</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>I gave a talk on dynamic inference models in deep learning i.e. models that can perform a variable amount of computation depending on the input complexity. Slides available:</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/2020-06-10-prob-prog" rel="permalink">Probablistic Programming Tutorial </a>
  
</h2>



    
     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2020-06-10T00:00:00-07:00">June 10, 2020</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>I gave a tutorial on probabilistic programming using Pyro. Code is available at this Github repository <a href="https://github.com/sshkhr/ppl_tutorial">https://github.com/sshkhr/ppl_tutorial</a>. Slides below:</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/2020-09-19-artificial-cognition" rel="permalink">Artificial Cognition </a>
  
</h2>



    
     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2020-09-10T00:00:00-07:00">September 10, 2020</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>I gave a talk on Explainable Artificial Intelligence (XAI) using methods from Cognitive Science to the Data Science Club at my alma mater, Indian Institute of Technology (ISM) Dhanbad. This talk was based on work done by advisor/collaborator Eric J Taylor and myself for our CVPR workshop paper: <a href="https://openaccess.thecvf.com/content_CVPRW_2020/papers/w26/Taylor_Response_Time_Analysis_for_Explainability_of_Visual_Processing_in_CNNs_CVPRW_2020_paper.pdf">Response Time Analysis for Explainability of Visual Processing in CNNs</a>. Slides available:</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/2020-09-26-opacity-in-ai" rel="permalink">Opacity in artificial intelligence </a>
  
</h2>



    
     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2020-09-26T00:00:00-07:00">September 26, 2020</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>For my graduate course on Artificial Intelligence and Society, I gave a presentation on the issue of opacity and the need for interpretability in artificial intelligence as well as some research directions in interpretability research. Slides available:</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/2020-09-19-abstract-visual-reasoning" rel="permalink">Abstract Visual Reasoning </a>
  
</h2>



    
     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2020-10-01T00:00:00-07:00">October 01, 2020</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>I gave a talk on the problem of Abstract Visual Reasoning in computer vision. We discussed ideas on generalisation across visual concepts, compositionality, the role of inductive biases, symbolic knowledge etc. Slides available:</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/2021-01-15-reason" rel="permalink">What can neural networks reason about? </a>
  
</h2>



    
     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2021-01-12T00:00:00-08:00">January 12, 2021</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>I gave two talks summarizing the ICLR 2020 paper <a href="https://arxiv.org/abs/1905.13211">What Can Neural Networks Reason About?</a>. This paper proposes a theoretical framework to understand the role of inductive biases on the ability of neural networks to reason about problems which have algorithmic solutions. Slides available:</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/talks/2021-03-22-dnc" rel="permalink">Differentiable Neural Computers </a>
  
</h2>



    
     <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Published:</strong> <time datetime="2021-03-22T00:00:00-07:00">March 22, 2021</time></p>
    


<p class="archive__item-excerpt" itemprop="description"><p>I presented the DeepMind paper <a href="https://deepmind.com/blog/article/differentiable-neural-computers">Hybrid computing using a neural network with dynamic external memory</a> from 2016. This paper proposes using a multi head attention framework to train a neural network + memory model to perform computing operations. Slides available:</p>

</p>

teaching

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/teaching/2017-online-ml" rel="permalink">Community Teaching Assistant: Machine Learning </a>
  
</h2>



    
      <p> Online course, <i>Coursera.org</i>, 2017 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>Worked as community TA for the Machine Learning online course on Coursera.org. Addressed students’ doubts and provided support on the discussion forums.</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/teaching/2020-winter-linalg" rel="permalink">Graduate Teaching Assistant: Engineering Analysis </a>
  
</h2>



    
      <p> Undergraduate course, <i>University of Guelph, Department of Engineering</i>, 2020 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>Worked as a teaching assistant for an undergraduate course on linear algebra. Prepared and delivered modules on least squares approximation, PCA and Markov chains</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/teaching/2020-fall-optimization" rel="permalink">Graduate Teaching Assistant: Optimization </a>
  
</h2>



    
      <p> Undergraduate course, <i>University of Guelph, Department of Engineering</i>, 2020 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>Worked as a teaching assistant for an undergraduate course on optimization. Held weekly tutorial sections on linear and dynamic programming, markov chains etc</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/teaching/2020-fall-learnai" rel="permalink">Instructor: LearnAI </a>
  
</h2>



    
      <p> Undergraduate course, <i>University of Toronto</i>, 2020 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>Instructor for the <a href="https://www.uoft.ai/">LearnAI</a> course to ~100 undergradutes (freshmen up to senior) supported by a team of 6 TAs. Taught modules on introduction to machine learning, scientific python stack and deep learning in a project oriented course.</p>

</p>

<h2 class="archive__item-title" itemprop="headline">
  
    <a href="https://sshkhr.github.io/teaching/2021-winter-complex" rel="permalink">Graduate Teaching Assistant: Modelling Complex Systems </a>
  
</h2>



    
      <p> Undergraduate course, <i>University of Guelph, Department of Engineering</i>, 2021 </p>
    


<p class="archive__item-excerpt" itemprop="description"><p>Worked as the only teaching assistant for a programming intensive undergraduate course on modelling complex systems. Held weekly tutorial sections on programming (using Python), Graphs (using NetworkX), Cellular Automata and Agent Based Models. Provided support on development technologies including Git, Restructured Text markup, and Jupyter Labs to students.</p>

</p>