Research Experience for Undergraduate Studies

Resources and Training Materials

Remote Server Connection and File Transferring

1. To connect to a remote server via SSH

(1) Open a Command Prompt

            MaxOS: Open a Terminal from Launchpad, 

   Windows: Open a Command Line by press the shortcut Windows key + R or type "cmd" in the Run window

(2) Type the following command: $ ssh -Y <account_name>@<ip_address/domain_name>

, where account_name is the username that the admin of the remote server created for you, and ip_address/domain_name is the IP address or URL for the remote server.

2. Copy fie(s) from your local computer to a remote server

  • scp <file_name> <user_name>@<remote_ip>:/home/<user_name>
  • scp -r <dir_name> <user_name>@<remote_ip>:/home/<user_name>
  • -r will copy files and directories recursively

3. Copy file(s) from the remote server to your local machine

  • scp <user_name>@<remote_ip>:/home/<user_name>/<file_name> ./
  • scp -r <user_name>@<remote_ip>:/home/<user_name>/<dir_path> ./

Research Methods

1. How to find resources for your research topic?

2. How to read a paper?

The 3-pass approach for reading a research paper:

  • 1st pass: get the general idea
    • Carefully read the title, abstract, and introduction
    • Read the section and subsection headings, but ignore everything else
    • Read the conclusions
    • Glance over the references, mentally ticking the ones you've already read
  • 2nd pass: grasp the content and summarize the main thrust with supporting evidence

    • Look carefully at the figures, diagrams and other illustrations in the paper. Pay special attention to graphs.
    • Mark relevant unread references for further reading
  • 3rd pass: understand the paper in depth

Source: Keshav, Srinivasan. "How to read a paper." ACM SIGCOMM Computer Communication Review 37, no. 3 (2007): 83-84.

3. Annotated Bibliography

An annotated bibliography is a list of citations to books, articles, and documents, with each citation is followed by a brief descriptive and evaluative paragraph, the annotation. The purpose of writing an annotate bibliography is to inform the reader of the relevance, accuracy, and quality of the sources cited. The process of writing an annotated bibliography includes:

  • Locate and record citations to papers, articles, and documents that may contain useful information and ideas on your research topic. 
  • Cite them using the appropriate style.
  • Write a concise annotation that summarizes the central theme and scope of the paper or article.
    • (a) evaluate the authority or background of the author,
    • (b) comment on the intended audience,
    • (c) compare or contrast this work with other paper(s) you have cited, or 
    • (d) explain how this work illuminates your bibliography topic.

You can create a copy of the IEEE Style Overleaf Annotated Bibliography Template and replace the citations and annotations for your research topic. For how to use Overleaf and Latex, you can find a tutorial here: https://www.overleaf.com/learn/latex/Tutorials.

4. Make a research plan

Introduction: present the importance of the topic with supporting evidence; existing problems or gaps in the chosen topic; the problem that will be addressed in this project.

Related work: state what relevant work you found related to the work you will be working on. You could refer to the papers you have found, read, and write the annotated bibliography for these papers. Try to find papers that have high citations and papers that were published in recent years, so you will learn the most recent work in the chosen topic.

Plan: describe the solution that you will design and implement to solve the problem described in the introduction. Present your plan with detailed steps in a timeline table, and communicate with your research mentors to discuss your plan and make adjustment throughout the whole research period.

Technical Training

1. Linux Command

2. Git/GitHub and Branch Management

3. C Programming and Bash Script

4. Code Structure and Clean Code

5. Parallel and Distributed Computing

6. GPU Programming

6. Web Application Development

7. React Native 

Parallel and Distributed Computing

1. Overview

Parallel Computing, also known as parallel processing, speeds up a computational task by dividing it into smaller jobs across multiple processors inside one computer. Distributed computing, on the other hand, uses a distributed system, such as the internet, to increase the available computing power and enable larger, more complex tasks to be executed across multiple machines [1].

2. Why use Parallel Computing?

3. Types of Parallelism

4. Parallel Computers

5. Distributed Computing

6. Cloud Computing

7. Datacenters

References

[1] Parallel vs. Distributed Computing: An Overview. https://blog.purestorage.com/purely-educational/parallel-vs-distributed-computing-an-overview/

Data Science Resources

1. Data Science and Machine Learning

2. Data Processing with NumPy and Pandas

3. Data Visualization - Matplotlib and Seaborn

4. Python Library: Scikit-Learn 

Machine Learning Resources

Resume and LinkedIn

Research Poster and Paper Composition