
GitHub Classroom - HeinZawHtet
https://classroom.github.com/
======
maeln
Just on a minor note. Having taught programming classes in the past, don't use
automated testing for grading, or at least not fully.

First of, there is a lot more to judge in a program than just the correctness
of its output. Is the code readable ? Re-usable ? Did the student understood
the core concept of the language and used them correctly ? I saw some student
fail to produce a correct program but had a well organized code. On the other
hand, one of my student once created a program that was just made of switch
instruction in switch instruction (up to 5 level of switches) and spread for
more than 3000 lines, just because he failed to understand how function where
working.

You can try to plug a linter in your testing stack, a quality gate, all kind
of software to measure the code quality, but it will never be truly fair. It
will make your evaluation a game where the student challenge is not
understanding the concept of the class, but instead, understanding the rules
of the various test you put in place. And those rules tend to be even more
arbitrary with than the teacher himself.

Trying to automate grading is an engineer trying to apply its vision to
education, and it my honest opinion, it is an awful idea. Providing tools to
facilitate education is awesome, trying to automate education is a dystopia.

~~~
elcomet
> I saw some student fail to produce a correct program but had a well
> organized code.

I don't necessarily agree with this. Programs are not designed to be readable,
they are designed to solve a problem. The first goal is to get the correct
program, and only after, it is important to make the code readable. A readable
code that doesn't work is not worth much.

As a former student, I think automatically graded assignment are very nice
because they force you to have a programmer mindset (the smallest error / typo
will make your code fail).

If you want to grade also the organization of code, fine, but I think the
first one is more valuable (how to organize code properly is not learned at
school anyway, it is learned by months / years of practice).

~~~
thomascgalvin
> Programs are not designed to be readable, they are designed to solve a
> problem.

This is 100% incorrect. If a developer submits a PR that works and if fast,
but cannot be understood by the rest of the team, it can, should, and will be
rejected.

80% of software's lifetime is spent in maintenance. That clever hack or ugly
patch might work today, but you're going to hate yourself for it in a month.

There are exceptions, but they're by far the minority case and should be
clearly marked as "deep magic".

[https://en.wikipedia.org/wiki/Magic_(programming)](https://en.wikipedia.org/wiki/Magic_\(programming\))

~~~
kasey_junk
The broader theme of that comment was that ‘correct’ is table stakes.

A readable incorrect program is worse than an unreadable correct one. That
neither is acceptable doesn’t negate that.

~~~
bayindirh
> A readable incorrect program is worse than an unreadable correct one. That
> neither is acceptable doesn’t negate that.

I will happily fix a readable but non-working code rather than maintain a
working but unreadable code any day under the sun.

~~~
2OEH8eoCRo0
We are talking about teaching. You guys wonder why students graduate who can't
code- professors who passed them because their shit that doesn't work looked
nice.

~~~
bayindirh
> We are talking about teaching.

I'm heeding the way of my professor. She cut serious points from non-working
code as expected but commented on our code in great extent regardless of its
state.

She one to one explained to all of her students why their code didn't work.
She similarly reduced grade of a working but, non-readable code and she
clearly told why she did that. Also you got bonus points for informed
experimenting, going the extra mile.

She always asked us hard tracing questions in exams. I complained once: "Why
do I need to compile this in my mind while the compilers can do all the job?"
She calmly answered: "If you can't compile that code in your mind, the
compiler can't do it either.". It took me 6 years to sink that in but, when it
did, I really enlightened.

With her style, you got to write working code to pass the course, regardless
of all bonus points. If you can't code, you can't pass the exams either. She
was great because of this.

Professors shall teach to write readable and working code, there's no
exception. She was actively developing NLP systems when I last talked with
her. I develop scientific applications. Both of these fields create convoluted
code by default so, writing readable code is a really great ability to have.

~~~
2OEH8eoCRo0
Yes, that's good. Nobody is saying that code cleanliness is worth 0 and
working code is worth 100. Working code is the most important metric but
cleanliness, extensibility, etc are also important but secondary.

Your professor did exactly the same that mine did back when I was in
university. Your code works? Good, you've met the minimum requirements, you'll
pass. Your code has to be immaculately written and commented if you want a
full perfect grade though.

------
jpm48
I've been using it for all my programming units for a number of years. Whilst
I don't use all of the features the main bonus for me is making the students
commit code regularly and see the progress (or not!).

It also has a number of advantages, I have lost count of the number of times I
have been sent screen shots of error messages (even camera photos of a
screen). I now insist that all errors a reported via issues.

This means I can fix / push code for problems and track what I have done.

It also helps with plagarism as I can usually see the progress of students
work with regular commits rather than one project that appears straight away
via normal submission processes.

For group work there are a number of tools to do analytics on who did what etc
so it make seeing how well the group has worked.

Now we are moving to online, I'm thinking of adding some of the CI / IDE
features that are being introduced to help with Lab exercises, however in our
area (Animation and Games) this is not ideal as a lot of what we do is visual
/ interactive.

~~~
kame3d
> For group work there are a number of tools to do analytics on who did what
> etc so it make seeing how well the group has worked.

I teach a computer graphics course and that seems useful. What tools do you
use?

~~~
jpm48
I've used this [https://gource.io/](https://gource.io/) for a good overview of
group work then the build in analytics. Most of what I do is to download and
run the code on my local machine, but I also ask for unit tests which help
with the grading. All code is mainly C++ / OpenGL with python sometimes.

------
hliyan
I know this comes from the Github team, but I'm not sure if I want to grant
this permission:

    
    
      Delete repositories
    
      Ability to delete any adminable repository
    
      This application will be able to delete any repository to which you have admin rights.

~~~
reustle
Please don't use code blocks for quoting text until HN finally fixes their css
on mobile.

> Delete repositories

> Ability to delete any adminable repository

> This application will be able to delete any repository to which you have
> admin rights.

~~~
dheera
You can inject your own CSS on Firefox mobile. It's also great for getting rid
of popups and paywalls.

~~~
IggleSniggle
This does not appear to be true on iOS? If it is...how?

~~~
dheera
That's because Firefox for iOS is really just a skin around Safari's WebKit-
based engine, because Apple plays the evil gatekeeper on their app store and
doesn't allow Firefox to use their own rendering engine. (Chrome on iOS is
also effectively just a Safari wrapper.)

