Choosing an elective

Friends, I am pursuing B.Tech IT and currently in third year. I have to chose a course for the next semester from following courses.
-Artificial Intelligence
-Distributed Systems
-System Programming
-Embedded Systems

Please guide me as to which course should i choose. I am good at programming, so system programming seems like a good choice. Artificial Intelligence also seems attractive because it is related to mathematics. And Distributed Systems and Cryptography seems like the one which can give me better future prospects. This is what I could understand about these courses till now. I am not asking you to chose a subject for me. Just tell me about these courses and their future prospects.

I have systems programming this semester and it does not involve normal programming but is concerned more with algorithms for linkers , loaders and assemblers. We are doing more of assembly level programming and not normal programming.

Artificial intelligence is a very nice but challenging topic and deals mainly with graphs and trees. I mainly has to do with algorithms for exploration of graphs and not just mathematics.You might want to look u the contents of the course “Artificial Intelligence” on

I am afraid i cant help you much on cryptography and Distributed systems but i think cryptography has more to do with mathematics while Distributed systems looks more like an operating systems like subject.

But i would suggest you look up the contents of all the courses in your college website or ask your seniors and then make a decision. Personally i would have taken Artificial intelligence .