6 ms·
Computer Science I [pdf]
- johannsg 9y agoI only scanned it, and it seems like a solid book; however, I found that PHP is an odd choice for CompSci I book. From the book: > PHP is a dirty, ugly language held together by duct tape, cracked asbestos-filled spackle and sadness (http://phpsadness.com/ http://phpsadness.com/). It is the cockroach of languages: it is invasive and it is a survivor. It is a hydra; rewrite one PHP app and two more pop up. It is much maligned and a source of ridicule. It is the source of hundreds of bad practices, thousands of bad programmers, millions of bugs and an infinite abyss of security holes and vulnerabilities. It is a language that was born in the wild and raised in the darkness by two schizophrenic monkeys. But its got character; and in this world, that’s enough.
- misingnoglic 9y agoI came here just to say this as well - I like the model of students learning Python then using Flask much better.
- terminalcommand 9y agoOn the other hand C, Java and PHP complement each other. Whereas Python is a general purpose scripting language PHP is built for Web. It will be a huge motivation for a first year comp sci student to be able to write together a simple site in PHP and find some free host to put it in. I think "practicality should beat purity" for an introductory course. The students usually will have a chance to catch up on Python in a data visualization class anyway. PHP is much simpler in terms of understanding, you do not need to explain what WSGI is, what routing is, what template engines do etc. Put your code into <?php and ?> and you're all set.
- r0ze-at-hn 9y agoWouldn't JavaScript be a better third choice? Push your repo up to github in you instantly have a "hosted" webpage.
- terminalcommand 9y agoJavaScript would also be suitable, it is easy, it is ubiquitous. The kids would need to be introduced to the basics of tcp/ip and HTTP and then be able to use Node.
- submeta 9y agoExactly my thought. It Starts with basic principles, then shows how those principles are applied in three selected programming languages: C, Java, and then PHP?! There are a dozen alternatives that are more suitable.
- bogomipz 9y agoPHP is only covered in any kind of depth beginning on page 495 of a 643 page book though.
- gervase 9y agoAlthough I agree that PHP is an odd choice, I do think there's something to be said for teaching computer science with a language that the students (probably) won't end up using professionally. In some sense, this permits a decoupling of the language ergonomics from the underlying principles, thereby emphasizing 'learning' over 'training'.[0] The very first language I was ever formally taught was Lisp. I haven't used it even one time since then, but it forced me to understand recursion at a cellular level, which has painlessly translated to every language I've used since then. There's a significant distinction between "I understand how [inheritance|recursion|functional programming|etc] works in <language of choice>." and "I understand how [inheritance|recursion|functional programming|etc] works, period." By choosing a non-mainstream language, I suspect that it makes it slightly more likely to end up in the second category than the first. [0] Note that this applies only to formal computer science training, NOT developer bootcamps, where the end goals are totally different.
- sotojuan 9y agoI see your but many students will end up using PHP for work. In my NYC college a good amount of people I graduated with are doing PHP, there's probably more PHP jobs between the coasts. I think Lisp or Scheme is great for that kind of pedagogy, though the trend lately has been to use "practical" languages.
- yeukhon 9y ago> There's a significant distinction between "I understand how [inheritance|recursion|functional programming|etc] works in <language of choice>." and "I understand how [inheritance|recursion|functional programming|etc] works, period." I would love that to happen and I think Harvard's CS50 is one such example. Assignments will cover C, Javascript, and Python. However, most 101's goal is to teach students to just learn to code. The "think like a computer scientist" is inaccurate (looking at the famous Python book: How to think like a computer scientist). I honestly do not think teaching PHP in 101 will achieve the latter case. Combining Lisp/Scheme/Racket and a non-functional language like PHP will probably do. Also, we need to educate each other that despite all the insecurities with PHP in the 2000s era (because there were plenty of free PHP hosting providers, a gem for kids like me back then), PHP has improved, and let's criticize poor LAMP stack configuration and bad practices. Anyway, I heard, and maybe not true at all, more PHP code at FB are now written without HHVM? Someone from FB please correct me if I am wrong.
- B4TMAN 9y agoI was going to start learning webdev and I was suggested HTML/CSS/JS/PHP/MySql. Should I go ahead with PHP? What is the alternative?
- echo419 9y agoAs someone who's new to CS, I love this resource, and while I've been coding for about a year now I've come across most of these topics, but as someone who wants to go deeper into CS, what topics would you all expect to see in a Computer Science II book?
- flor1s 9y agoI didn't read the book, just the TOC, but it seems like this book is only about programming, not so much about theory (automata, discrete math, calculus, linear algebra, etc), and not even so much about the engineering side of it (automated testing, algorithms, DevOps, etc). Anyway, there are various websites which list an "online curriculum" for Computer Science, e.g. https://mindweb.network/board/computer-science-a-full-bachelor-curriculum https://mindweb.network/board/computer-science-a-full-bachel...
- echo419 9y agoIn case anyone was wondering as I was before I searched around for it, Dr. Bourke actually has a good number of other resources available on his faculty site including lecture notes/PDFs for searching/sorting, data structures, security/cryptography, trees, and more.
- spraak 9y agoIs there a service that can print out these massive PDFs into a bound copy? I spend enough time on screens for work that I really prefer a book for learning material.
- TheSoftwareGuy 9y agoYes, plenty. Kinkos is one, I believe
- groovy2shoes 9y agoKinkos is called "FedEx Office" these days (last I checked), but indeed they can do this. So can Staples, Office Depot, OfficeMax, etc.
- Terretta 9y agoThey can get fussy about proof of permission.
- virtuabhi 9y agoI have used https://www.printme1.com/ https://www.printme1.com/
- WalterGR 9y agoI've used https://www.lulu.com/ https://www.lulu.com/ for a couple similar projects and the experience was fine. IIRC the PDFs were on the order of 100 pages. I live in the US.
- utopcell 9y agoI have no opinion about the quality of this book, but just by looking at the contents, it has almost nothing to do with computer science. It doesn't deal with computing models, theory, algorithms, automata, or anything you'd expect an introductory book to cover. This is a book about (specific) programming languages.
- jaxkxxxxxxxxxx 9y agoC -> ok, Java -> ok, PHP -> WTF! This odd choice undermines the overall rating of the book.
- theghazstation 9y agoThe problem is there is no need for this book. There are many good books on Java and CS. I would think there is no gap that this addresses.