I am a student in my 4th and final year of Computer Science and Engineering, at a university in Pune, India. Way back in 2004, when i joined this university, i had some programming skills in C++ and C. Needless to say, FoxPro and SQLs were also taught to me, which i never tried to remember. As i am about to complete my bachelors in June this year, i have thought a lot over the education policy and what we are taught. Here i present a brief analysis of what i feel.
During my First Year of engineering we were supposed to be jack of all trades. And the university made this sure, by imposing us to study elementary Mechanical Engineering, Civil Engineering, Chemical Engineering, Electrical and Electronics Engineering and Engineering Graphics. As far as my core subjects were concerned, i was taught C (no C++) and basics of Computers like binary addition and subtraction, the world wide web, OSI layers and all.
In my second year of engineering, electrical and electronics was also present along with few management subjects and but of course my core subjects like Data Structures and Digital Logic design. But it was not before my third year that i started to get the feel of a CS grad. We were taught COBOL, Intel 8085/86 ASM, Operating Systems, Theory of Computation and others. Finally in my final year, we had advanced subjects like Computer Architectures and Networks with AI, Distributed Operating systems and others.
The course had been designed very well, perfect for any IT/ CS industry. However, i feel there should be some additions and deletions. Like for an instance, i don't think there is a need to teach the basics of all branches of engineering, in my first year. We can start off with DSF and others right from the beginning.
As far as hands on Programming Languages and other technology is concerned, an average student possesses following skills.
Programming Languages :: C, C++, ASM, COBOL, VB, HTML, SQL
Operating Systems :: and product of Microsoft from Windows 95 to Windows 2000
However, as per the needs to today's technology and industry, i think an average undergrad student should possess following skills.
Operating System :: Linux/UNIX, Windows XP, Vista
In above, i have never mentioned any DBMS skills like SQL, Oracle and other concepts of data warehousing or data mining and others, possibly because i personally am not much interested in those.
My skills include C, C++, Python, JS, Oracle SQL but i am still trying to think what is the technology of future and the greatest question "As an undergrad, what skills should I be trying to attain now to further my employability in the future?"