

If you are using Java, why aren't you learning to use Java's own collection libraries. I feel like this is just teaching bad habits. Inexplicably to me, the course which covered subjects like single and doubly linked lists, hash tables, and binary trees used Java and Eclipse. Thumbs up for Racket and How to Design Programs.Ī couple of semesters later, she had to take the Data Structures course.

She wasn't sure if she was going to like CS, but this experience helped her decide to keep going. For an absolute beginner, a controlled environment hiding the complexities of the file system, etc. I believe that she did all of her programming within the IDE provided by installing Racket. Essential to making this course accessible to someone who had never programmed before college was the controlled environment provided by Racket. She was able to go back to these ideas when she was uncertain how to proceed and though the steps elucidated in the text was able to work through her assignments by the end of the semester she wrote a simple video game going above and beyond the assignments requirements.

This course taught her basic principles and heuristics for designing programs. Her first language was Racket (interesting) and her first book was How to Design Programs, 2nd Ed. Observing how my daughter and her friends at other colleges were taught, I saw many unnecessary difficulties (Eclipse being one of them) and on the other hand some outstanding approaches to teaching them CS.

More importantly, I've had an opportunity to observe my own daughter who started programming in college, got a degree in CS and will soon be finishing grad school. As a graduate student for many years though, I have watched and taught new CS students, which has given me a perspective on learning CS. I started out in CS in it's Middle Ages so my own initial experiences aren't relevant. des makes a lot of sense in this essay.ĬS instruction is a mixed bag.
