Live data from Hacker News

Show HN: Intro to Python and Programming for non-CS majors

github.com

11–20 of 56 posts

Re: Show HN: Intro to Python and Programming for non-CS majors

#11

Amazing content, thanks for making it public! For people lurking, it has Notebooks, Quiz (review) questions, AND exercises. This is very good. @webartifex it could help the spread of your course if you could put the Notebooks in a self-hosted Jupyter Notebook environment, so students don't have to install anaconda and all that. Shameless plug here, I'm the creator of Notebooks.ai, which is a hosted Jupyter Lab enviro…

Good tips. I will look at this.

I am planning to use Google Collab for a totally remote class next weekend to set up group work.

Re: Show HN: Intro to Python and Programming for non-CS majors

#13
post #12

Awesome work! I can't wait to test this on my non-programmer friends who want to learn how to code. This seems to have a somewhat different approach to the usual Python tutorial, it might do the trick! Thanks

I tried to put in everything I myself would have wanted to know when starting in 2014.

That is why I spend so much time on the memory diagrams in the videos in particular. It literally took me years to figure that out. I have watched a lot of online lectures (e.g., from OCW), but only rarely do instructors talk about that. Maybe formally studying CS would have done the trick for me as well :)

Re: Show HN: Intro to Python and Programming for non-CS majors

#14

Wow this is really thorough and well thought out. It's not just an "intro" but goes into all the language builtins, and common usage patterns (e.g. zip, map, etc), which many "intro-to" style courses skip over. Code in repo is MIT licensed and videos are tagged as Creative Commons (CC BY). Finally a good OER course for people to learn Python!

The Python community is basically one big OER course. Just look at all the recordings from the many PyCons.

I have a second half for the "book" planned but "unfortunately" also need to do some research for my PhD.

Maybe someone wants to provide some more advanced chapters via a pull request?

Re: Show HN: Intro to Python and Programming for non-CS majors

#15

Forgive me if I missed this, but I would highly recommend talking about virtual environments, pypi, and the existence of other things like pipenv. The environment/dependency management story for Python is such a tire fire and I wish someone introduced me to it from a reasonably high level at the very beginning of my time with Python. It doesn't have to dig deep. Just needs to talk about what these things are, why the…

I agree that this is important. My personal choice is to use pyenv together with poetry on a Linux machine. Yet, please understand that I teach this course to absolute (!) beginners. That is why I chose to use the Anaconda Distribution in class, which comes with every package installed that I want my students to study. Making your first steps in programming is hard enough and so I want to keep the "boiler plate" as s…

I hear you. There's probably no one "right" answer because as I type this, I'm already conflicted with my own opinion. There's already a mountain of important topics to teach.

What's on my mind is that all of the "meta" parts of programming are usually seen as "boilerplate" when they make up such a critical part of "authoring" meaningful software.

I'm approaching this concern from my personal experience in university. I took a 100 level "CS for Non-CS majors." We did all the formal CS stuff like talking about variables, functions, loops, recursion, etc. but by the end of the course I was still never taught how to take my java applications and package them in a way that I could share with my friends. It felt very much, "you can do so much with a computer... as long as you stay within the environment we rushed you through setting up and use the few libraries we gave you." (I wrote a Reversi game for my girlfriend and shipped it by installing the entire development environment on her laptop! Hah.)

I guess my $0.02 is, maybe near the start, I would have loved a little detour block, "If you want to learn how to take these Python scripts/programs we're writing and share them with the world, check out this advanced chapter at the end of the book!" The same might probably be true for, "if you want to play with other Python libraries, take a peek at this chapter that talks about pypi and environments!"

Re: Show HN: Intro to Python and Programming for non-CS majors

#17
post #16

Can I suggest adjusting it for some other consumer platforms, such as, for example, Pyhtonista on the iPad? That would make it easier to divulge in these turbulent times when many people are stuck using somewhat unusual instruments and platforms.

Does Pythonista for iPad support Jupyter notebooks?

Re: Show HN: Intro to Python and Programming for non-CS majors

#18
That's a really cool project! I will probably be recommending this to beginner Python programmers I know.

As a side note, I think sharing lessons as Jupyter notebooks is a really great idea for programming education. I would like to see more of this style of course for other programming languages as well.

Re: Show HN: Intro to Python and Programming for non-CS majors

#19
post #18

That's a really cool project! I will probably be recommending this to beginner Python programmers I know. As a side note, I think sharing lessons as Jupyter notebooks is a really great idea for programming education. I would like to see more of this style of course for other programming languages as well.

I agree. Although at some point, any beginner must be exposed to the command line :)

My observation about myself when studying is this: Nothing, no video course, beats a well written book. And, such books are often "slow" reads as you have to think a lot when reading. I found Jupyter notebooks a good instrument to put a lot of info in. My guess is that there is three times the info in my course's notebooks as there is in the 25 hour video recordings.

Re: Show HN: Intro to Python and Programming for non-CS majors

#20

Forgive me if I missed this, but I would highly recommend talking about virtual environments, pypi, and the existence of other things like pipenv. The environment/dependency management story for Python is such a tire fire and I wish someone introduced me to it from a reasonably high level at the very beginning of my time with Python. It doesn't have to dig deep. Just needs to talk about what these things are, why the…

I second this. Sure, there's a huge value in the beginner-friendly structure that Jupyter notebooks provide, but it's also a limiting factor as it's just a very small subset of the Python experience (I've personally never edited a single .ipynb file in my life)

Note, this is intended for people who will use python for data science, not for future software engineers.

Data scientists using python but not using jupyter notebooks is the exception.

Post reply on HN