Re: [Neo4j] Neo4j - online course

656 views
Skip to first unread message

Duane Nickull

unread,
Oct 7, 2012, 3:11:27 PM10/7/12
to ne...@googlegroups.com
John:

I had started building such a course however got sidetracked.  I am more than willing to provide what I have done to any open source project or help you for a commercial course.

Duane
***********************************
Technoracle Advanced Systems Inc.
Consulting and Contracting; Proven Results!
i.  Neo4J, PDF, Java, LiveCycle ES, Flex, AIR, CQ5 & Mobile
t.  @duanechaos
"Don't fear the Graph!  Embrace Neo4J"



From: JohnM <jxmi...@gmail.com>
Reply-To: <ne...@googlegroups.com>
Date: Saturday, 6 October, 2012 7:20 AM
To: <ne...@googlegroups.com>
Subject: [Neo4j] Neo4j - online course

Hi,

I am wondering whether Neo4j would consider creating a Neo4j course available for free online, such as those available through Coursera (www.coursera.org)

Currently I am studying Scala though just such a course and finding it very beneficial and enjoyable.

Let me describe my situation; I am in Melbourne, Australia and am interested in Neo4j. And I believe it would be a valuable capability to introduce to my workplace. However as a ‘techie’ (developer) I also recognize that I’ve found a ‘hammer’ and now see lots of ‘nails’ around me.
Thus I wish to improve my understanding and skills in Neo4j before attempting to talk to people at work about the beautiful ‘hammer’ I’ve discovered. :) Especially as this puts me in a position of being better able to answer my colleagues questions.

