Non-Research Tips for Information
Science Researchers (Summer 2024)
Apr 10, 2024
Week 1: Introduction and Review of Fundamental Concepts

Yusuke Matsui(UTokyo)

Koya Narumi(Keio Univ.)

Yuki Koyama(AIST)Jun Kato(AIST)

1

Yusuke Matsui

Lecturer (Assistant Professor), the University of Tokyo, Japan
http://yusukematsui.me@utokyo_bunny@matsui528✓ Computer vision, Data structure, Machine learning✓ Vector database✓ ML-enhanced DS

ARM impl. of Faiss[Matsui+, ICASSP 22]

Nearest neighbor search[Ono & Matsui, ACMMM 23]

ML-enhanced Bloom Filter[Sato & Matsui, NeurIPS 23]

2

Koya Narumi

Associate Professor, Keio University, Japan
https://narumi.me/@koya_narumi✓ Digital Fabrication✓ Shape-changing Interfaces✓ Human-Computer Interaction

Self-healing UI[Narumi+, UIST 18]

Inkjet 4D Print[Narumi & Koyama+, SIGGRAPH 23]

TYPE-X by ISSEY MIYAKE[Paris Fashion Week 24]

3

Yuki Koyama
Senior Researcher, AIST, Japan / Technical Advisor, Graphinica, Inc., Japan
https://koyama.xyz@bravery_@yuki-koyama✓ Computer graphics (and Anime production)✓ Human-computer interaction✓ Human-in-the-loop design optimization

Design suggestion[Koyama+, UIST 2022]

Interactive design optimization[Koyama+, SIGGRAPH 2020]

Advanced image editing[Koyama+, CGF 2018]

4

The topic that I will cover in this course: 3DCG illustrations
Good illustrations help people better understand your research!!
3DCG is sometimes an effective technique for this purpose.

Math concepts

Scientific simulation

5

The topic that I will cover in this course: 3DCG illustrations
Good illustrations help people better understand your research!!
3DCG is sometimes an effective technique for this purpose.

Robot planningMechanical assembly6Jun Kato

flying to Paris

