To make a good one is hard, but probably at about the right level for a graduate project (when I took my batchelor's in Computer Science, a friend of mine wrote a chess engine for his final year dissertation).
And yes there are Open Source ones, the leading contender being GNU Chess, which is very well respected.