Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 18 13:38
    papajohn commented #414
  • Sep 18 05:53
    adnanhemani commented #414
  • Sep 18 01:11
    davidwagner opened #414
  • Sep 17 22:21

    adnanhemani on gh-pages

    Generated by commit 23b4f5f6482… (compare)

  • Sep 17 22:04

    adnanhemani on gh-pages

    Generated by commit 23b4f5f6482… (compare)

  • Sep 17 21:13

    davidwagner on fix_version_15_2

    (compare)

  • Sep 17 21:13

    davidwagner on master

    fixed bug from previous version CHANGELOG Delete top_movies.csv Accident… and 2 more (compare)

  • Sep 17 21:13
    davidwagner closed #413
  • Sep 17 20:37

    adnanhemani on gh-pages

    Generated by commit ec024b264ff… (compare)

  • Sep 17 20:32

    davidwagner on travis_doesnt_like_libgfortran

    (compare)

  • Sep 17 20:32

    davidwagner on master

    Try removing libgfortran depend… Merge pull request #412 from da… (compare)

  • Sep 17 20:32
    davidwagner closed #412
  • Sep 16 17:04
    SamLau95 commented #412
  • Sep 16 06:23
    adnanhemani commented #412
  • Sep 16 06:16

    adnanhemani on fix_version_15_2

    Delete hist_workout_2.ipynb Ac… (compare)

  • Sep 16 06:16
    adnanhemani synchronize #413
  • Sep 16 06:15

    adnanhemani on fix_version_15_2

    Delete top_movies.csv Accident… (compare)

  • Sep 16 06:15
    adnanhemani synchronize #413
  • Sep 16 06:09
    adnanhemani review_requested #413
  • Sep 16 06:09
    adnanhemani review_requested #413
Chris Holdgraf
@choldgraf
looks really nice - way to go!
Carl Boettiger
@cboettig
@choldgraf @SamLau95 Good points about material being needed for instructors
@choldgraf Re: computing on Windows -- I'm curious: what's the primary reason instructors don't want to work directly on ds8.berkeley.edu and sidestep the install issues?
Carl Boettiger
@cboettig
(particularly for those instructors not coming from a scientific computing perspective)
Carl Boettiger
@cboettig
@henryem @SamLau95 how does table.values('my_column') differ from table.select('my_column')? Is there a reason to use one over the other?
henryem
@henryem
Yeah, they're very different. The first returns an array (the column) and the second returns a table with only the column 'my_column' in it.
Huge source of confusion for students, but can't think of a good way to avoid that :-/
Hmm @SamLau95 what if we had an alias for select called something like subtable_with_columns?
Wonder if it would be easier to teach initially
Then give them the shorter alias later
Chris Holdgraf
@choldgraf
@cboettig I'm not sure why people wouldn't use the ds8 environment...to be honest I don't know much about it yet either. It could just be that people default to doing things on their own computers, but maybe it can be fixed by pushing people towards the ds8.berkeley.edu resources
if somebody wants to point me to a guide on using the online ds8 environment, I can figure it out and then start telling instructors that as necessary
Sam Lau
@SamLau95
@cboettig i personally don’t see much benefit from using a local install other than needing dependencies that aren’t on ds8 (eg. I have some extensions to jupyter installed locally). i imagine it’d be a lot easier for people who don’t want to deal with installation issues to use ds8
@henryem not sure — i feel like having one method name and then switching to another could result in some confusion itself
Carl Boettiger
@cboettig
hmm, Table has no attribute 'value'
henryem
@henryem
Typo? Should be values, not value
Sam Lau
@SamLau95
@choldgraf i was planning to write that up today, will ping you when it’s done
@cboettig try .values instead of value
Carl Boettiger
@cboettig
whoops, thanks!
Carl Boettiger
@cboettig
@choldgraf What kind of guide would be helpful? Basically it's just (1) request account (2) go to ds8.berkeley.edu and log in (3) see Jupyter documentation. I do think it would be worth addressing how to do common things like get data / notebooks / files on and off the ds8 environment. I find Jupyter terminal+Git a good solution for that, but obviously not a good entry-level solution.
Also I'm not clear on how installing dependencies works in the ds8 environment, or in jupyter more generally. For instance, does python have a good system for installing packages without root credentials, or is root access usually needed / assumed (e.g. for pip install to work)?
Sam Lau
@SamLau95

