@sap chicken:
Since you don't understand some things, why don't you take one step at at a time?
1 - get a brick laptop adapter (some 12, 15 or 19V at least 2A, whatever you can find from a reputable brand)
- get a breadboard
2 - build a simple LM317 circuit with adjustable voltage output (via potentiometer).
- test it
- add an op-amp so a 5V reference goes through the potentiometer, and the op-amp and sets the voltage (you'll need this to interface with the micro-controller)
- test it
- add a second op-amp in the same manner to limit current (5v, pot...)
- test it
3 - build/buy micro-controller programmer, build a "Hello world" on a micro, have a beer.
- play around with ADCs, get it to do what you want, understand how everything works.
4 - get an LCD and make it do something. Add controls - rotary encoders, buttons etc.
- learn the proper use of interrupts, or you'll

when puting everyting together.
5 - start a new program, work on PWM controlling a LED
6 - build and experiment with RC low pass filters to be used in PWM smoothing. A scope will come in handy here.
Start putting them together:
- PWM + filters
- is the micro good enough? enough pins, ADC, PWM, whatever? Can everything work right at the same time? On paper, at least? Why the f*** didn't I think of that?!
- put it all together, fix it 13 times, find at least 3 reasons why it's defined not going to work.
- try to find a work-around, but it evolves in a different problem all together.
- get frustrated for not choosing multi-turn pots + whatever display option (micro, 7 segment, panel-meters). Way easier.
I've been there.
So, I went with Dave's schematic ported to a LM317(cause I happen to have some). I've omitted the LM334, used a regular LM324 op-amp, used a regular LM78L05 as the voltage refference and whatever NPN I had lying around.
Works great, CC-CV, I'm very happy with it. If you like I can post a PCB image when I get home - single sided, through hole, spaced out.