It's one of the many reasons I think iOS is a horrible choice for a privacy-
conscious user.

Firefox for Android supports extensions.

------
sradman
This type of system seems obvious for programming courses but I wonder how
intuitive it is for pure documents; the classic essay or report style
assignments. At what age do kids embrace Markdown as the single source of
truth for their documents?

Do technical writers within Google use Gerrit, or whatever their Perforce
based review process is called, as a core part of their collaborative workflow
like coders do?

~~~
ShamelessC
This is peak hacker news.

I'm not entirely certain I'm understanding your concern as I don't see
anything in the feature list about how they handle "pure documents". My
assumption is that they expect you to use markdown for such submissions (a
valid choice for programming-based learning) and you're suggesting this should
be more widespread and used for teaching other subjects?

> At what age do kids embrace Markdown as the single source of truth for their
> documents?

I love markdown. I _want_ it to be used everywhere. But I know of _adults_ who
are barely interested in or capable of using Word/Google Docs correctly.

You want _kids_ to use _markdown_!? That is one of the more absurd things I've
seen on hacker news. Up there with that guy who suggested Dropbox wasn't
necessary because surely the average person can figure out how to use rsync to
an external hard drive.

A sibling comment managed to take this even further by suggesting LaTeX?! You
want kids, in grade school, to learn how to use LaTeX? I feel like I'm taking
crazy pills! Are you all being serious? What's next, all assignments need to
be submitted using JSON so teachers can program their own essay viewers?

That's obviously hyperbole, but rich text, Word or Google Docs are very
clearly the best option for essay style assignments. Those options have their
flaws from a technical perspective but you seriously need to look outside the
hacker news echo chamber if you think this is a good idea. Many of these
people are going to go into careers where if they submitted their work as a
plaintext markdown document their boss is going to say "what the fuck am I
supposed to do with this?"

Again, this is such a strange suggestion to me that I feel like I'm
misinterpreting it. If that's the case I apologise.

~~~
user5994461
>> But I know of adults who are barely interested in or capable of using
Word/Google Docs correctly.

I think markdown would work precisely because of this. Word is too hard to use
and too easy to create documents that are impossible to edit by a second
person.

For context. I've just watched my wife trying for 20 minutes to add one item
to a bullet list, with the proper indentation and numbering of course. Mission
impossible.

That problem wouldn't exist in Markdown. There is no way to accidentally do an
unmodifiable list of list in a table indented by spaces.

Of course any user adoption would require a decent editor software with live
preview and export to PDF.

~~~
marcolussetti
I admittedly haven't used it in some time, but Typora felt like it would fit
the bill as a solid editor with WYSIWYG live editing/preview, and export to
PDF (admittedly that isn't bundled it directly, you have to install pandoc I
think?)

------
amasad
GitHub classroom is awesome and although it's been around for a while it has
seen a lot of love recently, especially adding browser IDE integration and
autograding.