@cboettig i’m writing up an overview of a simple workflow from start to finish:

  1. creating notebooks
  2. uploading notebooks
  3. distribute notebooks to students
  4. students work on notebooks
  5. collect submissions from students

i’m thinking from there we can expand on each step as needed

python does have a system for installing without root credentials http://stackoverflow.com/a/7143496 but it looks like each student will have to run some commands manually

to install globally, right now we have to contact ryan about it. this is unscalable so we’re looking for a better system

Carl Boettiger
@cboettig
Thanks @SamLau95 , an overview of how to do that workflow would be a great thing to have.
Carl Boettiger
@cboettig
hmm, generic Jupyter question: is there an easy way to split a Jupyter notebook into two separate notebooks (preferably without copy-pasting raw .json)?
e.g. a way to select a group of cells, click 'copy cells', and then paste them into a new notebook?
Sam Lau
@SamLau95
not that i know of :(
henryem
@henryem
@cboettig copy the notebook, delete half from each? :-/
Chris Holdgraf
@choldgraf
@cboettig I'm not sure what kind of guide would be useful because I've probably got too much coding experience to have the right perspective. I'll try to pay attention to any pain points that come up and maybe can help out @SamLau95 in building some tutorials.
also @cboettig see this issue on github: ipython/ipython#5746
looks like it's something people are working on, but in the meantime you might just do File->Make a copy and then delete half the cells in the copy
let me know what you’d like to add! (or just make a PR)
Carl Boettiger
@cboettig
@henryem so simple yet so brilliant. you're a good guy to know
Carl Boettiger
@cboettig
@SamLau95 Workflow guide looks very nice! Do you know if the plan is to have better support for step 5 (submitting student notebooks to instructors?) Also, you mention just using bcourses or email, but just to be comprehensive you might point out how a student should download their completed notebook, if they want to submit it via email etc. (e.g. pointing out that notebooks can be downloaded as pdf as well as ipython /jupyter format)
Sam Lau
@SamLau95

@cboettig we haven’t talked about this at length but i believe for the main class the plan was to use okpy https://ok-server.appspot.com/landing for submission / autograding. we haven’t yet set it up ourselves, so it’s hard to write about that process in the tutorial

that’s a good point! i’ll add it

Carl Boettiger
@cboettig
@SamLau95 Nice, okpy looks pretty slick. Will students be able to get a "submit" button in their actual Jupyter notebook instance? Or do they submit using the okpy web interface (which somehow knows how to find/access their notebooks?)
Sam Lau
@SamLau95
as of right now i don’t know of any plans to implement a “submit" button
in fact, as of right now students don’t do anything to submit. last semester we just pulled all the students’ files straight up from the ds8 servers
and ran the autograder on their files
Carl Boettiger
@cboettig
right, sure, but that didn't involve any okpy, I assume that was just some bash script on the server.
I imagine students would prefer to submit instead of having their work just sucked up at some date and submitted for them? or maybe not?
Sam Lau
@SamLau95
we formatted the test cases to work with the okclient https://github.com/Cal-CS-61A-Staff/ok-client so submitting to the okpy server shouldn’t be super hard
although last semester we only used the local autograding functionality
and yeah, that’s what i think we’re aiming for
last semester we only had enough time to do the bare minimum
Carl Boettiger
@cboettig
cool. right. for a small connector like mine it's probably easier for me to grade notebooks by hand then running by writing automatic tests anyhow.
If a little script just copied the working directories of all my students into appropriate sub-directories of my account on the server, I'd probably be set. Of course I can approximate that if they (1) email me the notebooks, (2) I drop them into a private github repo, and (3) then pull them onto the ds8 server to grade them. Also assumes more knowledge of git (or knowledge to run jupyter locally and risk having different software versions etc)
Carl Boettiger
@cboettig
@SamLau95 is there a function like Table.apply that returns a Table instead of an array? (e.g. a function that behaves like pandas.applymap()?)
Sam Lau
@SamLau95
@cboettig not built-in, unfortunately. you’ll have to write one yourself
Chris Holdgraf
@choldgraf
@cboettig @SamLau95 see dsten/datascience#175 for a quick implementation of what you mentioned. Would that work?