6 ms·
A Data-Centric Introduction to Computing
- pphysch 5y ago1. "Data-centric" 2. Uses Python and a Python/Racket-derivative language (Pyret) exclusively Frankly, I can't reconcile "data-centric" programming foundations that completely gloss over the dirty realities of bits and pointers--the real foundation of data and data structures. It's extremely ironic to me that the first section of the body is titled *3.1 Motivating Example: Flags*. Flags? Like bits, bit flags, bools, the simplest form of digital data, right...!? No, it's literally about building an OOP-style abstraction of national flags.
- nlarew 5y ago> bits and pointers--the real foundation of data and data structures Sure, if you're programming a database b-tree or other system level application then these are important. Most developers do not write that type of program. In fact, good higher order data models abstract away implementation details like bits and pointers so that you can focus on things that actually matter - like your domain and what your data describes within it. > No, it's literally about building an OOP-style abstraction of national flags. I'm not sure where you get the "OOP-style" critique. I think this article does a good job of describing an expression-oriented functional style - a natural pairing with a "data-centric" paradigm. It doesn't even mention classes, mutable state, this/self, polymorphism, encapsulation, etc. This is an article for true beginners (it introduces number and strings!) so it makes sense to use a real, tangible thing like flags as an example. Yes _ national flags_, the real things that 99% of people who don't program think of when they hear the word flag.
- pphysch 5y agoAnd yet these "data-centric" programmers are in for a world of hurt and confusion when they crash into their first numpy or psycopg2 import. Better to start them with the actual foundations of what data looks like, in my opinion.
- BoiledCabbage 5y ago> Frankly, I can't reconcile "data-centric" programming foundations that completely gloss over the dirty realities of bits and pointers--the real foundation of data and data structures. "Bits and pointers" are not the real foundation of data. It's voltages, chips and the chemistry & physics that support them. Being serious though, all computing is an abstraction. Use the appropriate abstraction for your domain. If your domain isn't directly how the data is stored then don't start with the physics, chemistry, chips, pointers and bits.
- FranzFerdiNaN 5y agoLet me guess: you learned programming in C and thus feel that everyone should learn the same order of subjects?
- pphysch 5y agoAlmost; I "learned" with Java/Python for years then learned with C.
- dan-robertson 5y agoClearly you and the authors have very different ideas about what data is. But then it just feels like a pointless complaint like complaining about an article for using American/commonwealth/British spelling. Presumably your actual complaint is about the structure and pedagogical merits of the book, but then why not write that instead of moaning about definitions? For what it’s worth, I disagree with you and I think there are good CS books that don’t really talk about bits or technical details of computers (SICP is a famous example). I also think that C style computer-fiddling doesn’t really help to build intuitions for modern computers as the models implied by C don’t really map to compiler output or to performance on real computers—if you want to know about that, CS-101 is probably the wrong place to go.
- pphysch 5y agoA semester/year-long programming course that leaves students with not the foggiest idea of what "byte" or "csv" or "database" means has absolutely no business calling itself "data-centric". Full stop. "Algorithm-centric" is a far more accurate description of what is going on in this book. And that's okay. Just not as marketable.
- ssivark 5y agoIt’s “data humans might be interested in” rather than “data as we happen to implement using semiconductor circuits”. “Data-centric” is an overloaded concept that means different things to different groups of people (all legitimate).
- pphysch 5y agoLet us be honest: this textbook is the result of academic inbreeding and the career ambitions of its authors. Find me a single job posting that involves both "data" and programming (including relatively complicated recursive binary tree algorithms) yet does not rely on the barbarian semiconductor or its vulgar bits.
- thewakalix 5y agoSure, all programming "relies" on hardware and low-level languages, but that doesn't mean that a purely high-level approach is useless. That's the point of abstractions.
- ngcc_hk 5y agoHow does this compared with using say lisp and relational data … strange to ask but to read hundreds of pages using a new language pyret need some motivation.
- webmaven 5y agoHmm. I can't find anything that states a license (or even a copyright) for the text. It would be nice to know how the text can be used (and reused).
- gnabgib 5y agoDupe of two posts two days ago: https://news.ycombinator.com/item?id=28260491 https://news.ycombinator.com/item?id=28260491, https://news.ycombinator.com/item?id=28261760 https://news.ycombinator.com/item?id=28261760 .. y'all are using slightly different URLs though.