Thursday, August 16, 2018

My business card

I got my business card for my new position at Berkeley, I really like the design, see the following for my contact information. 


Sunday, August 12, 2018

Setup Jupyter notebook for Julia

I think this week, the biggest news for me, maybe is Julia 1.0 released. It is a great language that I was thinking to learn for a long time (I just played it briefly before), therefore, I think I could use this 1.0 release as an excuse to learn it. 
Julia is a great language that has a goal to put the best features from different languages into one:
Using the reasons from Why we created Julia:
We want a language that’s open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that’s homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.
See the key names of the languages: C, Ruby, Lisp, Matlab, Python, R, Perl, Shell, isn't really cool to learn this Julia! I will! 

Setup the environment

Let's see how could we setup the environment using Jupyter notebook + julia (I really like to work in Jupyter notebook, therefore, this is my first step to set it up). I assume you already had Jupyter notebook. 
  1. Download Julia from - Download Julia
  2. Add Julia into your .bashrc file - export PATH=/Applications/Julia-1.0.app/Contents/Resources/julia/bin:$PATH
  3. In the terminal, open Julia
  4. In Julia, install IJulia: png
  5. Open Jupter notebook, and select kernel: Julia 1.0.0 (note that, I had some old kernels when I played before) png
  6. Let's run the famous 'Hello World!'
println("Hello World!")
Hello World!

Sunday, August 5, 2018

My first NSF proposal

In the last few weeks, I was intensively working on my first NSF proposal - Computer and Information Science and Engineering (CISE) Research Initiation Initiative (CRII). Because as a data science researcher here at Berkeley, I need to write my own proposal and get funded to do my research. The CRII grant is aimed to help the early career scientists to start their own research by providing them a two-year up to $175,000 funding. I did participate in some proposal preparation during my Ph.D. study, but mostly prepare one paragraph or some figures for my advisor. Therefore, this proposal is really my very first proposal written solely by me. I am documenting this very first experience for future references. Note that, it is not your guide, since I am not sure whether some the things I write down is correct or not, but hope some parts are useful to you if you are also writing an NSF proposal. 

Proposal idea

It starts when we saw a program that fit the idea we have on NSF website, after a check of all the requirements and the due date, we think it is a good solicitation that I should try to apply for. 

Proposal Preparation

Since this is my first proposal (I am the sole PI on it), therefore, there are so many things I need to prepare. First, not related to the proposal writing: 
  1. I need first sign up on the NSF Fastlane first and ask the campus to associate my account to UC Berkeley.
  2. Get a clear idea of the whole submitting process. For example, I learned that I need to submit to the campus 5 business days earlier than the actual deadline, even though I could still change my technical details in the proposal. To whom on campus I will submit to and get a draft budget for the proposal. And so on ...
  3. Get some sample proposals from my colleagues and friends, all together I got 4 copies of them, 2 in Earth Science and 2 in Computer Science (since the proposal I submitted in the NSF Computer Science Division for a data science related proposal). 
Finally get to the part of the proposals itself. For this proposal, I need to prepare:
  1. BIO sketch
  2. Project one-page summary
  3. Project description
  4. Data Management Plan
  5. Facilities, equipment and other resources
  6. Chair support letter
  7. Collaboration letters
  8. Past collaborators
  9. Budget
  10. Budget justification 
I will mainly talk about the project description (10-15 page), since most of the others can be written using some templates and change them according to my proposed work, and the one-page summary is what your shortened version of the project description by giving only the introduction and the Intellectual Merit and Broader Impacts. 

Project description

The project description is the main content of my proposal, it includes: 
  • Vision statements
  • Backgrounds
  • Research plans 
  • Evaluation plans
  • Intellectual Merit
  • Broader Impacts
  • Results from Prior NSF Support