Senior Researcher, AIST, Japan / Technical Advisor, Arch Inc, Japan
https://junkato.jp@junkato@arcatdmz✓ Human-Computer Interaction✓ Creativity Support (“Toolsmith researcher” forprogrammers, musicians, anime creators, etc.)“f3.js” for parametric device
design [Kato+, ACM DIS '17]

“Lyric app” dev framework[Kato+, ACM CHI '23]

Storyboarding tool “Griffith”[Kato+, ACM CHI '24 (to appear)]7https://blog.junkato.jp/ja

Non-research tips for students
but a bit outdated + in Japanese

I hope to have my talks in June that are 1) more practical (web, cloud, CI/CD) and 2) more strategic(how to get involved in the international research community). See you then!

8Studye.g., Attending tutorials

Discussion

Research➢ Reading papers➢ Proposing methods➢ Coding➢ Writing papers➢ Etc…

Help

Lecturese.g., Parallel Computing

e.g., Visiting labs

9

Studye.g., Attending tutorials

Discussion

Research➢ Reading papers➢ Proposing methods➢ Coding➢ Writing papers➢ Etc…

Help

Lecturese.g., Parallel Computinge.g., Visiting labs

Underpin

Important but not taught knowledgee.g., writing pseudo code, creating a demo video, and managing a research community➢ Our target! “Non-research tips”➢ By mastering these skills, you can focus more on your research itself

10

Information➢ Dates: Wednesday, 2nd period (10:25 - 12:10)➢ Location: Faculty of Engineering Bldg. 2 #244 (This room)➢ Style: The lecture will be held in-person. No streaming is available.
➢ (Japanese materials may also be distributed.)

Assessment➢ Plan: Mid-term and/or final reports➢ Additionally, those interested (or all participants) may conduct a final
presentation (Details are not decided yet)

11ScheduleDate (2024)

Contents

Presented byWeek 1, Apr 10

Introduction. Review of fundamental concepts

Yusuke, Koya, Yuki, Jun

Week 2, Apr 17

Equations and pseudo-codes

Yusuke Matsui

Week 3, Apr 24

Presentation

Koya Narumi

Week 4, May 1

Tables and plots

Yusuke Matsui

Week 5, May 8

Figures

Koya Narumi

Week 6, May 22

VideosKoya Narumi

Week 7, May 29

Invited Talk 1

Dr. Yoshiaki Bando (AIST)

Week 8, June 5

Invited Talk 2

Prof. Katie Seaborn (Tokyo Tech)

Week 9, June 12

GitHub in depth

Yusuke Matsui

Week 10, June 19

Automation of research and research
dissemination (Web, Cloud, CI/CD)

Jun Kato

Week 11, June 26

Research community

Jun Kato

Week 12, July 3

3DCG illustrations

Yuki Koyama

Week 13, July 10

Final presentations-12

Prerequisites
The Missing Semester of Your CS Education➢ Short lecture series at MIT✓ https://missing.csail.mit.edu/➢ Similar concept to us✓ Fundamental technical tools✓ Shell, command-line, git, …
➢ Translated into several languages✓ Matsui took charge of the translation intoJapanese➢ Be sure to read it in advance➢ Today’s lecture✓ (1) Review of important concepts of MS✓ (2) Some more knowledge for UT students

13Website➢ https://non-research-tips.github.io/2024.html➢ We’ll upload all materials➢ Cancellations, administrative notices, etc., will be announced here14

Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

15

Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

16Git / GitHub➢ Git✓ Command for version control: $ git add xxx.py➢ GitHub✓ Narrow sense: Webservice to host repositories✓ Advanced usage: Week 9✓ Similar services: Bitbucket, GitLab, …
➢ What you need to know
✓ Backup your code git add & commit & push
 You MUST backup your codes!
✓ Collaborations
 fork & pull requests & review

17Git / GitHub➢ Resources (English)✓ Pro Git: https://git-scm.com/book/en/v2✓ Learn Git @GitKraken: https://www.gitkraken.com/learn/git➢ Resources (Japanese)✓ GitHub Lecture by Prof. Hiroshi Watanabe
https://github.com/kaityo256/github✓ 渡辺 宙志, “ゼロから学ぶGit／GitHub 現代的なソフトウェア開発のために”, 講談社, 2024
https://www.kspub.co.jp/book/detail/5352199.html➢ The easiest way: Ask your friends!

18

Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

19

Make
➢ General purpose workflow description (not just compiling c/c++)➢ Manual: https://www.gnu.org/software/make/manual/make.html➢ Makefile highlights:✓ What users can (should) do✓ The order of operations➢ The only tool everyone can understand✓cmake? Bazel? Meson?
➢ Can be used for general purposes

20Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

21

Docker / Singularity➢ A de facto standard tool for virtualization (container)

https://www.docker.com/ja-jp/company/newsroom/media-resources/➢ In modern software engineering✓ One would like to perfectly use the same runtime environment
even 1 month later, by different OS, by different hardware✓ Virtualization is the only option; Docker won the VM war➢ In research✓ Reproducibility is the key✓ Docker provides the easiest way to reproduce your results➢ Docker desktop is freely available for academic purpose✓ Not free for a big company. Be careful!

22Docker / Singularity➢ tldr; Docker for HPC➢ The default option for ABCI is Singularity

Source: Greg Kurtzer keynote at HPC Advisory Council 2017 @ Stanford

https://sylabs.io/docs/

23

Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

24Markdown (and structured text description)# This is H1 title## This is H2 title
usual textRender- list item 1- list item 2- list item 3
this is [link](https://www.google.com)

README.md➢ Programmable (version-controrable), structured text
➢ Computers like Markdown; easily reusable for later purposes✓ e.g., convert to tex, pdf, html, etc…
➢ Structured texts are important to communicate with others

25Markdown (and structured text description)➢ Advanced usage for GitHub markdown✓ Copy & paste images✓ Diagrams✓ Equations✓ Alerts

26

Markdown (and structured text description)➢ Recommend: write google-doc and MS word as if it’s markdown
If you use “header” properly, theindex is constructed properly

Use a list functionality
to create a list

Don’t change the “visual” thing.
The text should be structured.

Don’t make a header bychanging the font size!

➢ Don’t add “spaces”➢ Don’t create your own bullets

Why bad? It’s hard tomaintain by others!

27

Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

28

Notebook environment

Google Colaboratory

Jupyter notebook➢ Some people may argue that notebooks are not useful➢ However, it's beneficial to at least understand what a notebook is29

Notebook environment➢ Python interactive mode: sometimes useful (not .ipynb, but .py)
➢ Version-controrable (for source codes only)30

Notebook environment➢ AWS SageMaker Studio Labs (Amazon’s counterpart of Google Colab)

31Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

32

LaTeX / Overleaf➢ You must use LaTeX. Overleaf is a popular tool for collaborative writing➢ You can back up data by git or github. You must do it!

33

Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

34

Mental model for computation➢ Various mental models for computation➢ It’s important to carefully consider✓ which model to use✓ what tools to employ

My PC
Code locally

Remote server

Run locally35

Mental model for computation➢ Various mental models for computation➢ It’s important to carefully consider✓ which model to use✓ what tools to employ
ssh
My PC
Code locallyvia Docker?

Remote server
Run remotely36Mental model for computation➢ Various mental models for computation➢ It’s important to carefully consider✓ which model to use✓ what tools to employ
ssh
My PC

Remote server
Code remotely

via vscode-remote-ssh?

Run remotely37Mental model for computation➢ Various mental models for computation➢ It’s important to carefully consider✓ which model to use✓ what tools to employ
Code remotely
Run remotely

Cloud

GitHub Codespaces?

sshMy PC

Can be very cheap

Remote server

38

Mental model for computation➢ Various mental models for computation➢ It’s important to carefully consider✓ which model to use✓ what tools to employ
submit jobs

ssh
My PC

Remote server
Code remotely

HPC Clusters
Run remotely

via vscode-remote-ssh?

39Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

40

SSH + server coding➢ You should be able to✓ code via GUI over ssh (vscode-remote-ssh, etc)
✓ ssh, then code on terminal ( emacs, vim, nano, etc)
➢ DEMOhttps://code.visualstudio.com/docs/remote/ssh

41

Agenda➢ Git / GitHub (basic usage)➢ Make➢ Docker / Singularity➢ Markdown (and structured text description)➢ Notebook environment➢ LaTeX / Overleaf➢ Mental model for computation➢ SSH + server coding➢ UTokyo services➢ You should be familiar with them
➢ If you don’t know any of them, study on your own.
There are several online resources available➢ I will not cover them in detail in class.

42

UTokyo services➢ Several services are available. Check them!
➢ utelecon: https://utelecon.adm.u-tokyo.ac.jp/➢ ECCS: https://www.ecc.u-tokyo.ac.jp/43

Schedule
Date (2024)

Contents

Presented by

Week 1, Apr 10

Introduction. Review of fundamental concepts

Yusuke, Koya, Yuki, Jun

Week 2, Apr 17

Equations and pseudo-codes

Yusuke Matsui

Week 3, Apr 24

Presentation

Koya Narumi

Week 4, May 1

Tables and plots

Yusuke Matsui

Week 5, May 8

Figures

Koya Narumi

Week 6, May 22

VideosKoya Narumi

Week 7, May 29

Invited Talk 1

Dr. Yoshiaki Bando (AIST)

Week 8, June 5

Invited Talk 2

Prof. Katie Seaborn (Tokyo Tech)

Week 9, June 12

GitHub in depth

Yusuke Matsui

Week 10, June 19

Automation of research and research
dissemination (Web, Cloud, CI/CD)

Jun Kato

Week 11, June 26

Research community

Jun Kato

Week 12, July 3

3DCG illustrations

Yuki Koyama

Week 13, July 10

Final presentations-44