Hacker News new | past | comments | ask | show | jobs | submit login
How to Think Like a Computer Scientist: Interactive Edition (levjj.github.io)
184 points by l8rlump 9 months ago | hide | past | favorite | 27 comments



The site:

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.


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).

[0] https://runestoneserverascholer.readthedocs.io/en/latest/ind...


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.


Port Authority is open source

https://github.com/ACK-J/Port_Authority


Can UBlockOrigin do the same as port authority if I add blocks for localhost and local ips?


I think NoScript does that as well (it has a LAN checkbox).


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.


More like "Introduction to Python Programming".


> The table of contents makes me feel like the book title should be "How to use a computer like a scientist"

I can understand the reluctance about computer science; but what about the table of contents made you think scientists?


And science also has a meaning which has nothing to do with programming. What makes you think that most scientists use computers in this way?



"About this Project

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.

You're better off going here instead, interactive or no: https://allendowney.github.io/ThinkPython/


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.


What is this? I think people just upvote it because it looks old and must be something good.


Related:

Think Python, 3rd Edition - https://news.ycombinator.com/item?id=39392881 - Feb 2024 (125 comments)

Think Python 2e - https://news.ycombinator.com/item?id=35421096 - April 2023 (30 comments)

Intro to programming with Python – How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=24932497 - Oct 2020 (1 comment)

How to Think Like a Computer Scientist: Interactive Edition - https://news.ycombinator.com/item?id=12639320 - Oct 2016 (17 comments)

How to Think Like a Computer Scientist: Learning with Python 2nd Edition (2012) - https://news.ycombinator.com/item?id=7887541 - June 2014 (16 comments)

How to Think Like a Computer Scientist - Interactive Edition 2.0 - https://news.ycombinator.com/item?id=6175920 - Aug 2013 (1 comment)

How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1749646 - Oct 2010 (6 comments)

How To Think Like A Computer Scientist - https://news.ycombinator.com/item?id=1624833 - Aug 2010 (1 comment)

Think Python: How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1586000 - Aug 2010 (9 comments)


How to think like a programmer*


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.


Its really more of an entry level Python book than really teaching you how to think like a computer scientist imo.


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.


Yes.

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!


Very old and outdate, and plagiarize


What is it plagiarized from?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: