I'm actually in the midst of re-taking a course that I failed the first time because I just didn't grasp the concepts, full stop.
Re-taking it; I'm muddling through a bit better, but the class (Computer Organization I) consists of the following topics:
Manual calculation of binary (standard, 1's Compliment, 2's Compliment, Excess notation, and IEEE 745) and hexidecimal
Basic overview of circuit and transistor diagrams (which started my downward spiral last time: "Label the inputs so that this circuit represents 'Y EQUALS A AND (B OR C)'")
Logic Gates (AND is the same as XOR run through an inverter...?), Multiplexers, and Adders
LC-3 programming/Assembly
TRAP routines and sub-routines
"The Stack"
And to top it all off, our first programming assignment is to design and implement a 'binary <-> decimal' conversion program. We have the luxury of choosing which high-level programming language to use, but my last programming class was five semesters ago, so I'll essentially have to re-learn it anyway. And it's due on my birthday :/ So I have to finish two days ahead of time if I want to get drunk and behave like a hoodlum on my birthday weekend
Thank goodness it's one of only two classes this semester (Yay graduation?!?!), otherwise I'd be utterly sunk. As it is, I'm only moderately mired in muck.