I have used Thunderbird and Evolution mainly. They cannot
really do that afaik.
> Probably some good IMAP-Client supports this?
The Gmail clients do that (at least the last version's I remember 3 years ago). Haven't seen any other FOSS that does so too. That is what made going away from Gmail kind of "hard".
Currently I'm using K9 on Android and the web client by mailbox.org based on OX AppSuite. Both are ok, but usability could be better.
I am using the German email provider mailbox.org
They even report how often the government forces them to release info with a search warrant.
However, I have yet to find an email provider that mimics Gmail's tagging system (=> you can give n many tags to a single email and that email is only kept once on the server).
I often think that Google's "Don't do evil" motto is stretched way too often these days.
I tried this out this week for a workshop. It seems to not run smoothly on Firefox and some students have company laptops where they cannot change the browser easily.
Also, I heavily use Zoom's breakout rooms functionality.
I created lots of exercises. They are all on GitHub (see *_02_exercises.ipynb files on https://github.com/webartifex/intro-to-python). My "offline" students take between 4 to 8 hours per exercise set.
two weeks ago, I recorded and published my "Introduction to Python & Programming" course that I have been teaching to non-CS majors over the last 2 years.
Question: Because the semester is over at the end of April and I have no teaching obligations until the fall term, I was wondering if I should be teaching the course over the summer. I have no experience with developing a MOOC, so I am curious to hear your suggestions.
My plan was to put one video lecture up per week and then have a Q&A for the students on, for example, Zoom. My university has a big license.
My big observations over the last couple of semesters are that non-CS majors need some personal tutoring. No need to be 1-on-1. Assigning students into small study groups and then talk to the groups is enough.
So, I am basically offering my time once a week for free for any beginner to Python.
Maybe we can start an initiative where other software engineers also volunteer their time in a similar format.
I audited a couple of the standard MOOCs on edX and coursera in the last year and find that especially beginners struggle if they only have a message board to ask questions and not an interactive tutor.
Cool initiative. I will take a look at some of the sessions. Can you post a schedule when they will take place?
I am in particular interested to see how much depth you expose the "non-programmers" to. Is it just an applied course? E.g., here is a function X that does Y. Or do you focus also on the implications in memory and, for example, Python's object model?
Good luck. We need more non-programmers to learn to code. Not for coding's sake. Most of them won't become developers. But it allows academics from all kinds of disciplines to teach their students advanced stuff. I see programming just like most students independent of the major must take Calculus 101 or Statistics 101.
Subscribe to my channel https://www.youtube.com/user/webartifex if you are interested in more Python applications in the field of business administration. I am new to YouTube and will post at most 2 meaningful videos a month. No monetization, no hidden product placements.
The plotting tools I would actually consider in an "Intro to Data Science" course, not in an "Intro to Programming".
I started to write a library implementing Gilbert Strang's Linear Algebra book assuming nothing but core Python. What inspired me to do that was reading Philip N. Klein's book "Coding the Matrix". I thought writing a LA library for fun and study purposes makes sense if you want to go on and study data science. However, that project is not yet ready to be published. Would that be what you are looking for?
I introduce the idea of a type right in chapter 1 because of exactly the argument you make.
As Python is really more about the behavior of objects and not so much their type, I introduce these already from chapter 4 onward, for example, iterable vs. container, and many more. I actually would say that this is the essence of any dynamic language (duck typing).
"and how to read the python documentation" -> that is an important point you raise!!! I found that beginners have real trouble reading the docs because they are screening for words like "list" instead of "iterable". However, as I teach abstract behaviors early, they actually understand the docs.
"like using .format() instead of fStrings" -> I mention .format() but mainly use f-strings and tell the students right away that they are both faster and easier to read and that they should default to them.
I hope there are no companies that hire a "data scientist" that only speaks HTML :)
The course aims at students of business administration. What do they usually do? Maximize some profit function. So, my background is really more traditional Operations Research.
Pandas and numpy & friends will be in Chapter 9 that I had not yet time to finish (the semester runs until end of April and is currently at Chapter 5).
Furthermore, it is a programming (!) course, not (!) a data science course.
Please define data science to me. Is it "only" curve fitting to you? Or also optimization (e.g., in logistics)? Then, dynamic programming (and because of that recursion) is super important.
I rely on Jupyter notebooks mainly because it is a course for people with absolutely no prior experience that also do not major in CS.
.py files are actually explained in Chapter 2 and will be used in a follow-up course.
Agree. I actually found that I set up a Postgres instance to put the data of an object and use pandas only via sqlalchemy. Most of the stuff pandas does, can be achieved a lot more efficient if done right in a real database.
I also agree about the algorithms part. For my research, I look into vehicle routing problems a lot and there is no sklearn for that or something alike. Maybe an idea for a future project.
An experienced data scientist with deep knowledge in the topics you mention easily replaces 10 of those "candidates". I feel the best way to train more serious programmers and data scientists is to teach kids to program earlier in high school. Maybe make it mandatory just as math is today. Then, a lot more students may choose CS or math as a major in college.