For a non CS major I absolutely do not recommend taking this class. I am a History major and was looking to fulfill my science requirement with an interesting course, unfortunately this was not It. The course itself is heavily relied on the textbook, which in my opinion is really dense and dry. Most of what he goes over in class is a clear demonstration of how well he knows the subject, but is hard to understand (especially with no CS/programming experience). The course literally goes from crawl to run within a matter of weeks and if you haven't gotten a good grasp at that point then good luck! I struggled after the first few weeks, and unfortunately was stuck in the course due to the credit requirement that I needed to have to be full time. In a nutshell, he is an excellent professor with an incredible knowledge base of programming, but for someone who has never taken CS it will be tough to understand The key takeaway that I got from this course was at least understanding how to read code and correct errors within a program. If your ready for a challenge then take this course, but just understand by no means is this course easy, and you will have to dedicate a decent amount of time each week in order to understand the material. They also shifted to using Gradescope to submit homework assignments, which can be a bit annoying and confusing to learn how to navigate.
A lot of people throughout the semester complained that even though the class is called an “Honors Intro class, they felt like it was not an intro class because what is asked of them is really hard. They took their complaints to Piazza almost every time an assignment was released. Although I personally disagree and think it’s fine as an intro class because it is an HONORS class, I want to point out what the students felt like at the time. So do expect the class to be really challenging. The assignments will take a huge amount of time. It is almost impossible to do them a night before (unless your goal is to only pass). The exams are not particularly easy but they’re not insanely hard either. If you just study the lecture notes and skim the book and assignments you’ll be fine. My only complaint is that sometimes the questions on the exams are vague or open to interpretation but the professor wants a specific answer in mind, and if you don’t write what he wants, then he marks it wrong. However, like other reviewers pointed out, the curve is enormous. A raw final grade in the high seventies will land you an A or A- depending on that year’s curve. He’s also not that intimidating as he seems, but actually very approachable and nice. He always asks for feedback and even gave the class an extension once (don’t push it though).
This review may not speak to the content of 1007 so much as the culture, but I would like to note to incoming students that this class has a surprisingly pre-professional and competitive atmosphere. I remember on the first day, Kender listed a number of languages - Perl, Python, C++, and asked students to raise their hands whenever they heard a language with which they had experience. I immediately felt so lost; I'd signed up for the course knowing just what was required to take it. I was, in fact, prepared for the course. I'd taken AP Java in high school; I'd done well; I for the most part continued that trend in 1007. But there wasn't a moment of this class I didn't spend questioning my abilities or worth as a CS student, even when I did quite well on the assignments. There were a lot of things Kender could have done to abate or eliminate this competitive aspect of the class, but instead he seemed to constantly make choices that worsened it. First of all, he'd post a list of the naked grades (everyone in the class' grades stripped of names) after every assignment. Seems whatever, but he did it in a way that each row would represent a person, and each column their grades on a particular assignment. To me, this seemed like an overabundance of information; Kender could have released the mean and perhaps standard deviation for each assignment, like most CS classes do, and that would've been enough information to know your approximate standing in the class. Second of all, after every naked grade set was posted, some guy would post in-depth stats on Piazza on the grade distribution, which was pretty unhealthy, grade-focused BS. I wish Kender had shut that down. Third, at the end of the class, Kender sent an email to all students naming those who got an A+, as well as saluting certain members of the class who he felt had made significant contributions (like Piazza posts etc.). This is something I've never seen a professor do before -- if you do well in a class, you should know it without the professor emailing all your peers. The email also privileged certain modes of achievement in a field that, right now, desperately needs a diversity of thinkers and personality types. I'm not saying those students that Kender singled out don't deserve praise; but it would have been much more appropriate had Kender kept those thank-yous and A+s confidential. Those are just, to be clear, a few select examples of a trend of competitiveness that pervaded this class. Oh, and by the way, after all of this Kender had the nerve to complain (in that same final email) about how our class seemed more pre-professional than usual, as if he hadn't contributed at all to the atmosphere. When I read that, I actually laughed out loud. In terms of the course itself, I have few complaints. The material was truly interesting, and genuinely helpful to me as a programmer. Kender was a great lecturer, happily supplied all kinds of interesting supplementary information on Courseworks, and patiently explained concepts in person and on Piazza (even on the weekends). The class was difficult at times, but I learned so much about good design and feel like I have a great grasp of object-oriented programming now. I find myself applying design patterns + strategies I learned in this class all the time. In fact, I can't imagine where I'd be as a programmer without 1007. That's why it's such a shame that the class atmosphere was so unwelcoming. I'm not asking for hand-holding, but I don't think it's unreasonable to request an environment where the professor isn't implicitly supporting a culture of "who's best" or "who's worst" or "what's the grade distribution" or "who wants a professorially-sanctioned way to brag about how much they know about multithreading even though it's mostly irrelevant to this class." Anyone who signs up for Kender's class and sticks with it has already demonstrated they deserve to be in 1007, even if they didn't get an A+ on homework 3 or couldn't work up the nerve to raise their hands that one time in lecture. Take this class and ask a lot of questions; what you'll learn is worth it. But do your best to block out the competitiveness, and know the class is not representative of what CS culture should be.
I didn't like him when I started the class, but I sadly got over it and really enjoyed this. He's a gruff, bitter old man but secretly a pretty nice guy -- lectures are interesting, tangential, and often include lame jokes. Has a lot of experience and generally will not waste your time. Overall, a surprisingly good introduction to the CS department, no matter how he comes off at first.
Kender made my first comp sci class ever a pretty good experience. His dorky computer jokes were a constant source of amusement. He was very organized, everyday going over announcements, assignments, review of the last class, and new material. Asked for feedback regarding the projects and exams so he could try to improve them for future classes. Fell behind every now and then, but shortened the projects if necessary. The course got harder as time went on, but I always found it interesting.
This was perhaps the perfect course for someone like me. Kender is an excellent teacher. He adds a lot to the class that you would not get from the (atrocious) textbook, and covers topics with a surprising amount of depth for an intro course. But be warned, while the class is called an intro, everyone in the room has been programming for years, and it's basically expected that you'll have similar experience. As for the workload, don't try to pull all-nighters before the assignment is due. It's possible, but you'll hate your life. You have two weeks to work on them, and it's a smart idea to spread things out over that time. This course convinced me that computer science was not for me. Kender is a great professor, so the only reason that I didn't like the course was the material. I did the work, and was happy with my grade, but the other students in the class would make crazy additions to the assignments for no extra credits, and I'm just not willing to study a subject where the other students care that much more than me.
John Kender is a very good teacher who makes every lecture interesting and worthwhile. I definitely recommend taking a class with him if possible. His only fault is that he will speak more and more softly as a sentence progresses, making it impossible to understand what he is saying.