If you're at a university, they may provide you with a free copy of Windows which would cut that price by $100, putting it within budget. Also what sort of CS work are you doing? If you're building huge projects with lots of source, you might want to go with at least an i5-2400 for better performance.
Check out my $650 build here: http://www.squidoo.com/electronicandmore
Wait for the i5 3450 to release and get that next week. Performance increase and it'd be better than the i5 2400.
Switch the 6870 with the 7870 and you'll be good to go (+190) http://www.newegg.com/Product/Product.aspx?Item=N82E168...
The CPU is good enough for you, maybe you may complain about the motherboard. But you're not overclocking. You don't plan to SLI/CF you might as well get a cheaper motherboard to allow more towards the CPU and the GPU.
Should I overclock it? I would if I knew how too! but Im so confused, would i be able to run diablo 3 and multi task on another screen with the build you provided above? I actually don't need a screen added on to my 900 dollar budget, because im planning on buying it with my next paycheck.