Live data from Hacker News

Ask HN: What is the most challenging programming course you have taken?

news.ycombinator.com

41–50 of 83 posts

Re: Ask HN: What is the most challenging programming course you have taken?

#41
post #20

Logical programming (prolog). I'm not sure I would call it the most challenging class, but it's the one where the most amount of people failed to learn anything. If I had to guess then 90% of the students (or more) ended up not being able to do anything with prolog. I haven't seen any other class that had such an abysmally low rate of successful learning. I think the only knowledge most people took away from this cla…

Back in University the prolog class required us to pick a game and write a small "AI" opponent for this game in prolog.

Either people loved the whole different paradigm of logical programming and were really invested or they just didn't want to touch it. There wasn't much in-between.

I think it is great to expose people to different things and I loved it, but I agree for many people that sent prolog straight to their blacklist

Re: Ask HN: What is the most challenging programming course you have taken?

#43
post #24

Ed Lamagna's "Algorithms and Data Structures" course at Univ. of Rhode Island. I really had to work for that class, but the payoff was tremendous.

Out of curiosity, what textbooks did you use in that course?

IIRC, we used handouts that he photocopied from various sources. I don't think there was a textbook.

Re: Ask HN: What is the most challenging programming course you have taken?

#44
As far as challenging goes:

Networking: Not really "difficult" concepts, but the teacher had a chip on his shoulder. The programming assignments were "fun challenging", and I think if the course was taught at a slower pace, it would have sunk in better.

Assembly: I personally didn't struggle too much, but a lot of the class did. My secret was that I had read a little bit about assembly programming in high school, and realized that I had to force myself to follow "structured programming patterns." (If true goto true else goto false.) (I also programmed with a lot of GOTOs as a kid, so I knew enough not to make a mess.) I remember showing one of my high-score assignments to another kid in class, it "clicked," and they told me that if they realized that they could make their code kinda look like normal structured code it would be much easier.

(Also, I forgot that I really, really struggled with the first assignment, which was to write "hello world" using the DOS debugger. That was the angriest I ever got in college.)

As far as "not limited to programming courses":

Foundations of Computer Science: This was difficult because of the professor. They really didn't click or empathize with the class. Most of the class was about regular expressions. They never made sense to me, so now I just have ChatGPT write them for me.

Compilers: I really, really enjoyed the homework, but again, difficult because of the professor. It basically picks up the theory from Foundations of Computer Science.

One thing I noticed was that theoretical CS classes at my school had professors who didn't really understand the students and their goals. Most of us were targeting software engineering careers: The professors would often get us lost in the theory and not bring it back to concrete terms.

Re: Ask HN: What is the most challenging programming course you have taken?

#45
I took an advanced algorithms course at uni which was purely programming projects, code must be written in either C or C++, and this was on the quarter system. Professor would just give a quick overview of the projects and used class for q&a which most students didn't partake in.

The first was to implement a search algorithm that combines binary search and interleaving search which was pretty easy.

The second was to implement a prime number generator that generates >=1024-bit prime numbers without relying on bignum library. I miserably failed at this, been meaning to revisit this (over 15 years since).

The third was to implement a huffman encoder/decoder and an lz77 compressor/decompressor. Huffman was easy, but I found lz77 pretty difficult to implement efficiently (poor choice of data structure for the dictionary and phrase search on my part). I got a very minor deduction for the implementation not being quick.

Despite not doing well I hold the course in high regard.

Re: Ask HN: What is the most challenging programming course you have taken?

#46
post #4

I would not call it challenging, but it was a fun and interesting experience. Learning functional programming through the CS 3110 course at Cornell University Here is the link: https://courses.cs.cornell.edu/cs3110/2021sp/textbook/ The OCaml part is free, well structured and does not take long to complete.

This class was so fun. I remember a lot of people did find it difficult too.

Re: Ask HN: What is the most challenging programming course you have taken?

#48
post #32

got a book Low Level Programming by igor zhirkov. IT's not technically a course, but he wrote it for his teaching (his classes won a lot, a lot of prizes). It's ofcourse, about low level programming, but since, the lower levels underpin the higher ones, for me the most useful thing was this book. It was a super challenge for me personally (no degree in computing or anything), and working through it i felt more things…

I have some project ideas but they are too complex for me. I have domain knowledge but my programming skills are lacking + lots of ambiguity/confusion/uncertainty/fuziness while implementing.

I haven't delved into low level programming much but I will give it a shot. I do mostly scripting and automation - I want to improve my programming skills to the next level.

Re: Ask HN: What is the most challenging programming course you have taken?

#49
"Advanced Programming" at DIKU (Department of Computer Science, University of Copenhagen):

https://kurser.ku.dk/course/ndaa09013u/2023-2024

The course teaches Haskell, Erlang and Prolog over half a semester (7.5 ECTS).

It mainly focuses on Haskell (7 weeks?) and covers Monad/Applicative/Functor bottom-up (i.e. you define your own, rather than use mtl/transformers), property-based testing (QuickCheck, generators, shrinking), parser generators (ReadP, minus points for parsing whitespace ambiguously). It is the 1st MSc course, so those who didn't have an FP-heavy bachelor's degree will have quite a shock. The Haskell part of the exam is writing a parser and interpreter for a non-trivial DSL.

The Haskell part already blasts most people. Then comes the Erlang part (3-4 weeks), where you learn about OTP, supervisors, process hierarchies, map/reduce, or similar problems. I remember one exam was implementing a quad tree where each level in the tree was controlled by a process.

The third part is Prolog, of which only a week of the course is dedicated to. While Prolog is a little mind-blowing in itself, the fact that it's only for one week also means the Prolog part of the exam is typically only a small set of exercises, where the Haskell and Erlang parts can be hard to complete given the allocated time.

When I took the course, I started learning Haskell in the summer break before the course started. Having two months of Haskell under my belt meant I survived the course quite fine (and ended up TA'ing it several times). But I saw lots of people way smarter than me (some of whom are now CS professors) struggle quite a lot with the pace and learning style.

Definitely the hardest course. To some unreasonably.

Re: Ask HN: What is the most challenging programming course you have taken?

#50
Maybe it was just how tough on grading my professor was but I had a hard time with a class called "Concepts of Programming Languages". It covered stuff like syntax, typing, garbage collection, etc. My professor was on the Racket dev team, and the whole class was done in Racket. He was actually pretty thorough about recording lectures and notes so it can be found here: https://jeapostrophe.github.io/courses/2013/fall/330/course/
Post reply on HN