Possible paths to this goal are to install Neo4j on my laptop at home and work through the tutorials; view the variety of presentations on Neo4j - by the way I did enjoy the Dr Who one and Michael Hunger’s one about Cypher recently. Or I could attend Skills Matter in London for a 2 day tutorial (http://skillsmatter.com/course/nosql/neo4j-tutorial); which would be a trifle expensive including the airfares. There is a local workshop coming up (http://www.yowconference.com.au/general/workshopDetails.html?eventId=4269), but it is not Neo4j focussed.

There is also the local consulting partner who offers training (http://www.centrumsystems.com.au/what-we-do/training/neo4j-developer-training/).

The tutorials and presentations approach is free.

The other options are expensive for me, and chicken and egg like, I would need to convince management of the value before being able to get them to invest in such training.

What struck me is that if an online course was available, I could complete this in my own time outside work. I would end up with a certificate that establishes two things; my credibility in asserting a level of knowledge about Neo4j and that I’m interested enough to put in the effort to learn this product. I believe these bona fides would help greatly when talking to my colleagues.

Of course, I also think such a course would be advantageous to Neo4j to act as an intermediary stepping stone for people interested in Neo4j and improve its chances of adoption in enterprises.

Regards,

John

By the way if this is the wrong place for such a posting my apologies in advance.

--
 
 

Peter Neubauer

unread,
Oct 7, 2012, 3:12:17 PM10/7/12
to ne...@googlegroups.com
John,
we have been thinking about this - seems like a great activity. I
would gladly invest some time into making it happen.

Do you have any suggestions on how to make it work? AFAIK, the Scala
course is a combination of videos with SBT-based exercises that test
the solutions to a number of challenges. Is that what would be enough
to start with?

Would you care to write down a wish-list and maybe to review material
that could be used? If Duane and others can pitch in, I would love to
make that happen.

WDYAT? Who is interested?

Cheers,

/peter neubauer

G: neubauer.peter
S: peter.neubauer
P: +46 704 106975
L: http://www.linkedin.com/in/neubauer
T: @peterneubauer

Neo4j 1.8 GA - http://www.dzone.com/links/neo4j_18_release_fluent_graph_literacy.html

JohnM

unread,
Oct 8, 2012, 5:54:20 AM10/8/12
to ne...@googlegroups.com
Hi Duane and Peter,

thank you for your comments.

Yes the Scala course is a combination of short videos and then assignments that are loaded for automatic marking via SBT.

I'm not sure how best to deliver a course, for example I don't know what the criteria are to get a course accepted in Coursera, However I think that is the second problem to be solved. The first is what to teach. :)

I will think about my wish list/thoughts for a Neo4j course and post it tomorrow.

cheers,

John

Stevo Slavić

unread,
Oct 8, 2012, 6:14:04 AM10/8/12
to ne...@googlegroups.com
Great idea, strongly support it!

MongoDB guys are organizing something similar, with separate free online training offerings for developers and admins (see http://www.10gen.com/training ).

Maybe you can make course on a bit higher level, like functional programming course is organized - it's about functional programming, but with examples in Scala.
Similarly, you could make Graph DBs course, with examples in Neo4j.

Kind regards,
Stevo Slavic.

--
 
 

Duane Nickull

unread,
Oct 8, 2012, 2:18:37 PM10/8/12
to ne...@googlegroups.com
John:

It depends on the audience.

I usually follow a set outline like this:

1 Introduction
 - what is the thing
 - why should you learn it
 - what the course will cover and the agenda
 - ground rules (for example, if you have questions, put up your hand and ask)
 - materials and homework expectations
 - where to go after for further learning
 - and of course, a strong recommendation to join this list ;-)

2. Getting started
 - pre-requisites
 - downloads
 - installing
 - verifying your installation.

3. Hello world
 - first steps
 - provide advanced variations if you are teaching hands on to get people who are skilled more challenge.

4. Topic # 1 (perhaps setting up and using Java)
  - details of topic
 - theory
 - exercise
 - wrap up

5…15  Same as above but cover more topics

Mandatory topics usually include:
  • Debugging
  • Best practices (woven into the course)
  • Showing something then showing a better way and explaining why
  • Optimizing & tuning

16 a final project
  - start to finish final project to build a cool app.

17. Wrap up and questions
At this time I usually invite people to show stuff they have built to keep them engaged.


Duane
***********************************
Technoracle Advanced Systems Inc.
Consulting and Contracting; Proven Results!
i.  Neo4J, PDF, Java, LiveCycle ES, Flex, AIR, CQ5 & Mobile
t.  @duanechaos
"Don't fear the Graph!  Embrace Neo4J"


From: JohnM <jxmi...@gmail.com>
Reply-To: <ne...@googlegroups.com>
Date: Monday, 8 October, 2012 11:54 AM
To: <ne...@googlegroups.com>
--
 
 

JohnM

unread,
Oct 9, 2012, 4:43:54 AM10/9/12
to ne...@googlegroups.com

Hi,


Here are my thoughts on a Neo4j course. Essentially it focuses on training the student in 'best practices' around domain modeling and understanding the range of questions a graph database can answer through a language such as Cypher.

Cheers,

John


Neo4j Course

Pre course setup

- install Neo4j server
I’m hoping that a lot of the course could be done with a standalone server and Cypher. More advanced modules could require a programming language such as Java.

Tools required:
- Standalone Neo4j server

Course Modules

- Domain modelling with a graph database
- Cypher
- Presentation

It seems to me that it is important to be able to model your problem domain well and answer business questions from the model. Thus exercises involving creating a model and querying it are a good place to start. Perhaps the model is supplied to begin with and then students come up with their own model for more advanced assignments.

Thus the student could download an assignment that has a create Cypher statement that loads their Neo4j server with data. The student then uses the WebAdmin tool to craft Cypher queries to answer the assignment questions.

To submit an assignment could simply be in Cypher - a create statement and the statements that answer each of the assignment questions. This could facilitate automatic marking I’m hoping. :)

Some topics in this section would be:
- Around data

- loading data into a Neo4j database

- altering the data

- adding further data

- indexing

- how to extract data from a RDBMS and load that into Neo4j (more advanced)


- Around modeling
- how to model your domain
- how to handle time - e.g. via relationships (“owned” and “owns”) or properties or both
- how to change models when it cannot answer a new business question
- best graph database practices

- Around querying (essentially a mini Cypher course)
- build up a series of Cypher queries answering more complex questions

- Can I answer all business queries with Cypher or do I need to know another query mechanism?


The topics above enable the student to analyse their business domain, create a model and query it to show the business the value of a graph database approach. It would also teach them how to evolve their models as required. As they have built a number of models and constructed a variety of queries they should have gained confidence to present Neo4j to their workplace.

- Presentation

- I see this as more advanced in that it requires more tooling, such as Java, an IDE, a web server etc.

