Looks like it's trying to use Runestone[0] (a textbook authoring tool) to get the number of online students but the server url is improperly configured to point at localhost (hence the port scan trigger).
Took a look at Port Authority... it's permissions require access to all data on all websites. Trading one risk for another (bigger) one? It's understandable why such access is needed, but really too bad for privacy.
The table of contents makes me feel like the book title should be "How to use a computer like a scientist" - computer science already has a meaning which is quite different.
This interactive book is a product of the Runestone Interactive Project at Luther College, led by Brad Miller and David Ranum. There have been many contributors to the project"
Based on a really old edition before it was renamed "Think Python" eons ago. The "interactivity" is pretty much quiz questions that test that you read the chapter at all. Looks like it has some pythontutor integration too, but not much. Layout feels like they gave up on the CSS halfway through.
The third edition (at your link) is interactive, each chapter is available as a Jupyter notebook. Though to run it on Google Colab (where it is available by default, but you can download it) you do have to log into a Google account.
Totally unrelated but did anyone check the author's CV? He has had multiple intern dev roles even though he had at least 5 years of previous dev experience
Per his CV he was getting a masters and a PhD at the time. Graduate students often take internships, it's a way of getting funding, extra experience, or just to earn some money while not committing to a full-time position.
Also, I don't think he's the author of this, his name is not in the list of authors. This seems to be a mirror, perhaps with some customization for his class. Probably from his time teaching the intro to Python course (also on his CV) at UCSC.
Slightly off topic, but does anyone have experience using the book this is based on to teach or learn programming? If so what was your experience like? What was good or bad about it for example?
I used the Runestone book How To Think Like A Computer Scientist (I don't see any difference between the linked book and the Runestone one); completed the full book front to back, and have a deep appreciation for it.
I didn't have any interest at all in programming or computers until my mid-30s, when a colleague in grad school showed me some Python tricks that completely replaced a set of absolutely hideous Excel spreadsheets. My interest was sparked, but I struggled - there was some kind of mental barrier I just couldn't hop over in order to make sense of programming language syntax. This book got me over that hump and sent me on my way. Several years later, I've switched careers and work with Python professionally, and in my spare/hobby time I work on a variety of C, Rust, and Zig projects.
What I liked: there is no barrier to entry. For a person with only the most basic/cursory understanding of, and no real interest in, computers, this was huge: no need to install, get an editor set up, no need to understand anything about the shell, PATH issues, or how to run a script or work with environments or anything like that. All of that came later. I liked the CodeLens diagrams a lot, the visualization was critical to that 'aha!' moment. I think the book is well organized; the flow from chapter to chapter, concept to concept, made a lot of sense to me. Overall, the book gave me a sense of 'making progress', challenging me while keeping things light and fun and interesting.
I don't have any complaints. This book got me to the point where I was just skilled enough to automate basic and useful things, and interested enough to start diving in properly and learn how computers really work. Since completing it, I've been learning pretty much nonstop.
It doesn't really teach CS or anything, but I'd say it does teach "how to think about programming like a computer scientist". Few entry-level "practical programming" textbooks are going to address - even at a cursory level - formal languages, recursion, mutability and immutability, issues surrounding aliasing, HtDP-esque design recipes, composition, and so on.
Even if it's not the best (to paraphrase Churchill: let the clever ones have SICP as an honour and HtDP as a treat), it's probably how I'd introduce the "average" student to CS.
I'd recommend them something readable like Programming Languages: Principles and Paradigms (https://link.springer.com/book/10.1007/978-3-031-34144-1) that covers more ground and paints the larger picture while citing many original papers.
I have read the book in at least two programming languages.
I'm a huge fan of Downey for lowering the entry bar to solid logic and reason around computer science, particularly when introducing Python to novice learners outside traditional collegiate computer science programs.
For this reason, I've recommended the book to friends who teach or have kids.
What's great about Downey is that he brings together concise and clear writing with unimpeachable correctness, a quality that was missing from my computer science education, where the curriculum was set in stone and was decades old and written by someone without Downey's gifts.
The fact that this jupyter stack runs on a five year old android phone without issue is a bonus!
levjj.github.io
is trying to scan open ports in system. (Blocked by Port Authority add-on in Firefox)
That is not thinking like a Computer Scientist.