We at Repl.it worked closely with them to make it really easy for students to
start coding in seconds instead of hours. Announcement and HN discussion:

\- [https://github.blog/2020-05-26-code-in-the-browser-with-
gith...](https://github.blog/2020-05-26-code-in-the-browser-with-github-
classroom/)

\-
[https://news.ycombinator.com/item?id=23313838](https://news.ycombinator.com/item?id=23313838)

~~~
gorgoiler
Thank you for the massive leaps you’re making with repl.it. It’s game changing
how low the friction is.

How do I quickly convince my safeguarding team of the safety of repl.it and
github integration?

We’re obviously concerned about pupils having contact with strangers. A much
more common problem in schools is bullying. It’s also important to not allow
yet another channel for harassment. Anything where pupils can privately
message each other is usually quite difficult to endorse.

~~~
amasad
Thanks for the kind words. I don't think repl.it provides anymore social
features than say GitHub does. How do you currently handle those concerns with
regards to social coding on GitHub?

~~~
gorgoiler
I have yet to deploy either in the classroom and haven’t really looked into
where to begin. My hope is that when I start researching this I will encounter
a “lock down social features to prevent bullying” checkbox, hah!

Today’s repl.it based lesson went amazingly well, yet again!

~~~
amasad
We have an upcoming teams feature that allows you to have almost a complete
instance of repl.it for you, and we'll have special pricing for education, and
maybe as part of it we'll add the checkbox. Thanks for the feedback. Feel free
to email me amjad@repl.it with anymore feedback.

------
LifeIsBio
Wow.

What a mixed feeling of (mostly) amazement and (some) disheartenment. I
started looking into this space--particularly the autograder feature with full
control of the execution environment, which looks look it was added to GH
Classroom this March--back in 2016. I was helping teach life science graduate
students how to code, and was surprised to find I couldn't find anything that
fit my needs. I started working on CodeStories[1] during the few spare hours I
had each week after grad school work. I made it decently far and built out a
number of cool features. On the instructor side, course creation is tightly
integrated with Jupyter notebooks, which is really handy. And the courses
themselves have a cool level-based structure where main problems have
associated side-tasks. I was able to use the site to teach several summers of
courses.

I haven't necessarily kept a super close eye on developments in this space
since 2016, so it wouldn't surprise me if there are other players with unique
features at this point. But given that GH (arguably one of the biggest
potential players here) basically just launched, there's clearly still work to
be done. Personally, I had largely paused CodeStories after grad school until
the events of early spring made it clear that remote learning is almost
certainly going to make a resurgence. Since then, I've been putting in crazy
after-work hours to figure out how marketing works (which has been intensely
difficult given my lack of experience) and put a final layer of polish on a
paid offering. Intermediate Python for Bioinformatics[2] starts in a couple
weeks and looks like it's going to be a reasonable success. I'm excited for it
and for whatever comes after it.

All that to say, I guess this is what it feels like getting scooped. I'm sure
it's possible to argue that I'd already been scooped. But somehow it's
different seeing it from GitHub.

Congrats to the team that built this! It looks like an amazing tool and I'm
excited to see it put to use, particularly outside of the pure-CS world.

[1] [https://mycodestories.com/](https://mycodestories.com/)

[2]
[https://mycodestories.com/inter_python_biofx_20/](https://mycodestories.com/inter_python_biofx_20/)

~~~
sdan
#1 Your story and the landing page are conflicting. I can't seem to understand
anything about your product from the landing page

#2 It looks like its time to pivot. Find a niche which you can exploit (like
bio it seems) and conquer it. Google Docs looked like it was going to dominate
everything and no one had to do anything else in that space, yet Notion comes
along and is now valued at $2B.

~~~
LifeIsBio
Thanks for the feedback. Do you have any particular examples that are
conflicting? Would be happy to update the site to clarify any confusion.

In a sentence, the product right now is an 8-week bioinformatics course. It
happens to use the CodeStories platform, which I developed, but haven't
fleshed out into its own product offering yet. Does that help?

re #2: Good point; I suppose there are lots of similar examples. Zoom is a
relevant one that comes to mind.

~~~
Kkoala
Not OP but, if CodeStories is supposed to be an education platform similar to
the Github Classroom, why is the landing page selling a Python course?

Might be easier to understand by example: I'm a user that is interested in
education platform, so I land on CodeStories website (because of your comment
I thought that's what it is about). I see that the landing page is instead
selling a Python course => I get confused and close the page thinking that I
landed on wrong page.

~~~
LifeIsBio
Ah, right. That makes a lot of sense. Similarly to what I mentioned in the
parent comment, CodeStories as a “platform” isn’t ready for market yet. It’s
feature complete enough that I or one of my teammates can easily use it to
teach a class. But the instructor side of things needs another layer of polish
before an MVP would be ready to sell to teachers.

To be clear, all of our external communication for the past couple months
(outside of this conversation, which is primarily about the platform) has been
about InPyBio, the Python course.

Even though the separation between the platform (CodeStories) and the
platform’s first course (InPyBio) is clear to me, there could obviously be
clearer communication about this distinction on the site.

------
jsumrall
Happily using GitHub Classroom for programming assignments for the interview
process at work. HR has the URL they send to the assignment, candidates do the
work and create a PR, and then HR assigns developers as PR reviewers when the
candidate is done.

~~~
davidbanham
Does it allow you to set a hard time limit on how long the candidate has to
complete the challenge?

~~~
divyavaishnavi
Yes you can set deadlines for assignments.

------
divyavaishnavi
@maeln @pacman128 @nwhitehead, @tusharsoni, @throwawaygh, @bo1024, @elcomet,
@jpm48, and everyone else intending to help us, we’d love to connect with you
to improve GitHub Education. Do share your details
[https://forms.gle/Ni9Q8D574EWet5x27](https://forms.gle/Ni9Q8D574EWet5x27) and
we shall reach out.

------
shanecoin
This seems like a great way for newcomers to learn the basics of `git` though
GitHub. A great move by GitHub to try to capture this market of users who may
not yet be comfortable with subversion control.

~~~
saagarjha
That being said, I'm a little too annoyed that "GitHub" is synonymous with
"Git" in many students' (and professors'!) minds…

~~~
Cthulhu_
Yeah, if a student is taught Github as part of their curriculum they're more
likely to stick with it.

I can't really knock it, but at the same time, this has been Microsoft's
strategy for a long time, with students learning Office in school but no
competitors, so they take it with them in their private and professional life.

It's a difficult one though, given that both github and office are pretty
standardized / ubiquitous everywhere.

~~~
saagarjha
I think this particular gripe has nothing to do with Microsoft as it predates
the acquisition by quite some time.

------
memexy
I wonder if exercism.io could have been used as well for this type of thing.
Even their pitch is very similar to what's on exercism.io

> Learning through Exercism is quite different to other programming websites,
> with a focus on individual practice and mentor-based learning. Here's how it
> works. ...

~~~
satvikpendem
The mentor feature is basically useless, there are way too many people using
Exercism for mentors to be able to contact each and every one of them. Your
best bet is to just do the exercises themselves and search for any errors.

~~~
memexy
I haven't used it in a while so I don't remember the pain points but that
seems correct. I was mostly interested in doing the exercises and not the
feedback.

What I meant with my original comment was that exercism.io had the right
features for providing student feedback already, i.e. the feedback was the
main point of the platform.

------
bvrmn
Hm, why classroom requires admin access to organisation and private repos? It
seems there is no way to opt out.

~~~
Cthulhu_
Not sure, maybe you're supposed to create an organization just for classroom?

------
czechdeveloper
I've tried to use it once to teach group of 15 students. But I left it in
favor of just public GitHub repository for each student. It just felt too
heavy for the task.

------
aneeqdhk
It's a step in the right direction. They face issues that plague traditional
LMS systems in that LMS systems are pretty much archaic and opaque in
documentation.

The CI part works well (I would expect the same from github), but things like
syncing up your class roster or just inviting an ad-hoc set of students....
that's very clunky.

------
OhSoHumble
Too bad it doesn't have enterprise support. Would be great for educational
courses within a company.

~~~
petepete
I'm currently teaching git to a group of about 10 content designers in the
department where I work. They are enjoying it and looking forward to work more
closely with developers and other designers.

This would be ideal and would definitely make my job a bit easier.

------
laurieg
I like the tool, especially the integrations with repl. Administrative
paperwork quickly becomes a massive problem for teachers and any tool that
cuts down on that workload is a God-send.

I have used google classroom for courses before and I really like it. It's
pretty easy to use but even so, it does create a fairly big mental over-head
for most students. It's easier to forget that these days many university
students have no computer experience outside of smartphones. I had one class
where an assignment, a paragraph of text was submitted variously as a google
document, a spreadsheet, a power point presentation and a screenshot from a
phone.

Git for none programmers is out of the question.

------
qchris
I could see this being an immensely useful tool in certain contexts. I know
that having something like this, as opposed to submitting a print-out of my
program results during my introductory programming course (as well as just
being forced to become comfortable with what a command line is for pushing
commits and understanding version control) would have a big step forward at
the time. Obviously, it makes business sense for GitHub as well in terms of
gaining users, but I think there's a chance this is one of those times when I
see a serious upside for users could also be helpful to them in the long term.

------
mmm_grayons
I'd hate the idea of having a record of all my mistakes as a student. I'd
probably just use a separate remote for my develop branch and squash into one
commit when merging to master.

~~~
saagarjha
It's CI for your homework. Surely your teacher will only look at your finished
work?

~~~
skissane
Seeing your mistakes might be useful in reassuring the teacher that you did
the work yourself, rather than simply plagiarising the solution from somewhere
else.

~~~
saagarjha
Sorry, professor, I simply don’t make mistakes.

~~~
vincnetas
It does. First hand experience when after couple of months of not showing any
progress student shows up with completed assignment coded using constructs
which where not even taught in lectures... and when asked, can not modify a
thing.

~~~
saagarjha
I was mostly joking in my previous comment, but i know students (including
myself) that have occasionally submitted assignments as a single commit
passing all test cases using “novel” constructs…of course, we can readily
modify it if asked to.

------
elsurudo
Does anyone have any experience using this to access recruiting assignments?
Or any other such tools you could recommend for an org that is already in the
Github ecosystem?

------
tannhaeuser
I'm wondering at which point all of those who took the blue pill and switched
to github for all their code and for its networking effects come to regret
this decision as github expands into and competes with their customer's
business, not unlike Amazon in this respect. I'd imagine there have been a
sizable number of elearning/digital classroom projects in the last 3 months
due to coronavirus that might feel threatened, for example.

~~~
joe5150
not a user, but this appears to be focused on programming coursework and would
most likely be used to supplement an actual LMS. are there other products in
this specific niche?

~~~
MarceColl
[https://jutge.org/](https://jutge.org/) was created by two teachers at my
university (UPC in Barcelona)

------
jedau
This looks awesome and seems to have tons of potential! I guess the main
barrier here for adoption is that non-technical people might be too
intimidated to learn how to utilize this properly. Maybe if the interface
would be retooled to cater even to non-technical courses as well this could
become a new standard for online learning.

------
throwaway391003
Hmmmm seems like a weird vertical for github to go into. kinda makes me feel
they could be spreading themselves thin.

~~~
tsumnia
Many course use GitHub as a part of their submission process. NC State
connects a Jenkins server for their automated feedback to students. This would
assist by reducing the number of platforms students need to use while learning
CS.

------
praveen9920
I love it.

Accountability of submissions and recorded specific feedback for each
assignment is great way to learn.

One feature I would like to see is peer reviews. Although it might cause
cheating or plagiarism, it could be useful tool for peer learning. Probably
can add it as post assessment step.

------
darils
GitHub Education listens intently to the needs of students and teachers. We
are delighted to work alongside Relp.it to help students get started quickly
in the same coding environment, and allow teachers to focus on teaching
instead of troubleshooting.

IDE Integration announcement: [https://github.blog/2020-05-26-code-in-the-
browser-with-gith...](https://github.blog/2020-05-26-code-in-the-browser-with-
github-classroom/)

GitHub Classroom starter guide: [https://github.blog/2020-03-18-set-up-your-
digital-classroom...](https://github.blog/2020-03-18-set-up-your-digital-
classroom-with-github-classroom/)

Autograding with GitHub Classroom: [https://github.blog/2020-03-17-improve-
student-success-and-i...](https://github.blog/2020-03-17-improve-student-
success-and-increase-teacher-time-with-autograding/)

~~~
Myrmornis
This just sounds like sales talk. “Listens intently” doesn’t mean anything.
Even if you work in sales for GitHub/Microsoft, please just write like a human
when you post to HN.

------
k__
Nice!

I'm teaching software development and was using freeCodeCamp.

But my students are designers, so the curriculum is often too much and I would
like to strip it down. Maybe this is a way to streamline things a bit more in
the future.

------
vshan
I so wish all of this content was public. How lovely would it be for skill
development if all of us had access to these assignments and projects with
auto-graded tests.

------
dimxasnewfrozen
This looks great and really want to give it a try. Unfortunately, I can't add
a github organization. It goes through but never shows up in my organization
list.

~~~
divyavaishnavi
Hi @dimxasnewfrozen, We are working to improve this experience in Classroom. I
would love to connect with you and gather your feedback. Do share your details
[https://forms.gle/Ni9Q8D574EWet5x27](https://forms.gle/Ni9Q8D574EWet5x27) and
I shall reach out.

------
mushufasa
Can this be used to create automatic interactive tutorials for e.g. open
source projects?

------
yepthatsreality
> “all while using GitHub, the industry-standard tool developers use.“

They mean “service” not “tool”.