- How to write applications to access Neo4j and present the results in a number of formats

- I’m guessing we would have to choose one framework, such as Node.js and work with that


Other thoughts and questions

I see Neo4j being used in a couple of scenarios in my workplace. Firstly as an ongoing storage that is nightly updated keeping it in sync with a relational database, Business Intelligence like. Secondly for creation of on the fly models loaded with a sample of data and then used to answer business questions.



Nigel Small

unread,
Oct 9, 2012, 5:59:04 AM10/9/12
to ne...@googlegroups.com
This is quite similar to a training course I recently put together for a London start-up. The first day covered graph theory, the Neo4j product itself and then delved deeply into Cypher. There were then a number of Cypher exercises which could all be carried out through the neo4j-shell.

The second day talked about the server API and py2neo plus some best practice material and some more (domain-specific) exercises. There was nothing included on Java embedded usage as it wasn't required in this case.

The Cypher workbook is generic though so if you're interested in using it, let me know and I'll send it over.

Cheers
Nigel


--
 
 

Jacopo Farina

unread,
Oct 9, 2012, 6:00:45 AM10/9/12
to ne...@googlegroups.com
It would be fantastic, I'm following the Scala course too and it's nice!
Cheers,
Jacopo

2012/10/9 JohnM <jxmi...@gmail.com>

--
 
 

Wes Freeman

unread,
Oct 9, 2012, 11:23:06 AM10/9/12
to ne...@googlegroups.com
From a developer perspective, I think it would be useful to show a survey of the libraries used to interact with neo4j, such as yours, Nigel, along with SpringData and a handful of others, ranked by number of stars on github and posts in a user group, or some other metric. There could then be a video going through a quick intro by an expert in that language (or, better yet, the author of that library). After all, devs will be spending most of their time dealing with that sort of code. Maybe one of the "classes/weeks" could have the survey of a handful of libraries, and then the exercise could be "pick a library in your language of choice to do..."

Just an idea.

Wes

--
 
 

Duane Nickull

unread,
Oct 9, 2012, 11:33:14 AM10/9/12
to ne...@googlegroups.com
Wes:

This is sort of what I was referring to when I mentioned the audience is very important for the course.  I see 3-4 core audiences for courses:

  1. Developers
  2. Modelling people (UML / XML heads like myself)
  3. Business People
  4. Others (Educators, Oracle spies etc….   ;-)
Duane
***********************************
Technoracle Advanced Systems Inc.
Consulting and Contracting; Proven Results!
i.  Neo4J, PDF, Java, LiveCycle ES, Flex, AIR, CQ5 & Mobile
t.  @duanechaos
"Don't fear the Graph!  Embrace Neo4J"


--
 
 

Wes Freeman

unread,
Oct 9, 2012, 11:59:27 AM10/9/12
to ne...@googlegroups.com
That makes sense. #1 is the most important--that's my biased opinion, anyway. ;) 

I think dba-type people could be another audience. They care less about how to use neo4j (although they need to know basics, and maybe even query tuning stuff), and care more about keeping it running and tuned from a server standpoint.

Wes

--
 
 

Nigel Small

unread,
Oct 9, 2012, 12:00:11 PM10/9/12
to ne...@googlegroups.com
On a similar topic, I'm looking forward to getting some feedback about py2neo usage now that the User-Agent header is in place :-)

Sounds like a very good idea not least because I'm guessing that the "4j" puts off a lot of non-Java programmers. If you knew nothing else about the product, you could be excused for thinking it was only relevant within a Java world in the same way that log4j or junit are Java-specific projects (albeit with various log4* and *unit variants!)

Nige


--
 
 

Nigel Small

unread,
Oct 9, 2012, 12:04:37 PM10/9/12
to ne...@googlegroups.com
Actually, here I think DBAs are just as important as devs (if not more so). They are involved with databases on a day-to-day basis instead of while-a-piece-of-software-is-being-built-or-enhanced. The DBAs I've worked with are often the experts and the developers the novices.

