Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sussex Neuroscience Coding Club title slide

Similar presentations


Presentation on theme: "Sussex Neuroscience Coding Club title slide"— Presentation transcript:

1 Sussex Neuroscience Coding Club title slide

2 Content Introductions Philosophy of the club Future plans
Resource finding Content of this presentation: Introductions, philosophy of the club, future plans and resourse finding

3 Kira Shaw Postdoc in Hall lab
Introductions Introductions: We are Kira Shaw, a postdoc in Hall lab and Dori Grijseels, a PhD student in Hall lab. We code a lot in matlab and Python for our data analysis. Kira Shaw Postdoc in Hall lab Dori Grijseels PhD student in Hall lab

4 Philosophy of the club: Why?
Online resources not enough to learn/improve coding Knowledge not always available in lab Collaboration between labs Designated time to work on code and analysis Why we wanted to start this club: We have experienced that learning programming or improving your skills is hard through online resources alone. We wanted to create this club so people can get together and discuss coding and code. Knowledge about certain types of programming, such a specific languages or analyses, is not always available within a lab. We want to improve the collaboration between labs, so if someone has knowledge about something, it is shared between labs. We wanted to not take up too much time with lectures, but instead give everybody a time to work on their code and collaborate, hopefully making this club useful for everybody.

5 Philosophy of the club: How?
30 min lecture on coding concept or data analysis Language agnostic We would like volunteers! 90 min coding jam Bring your own project Ask those around you for help How the club will run: We will start with a 30 minute lecture on a concept related to coding or data analysis. We aim to make this as language agnostic as possible. We also understand that some lecture might not be useful for everybody, so we’re happy for people to skip the lecture, or work on their own stuff during it. We also would like volunteers who would like to share their knowledge! The remaining 90 minutes will be spend working on your own project. This can be anything from a course to learn programming to your own analyses to a personal project. The idea is that you can ask those around you for help if you get stuck, that you can discuss things. Again, this is very free, so we’re happy for people to drop in and out.

6 Future plans Online environment Mailing list
SussexDirect with forum Make and collect resources Mailing list Make a schedule of lectures/speakers Host code discussions Please let us know if you have any ideas! Future plans for the club: We are going to set up an online environment with a forum. We will also collect resourses to put on here, including all the lecture slides and any other resourses that might come in handy. We are in the process of setting up a mailing list that can be used for information about coding club and to discuss coding and analysis problems We want to make a schedule of the lectures and speakers We would like to invite people to instead of giving a lecture, discuss a piece of code or analysis they are working on. This will be useful in getting help, but will also maybe give those listening new ideas for analyses. We are open or any input, so please let us know!

7 The most important coding skill
Resource finding Title slide resource finding, the most important coding skill The most important coding skill

8 Kinds of resources Documentation Discussion/question forums
Miscellaneous I will divide possible resources into three types: documentation, discussion and question forums and miscellaneous.

9 Documentation Instrumental part of code
Documentation is an instrumental part of coding. Most larger languages (including C, Matlab and Python) have an extensive documentation. This is the best place to find out what certain functions do and how you should use them.

10 What to find in documentation
Expected input arguments Expected output arguments There is a number of things you can find in documentation. The first two are the expected input and output arguments. Depending on the language, the documentation will also tell you about the type of these as well as any optional inputs. When there are multiple options, the documentation will show you all the possible input and output arguments.

11 C Matlab Input Function Output
Slide containing examples of documentation for the absolute function in C and Matlab, specifically the part where the input and output arguments are shown. In C, the input and output arguments both have the type noted (in this case int), while matlab just shows the use of the function. C: int abs( int n ); Matlab: Y = abs(X)

12 What to find in documentation
Expected input arguments Expected output arguments Computation performed by function The second thing you can find in the documentation is the computation that is performed by the function

13 C Matlab Examples of the description that is performed by the function abs in C and Matlab: C: The absolute value of n (i.e. |n|), if it is representable. Matlab: y = abs(x) returns the absolute value of each element of x. If x is complex, then abs returns the complex magnitude of each element. abs is a MATLAB function.

14 What to find in documentation
Expected input arguments Expected output arguments Computation performed by function Examples of use Lastly, the documentation will show examples of use.

15 C Matlab Two examples of use for C and matlab. The C example is much more detailed, but in both cases it shows how to use the function

16 Discussion/question forums
A great resource for coding are discussion and questions forums. The major one is StackOverflow. Given that on this website, roughly 1 million questions have been asked about python, about 235,000 about r, almost 80 thousand about matlab and almost 1,5 million about java, as well as many on other languages, changes are your question has been asked before.

17 Language specific forums
Besides general question forums, there are also language specific forums, such as Igor Exchange for Igor and Matlab Answers for Matlab.

18 Interlude: How to ask a question
Abstract your problem Divide into separate questions Know your variable types (e.g. vector vs array) How to ask a question. It’s not always easy to know what question to ask, so here are a few tips. You should abstract your problem. So instead of asking a question specific to for example a neuron, think about the more general problem you are trying to solve. Divide your problem into separate questions. Each smaller question maybe simpler to answer, allowing you to combine the answers to solve the problems. Know your variable types. Variable types may be of great importance to your question, so it’s important to be specific

19 Miscellaneous Mailing lists
Mailing lists are a great resource for open source languages and packages. The slide shows an example of a thread on the scikit-learn (python) package. The mailing lists are used to ask questions and discuss problems with the package.

20 Miscellaneous Mailing lists Github
Another resource for open-source languages and packages is the issues section of github. This is mostly to report bugs and issues with the code, but you can also report other comments on the code, which then may be taken up by writers of the language.

21 Miscellaneous Mailing lists Github Video tutorials
If you don’t have a specific question, but want to learn more about a concept, video tutorials are a great resource. The slide shows the example of the ‘Learn R in one video’ tutorial by Derek Banas.

22 Miscellaneous Mailing lists Github Video tutorials Courses
Another way to get familiar with a new language or concept is by doing online courses. Many great ones are available on Coursera, such as ‘Introduction to Programming with Matlab’.

23 Miscellaneous Mailing lists Github Video tutorials Courses
Online tutorials and challenges Lastly, there is a whole bunch of website where you can learn and practice coding: Codewars: Place to solve small coding problems of different difficulties, where afterwards you can see other people’s solutions and discuss your answer. Great if you want to up your coding skills. Many languages are available FreeCodeCamp: Mostly aimed at CSS and HTML, though it also has some courses on git DataCamp: A variety of courses mainly aimed at data science using Python or R. Most intermediate courses are paid, while the beginner courses are free Codecademy: Small interactive online courses in different language. Great if you want to learn the syntax of a new language.

24 Pdf with resources content/uploads/2018/05/Resources.pdf We have got a pdf with some resources. This is still a work in progress. You can find it here:


Download ppt "Sussex Neuroscience Coding Club title slide"

Similar presentations


Ads by Google