Tuesday, 31 March 2015

COMPUTER SCIENCE.

INTRODUCTION

COMPUTER SCIENCE IS SHAPING THE FUTURE.
A DEGREE IN COMPUTER SCIENCE CAN HELP SHAPE YOURS
.

Computer science is an integral part of our lives, shaping virtually everything from the objects around us to the ways in which we communicate, travel, work, and play. And the computer revolution has just begun – CS is now a key enabler for discovery and innovation in most other fields of endeavor, making it an incredibly relevant course of study.

Computer scientists invent the future by developing architectures and techniques for more advanced computing, and by developing the applications that operate within those frameworks.
Computer science is a powerful force for making a positive difference in the world. Computing has made possible undertakings such as landing the Curiosity rover on Mars, managing patient care to avoid undesired drug interactions, revolutionizing K-12 teaching and learning through the use of mobile devices, and even the creation of a computer that can win at Jeopardy. It’s a field of unbounded potential – get ready to change the world!

WHAT DO COMPUTER SCIENTISTS DO?

Don’t confuse a computer scientist with a computer programmer – many people do. A computer programmer writes programs, but a computer scientist has broader impact.
A computer scientist combines technical skill with creativity, a design sense, and understanding of the needs of users in the global community, and business sense. A computer scientist is an expert in:
·         understanding the possibilities and limitations of computers
·         evaluating alternative software solutions
·         understanding challenges of projects involving multiple cultures
·         communicating with team members and end users
·         performing/evaluating usability studies
·         identifying relationships between problems and solutions
·         planning and managing projects
·         working effectively and coordinating tasks in interdisciplinary teams
·         giving effective presentations and product demonstrations

Computer scientists understand, innovate, and direct to solve problems through computation, and can but do not necessarily write the code. As a student of computer science, you will learn to solve problems effectively, efficiently, and accurately. This depth of understanding increases your options and therefore, your marketability.

5 things that Computer Science Engineering students should focus on

What should students be really focusing on? Somebody asked me this question recently – Imagine students who are in 2nd or 3rd year of their degree course right now. They’ll spend a few years finishing college, and a few years just learning the ropes at their first job. So it will really be about 5 years before their career really starts. What will the software technology world be like at that time, and what are the skills that students can work on acquiring right now to ensure that they are well positioned to thrive?
Of course, 5 years is a long time, and to quote Neils Bohr, prediction is very difficult, especially about the future. Still I think some general trends are clear, and there are some other timeless skills that are worth looking at. Based on that I’m giving my list below.
But wait!
Let me not bias your thoughts. Before you read my list, skip to thecomments section below, and put down your list. Then read my list and critique it again in the comments. Hopefully we can have a good discussion that will benefit students.
So, here’s my list of areas students need to be thinking about:
§  The next billion customers: The IT revolution has probably reached a billion people of the world so far. In the next 5 years, it will reach the next billion. These will be a very different set of people. Many of them will be illiterate – so you need to focus on non-text, non-English interfaces – video, animations, voice recognition. Search for “English Seekho” to get an idea of what I mean. Most won’t have money or electricity for computers, so mobile devices will rule – so you need to start playing with mobile platforms like Android. In general, search for the “the next billion” and you’ll find some interesting material put together by the likes of Nokia, and MIT giving you ideas on what to focus on.
§  Usability: As IT touches the lives of more and more people, less and less of them will be “computer savvy”, and less and less of them will view computing devices as something that needs to be learnt. Consequently, the products that will succeed, will be the ones that are easy to use. And making something easy to use is rather difficult. It is a sub-discipline of computer science, and there is a lot of theory, and a bunch of well-defined algorithms and practices you can use to make things easy to use. The whole area is called HCI (Human Computer Interaction), and UCD (User Centered Design) is a part of it. It’s an area that you must be familiar with
§  Computer Science Fundamentals: This will never go out of fashion, and yes, when I look at students coming out of our colleges, this appears to be a rather neglected area. Far too much emphasis on specificprogramming languages, and specific “technologies” is a mistake. Whatever the future holds, you will be well served by knowing the basic theory of computer sciences. Learn data-structures and algorithms. If you don’t have a favourite data-structure, and an algorithm that you find beautiful, then your computer science education is incomplete. If, after seeing an algorithm, your first thought is not about the complexity of the algorithm (O(n), O(log n), etc.), then you need to hit your books again. If you’ve only learned Java and C#, and you don’t really understand pointers, heaps, stacks, you will sooner or later be at a disadvantage. Understand the basics. And while you’re at it, also learn mathematics and statistics.
§  Presentation skills: This is not a computer science skill, but this is one of the most important skills that computer science students are missing. You must treat presentation as equally important, or more important than your program, design, and algorithms. And you must spend as much time learning presentation (from books, in classes, and in practice) as you spent on programming languages, and computer science subjects. I’m sure you haven’t done that, hence this item in my list. You should know how to write well. Not just papers and documents, but much more importantly, emails, and blog posts, and facebook wall postings, and tweets. You must think about what the user/reader/client wants to know (instead of what you know and want to tell). And of course, you must know how to speak well. How to tell a story instead of listing some arcane facts about your work. How to leave out stuff that you find extremely interesting, but the listener doesn’t.
§  Economics: Scott Adams, the creator of Dilbert says: “When you have a working knowledge of economics, it’s like having a mild super power.” Basically, if you understand the fundamentals of economics, you can see and understand what drives people and technologies and success and failure a lot better than people who do not understand it. I hated the fact that I was made to study economics in IIT for my computer science course. It seemed like a complete waste of my time. Now, looking back, I think it was probably the most important course.

No comments:

Post a Comment