The vision statement is my one page to describe my vision of the proposed work, why it is important? Why the challenges are interesting and useful are the questions to be addressed here. 
The background section is where I listed the current and related research in the fields to show that I am aware of the whole fields, know the work has been done, know the limitations of the current work and then transit into the next section that I introduce my solutions to some of the current limitations. 
The research plans section is the heavy part of this description, this is the part I list the proposed work which could potentially address the existing challenges. I start with a description of the current challenges and then my proposed methods to address them. I was told that the proposed methods should be detailed enough that the reviewers would see you have a viable working plan, but not too specific, since the work is not been done yet. It is better to mention some alternative ways as well, since if your proposed methods are not working, the reviewers want to see if you have a different plan to fix it. Also, I put some preliminary results I have done for the proposed work.
In the evaluation plans, I listed the metrics to evaluate the work I proposed and the potential deliverables. 
The Intellectual Merit is the section that I try to explain how great my methods are to address the current challenges, and also why they are important. 
In the broader impacts section, I listed how this work will benefit the society and public; how it will facilitate potential collaborations between academia, industry, public and government; how it will train the undergraduate students, graduate students, and postdocs, the next generation workforce. Lastly, how the results will be disseminated by attending conferences, publishing papers, giving public presentations, participating science faires, maker faires and so on; how we could add the problems, results into the courses we are teaching here at Berkeley to give students more chances to get access to real-world problems in class. 
And last, the results from Prior NSF Support section, since I don't have any previous research results using NSF's funding, I didn't list anything here. But I do list my I-Corps award from NSF last year to show that I do interact with NSF before. 

A note on the budget

I was thinking I need to prepare the budget from scratch, but it is not. I only need to send an email to the grant office on campus (different names at different universities, but I'd like to call them grant office), and tell them what do I need. Then they will send a draft excel spreadsheet with all the numbers tunable by you to hit the target number. This saves my efforts, thanks to the colleagues at the grant office. 
NSF favors the budget to spend mostly on the students or postdocs (which is a very good thing), as a PI, the maximum number of months you can request for one proposal is 2 months (I heard you can request more, but you need a justification for that). Besides the salary for students/postdocs and the PI, budget on travel for conferences, and computational services or equipment. But all these needs justification why do you need them. 

Quick reflections on my first experience

  • I found the project description is the key to success, do start early and iterate with your mentors to make improvement on it. 
  • The sample previous proposals from your colleagues are really useful, try to go through them carefully and you will learn a lot from them. 
  • I read online that it is better to have the first proposal written with a senior scientist instead of being a sole PI on it. I think this is a very good advice. 
  • The background section requires you do a literature search, do prepare time for that to show your understanding of the field. 
  • Don't squeeze to much stuff into the proposal, make it simple and clear, and the reviewers will be happy about it. 
  • It is better to have some pictures in the proposal, a good rule of thumb I was told is to have one picture every other page. After all, one picture worth 1000 words. 
  • Leave more time on, I only have about 3 weeks to work on this proposal, I think the time is too short. 
  • After you write the whole package of the proposal, wait for a few days to go through them one more time, and you will find some better ideas (at least for me). 
  • My Earth science colleagues told me in the project description, it is better to write in a way that starts with a hypothesis and end with a potential solution. But my computer science colleagues don't think I need that, nor the sample proposals from CS have that. Therefore, there is clearly a difference between the different divisions. 
  • For the broader impact, I was told that it should be a summary for layman, since NSF will show this paragraph to the legislators and public. 
  • I was too afraid to talk to a program manager, but many people told me I should have, since they are usually very nice and give you a lot of ideas and first round comments. Maybe next time. 
  • The chance for me to get the grant is very slim, but at least, I went through the whole process, and now have a much better view of it. This will definitely help my next proposal. Also, hope that I could get some valuable comments from the reviewers so that I could make improvement. 

Acknowledgment

Of course, I need to thank all the people who helped me during my preparation, especially my friend professors from the University of Colorado Boulder, San Fransisco State University, my advisor and colleagues at Berkeley. They are my mentors to get through this first proposal, without them, it will be much more difficult for me.