(BTW I'm primarily a developer not a DBA, although I have done both jobs!)

Nige


--
 
 

Duane Nickull

unread,
Oct 9, 2012, 3:06:09 PM10/9/12
to ne...@googlegroups.com
Perhaps we should agree to take each others courses as a test.

BTW – I have a contact who will pay money for courses.

D
***********************************
Technoracle Advanced Systems Inc.
Consulting and Contracting; Proven Results!
i.  Neo4J, PDF, Java, LiveCycle ES, Flex, AIR, CQ5 & Mobile
t.  @duanechaos
"Don't fear the Graph!  Embrace Neo4J"


From: Nigel Small <ni...@nigelsmall.net>
Reply-To: <ne...@googlegroups.com>
Date: Tuesday, 9 October, 2012 6:00 PM
To: <ne...@googlegroups.com>
Subject: Re: [Neo4j] Re: Neo4j - online course

--
 
 

Duane Nickull

unread,
Oct 9, 2012, 3:07:20 PM10/9/12
to ne...@googlegroups.com
To me , DBA = dev.

The best thing is that this is a community based effort.  My course will be open source as I have done with all others.

Duane

***********************************
Technoracle Advanced Systems Inc.
Consulting and Contracting; Proven Results!
i.  Neo4J, PDF, Java, LiveCycle ES, Flex, AIR, CQ5 & Mobile
t.  @duanechaos
"Don't fear the Graph!  Embrace Neo4J"


--
 
 

Peter Neubauer

unread,
Oct 10, 2012, 5:49:38 AM10/10/12
to ne...@googlegroups.com
Guys,
just reached out to @cousera on whom to contact for a course, but have
not heard back. Does anyone know the process for making this happen
there or on Udemy etc?

Cheers,

/peter neubauer

G: neubauer.peter
S: peter.neubauer
P: +46 704 106975
L: http://www.linkedin.com/in/neubauer
T: @peterneubauer

Neo4j 1.8 GA - http://www.dzone.com/links/neo4j_18_release_fluent_graph_literacy.html


> --
>
>

Stevo Slavić

unread,
Oct 10, 2012, 5:57:13 AM10/10/12
to ne...@googlegroups.com
Maybe try sending email to corp...@coursera.org (more contact emails at https://www.coursera.org/about/contact )

On about page ( https://www.coursera.org/about ) they write that they partner with universities. Forgive me, but I don't know if any of neo4j staff/committers are active professors on some college - if they are, maybe try establishing connection with coursera through college.

Kind regards,
Stevo Slavic.

--



Javier de la Rosa

unread,
Oct 10, 2012, 11:18:41 AM10/10/12
to ne...@googlegroups.com
I'd recommend Udacity [1], maybe they are a bit more easy get a response.



[1] http://www.udacity.com/contact
> --
>
>



--
Javier de la Rosa
http://versae.es

Duane Nickull

unread,
Oct 10, 2012, 1:16:17 PM10/10/12
to ne...@googlegroups.com
I have contacts at Udemy.
>>> >>> Others (Educators, Oracle spies etc.... ;-)
>--
>
>


JohnM

unread,
Oct 11, 2012, 5:52:36 AM10/11/12
to ne...@googlegroups.com
Hi Nigel,

That's a great offer, I would love to see your material.


Cheers,

John

Peter Neubauer

unread,
Oct 11, 2012, 5:56:41 AM10/11/12
to ne...@googlegroups.com
Javier,
good call, will reach out to Udacity today and get back here with the results.

Cheers,

/peter neubauer

G: neubauer.peter
S: peter.neubauer
P: +46 704 106975
L: http://www.linkedin.com/in/neubauer
T: @peterneubauer

Neo4j 1.8 GA - http://www.dzone.com/links/neo4j_18_release_fluent_graph_literacy.html


> --
>
>

Nigel Small

unread,
Oct 11, 2012, 6:43:38 AM10/11/12
to ne...@googlegroups.com
Hi John

I have attached the Cypher workbook which I put together last month and which is pretty generic. In case you can find anything useful in them, I've also attached the slides that preceded that session which cover an introduction to Cypher; specifically, you will want slides 45 to 86.

Hope this helps

Cheers
Nige



--



cypher-workbook.pdf
Introduction to Neo4j.pdf

JohnM

unread,
Oct 13, 2012, 4:24:21 AM10/13/12
to ne...@googlegroups.com
Thanks very much Nigel, I'll have a read.
Cheers,
John
Reply all
Reply to author
Forward
0 new messages