• Study in USA with University of Minnesota
  • Abudharr Ghifari College | Online Admission
  • Alltender
  • call for advertisement
কানাডিয়ান ইউনিভার্সিটিতে উপ-উপাচার্য হিসেবে যোগদান করেছেন প্রফেসর ড. শেখ মামুন খালেদ এস ইউতে উচ্চ শিক্ষার জন্য শিক্ষার্থীদের প্রস্তুতিঃ অধ্যক্ষের ভূমিকা শীর্ষক আলোচনা সভা সাউথইস্ট বিশ্ববিদ্যালয়ে বঙ্গবন্ধুর ১০১ তম জন্মশতবার্ষিকী উপলক্ষে আলোচনা সভা অনুষ্ঠিত উন্নয়নশীল দেশের মযার্দায় উত্তরণে জাতিসংঘের সুপারিশ লাভে প্রধানমন্ত্রীকে কৃতজ্ঞতা জ্ঞাপন ড্যাফোডিল ফাউন্ডেশনের আয়োজনে ‘জীবিকা চাঁদপুর-৩ প্রকল্প’ উদ্বোধন ঢাকা চেম্বার আয়োজিত ‘শিল্প-শিক্ষাখাতের সমন্বয়; নতুন সম্ভাবনার দিগন্ত’ শীর্ষক ওয়েবিনার মানসম্মত বিশ্ববিদ্যালয় গড়ার লক্ষ্যে গ্রিন ইউনিভার্সিটিতে দুই দিনব্যাপী ওয়ার্কশপ কানাডিয়ান ইউনিভার্সিটির উদ্যোগে হচ্ছে আন্তর্জাতিক মিডিয়া প্ল্যাটফর্ম দ্বিতীয় দিনে চলচ্চিত্র ও ডিজিটাল মিডিয়া নিয়ে আন্তর্জাতিক সম্মেলন চলচ্চিত্র ও ডিজিটাল মিডিয়া নিয়ে আয়োজিত আন্তর্জাতিক সম্মেলন ২০২১ এর শুভ উদ্বোধন For Advertisement Call Us @ 09666 911 528 or 01911 640 084 শিক্ষা সংক্রান্ত বিষয়ে সহযোগিতা নিতে ও এডু আইকন ফোরামে যুক্ত হতে ক্লিক করুন Career Opportunity at Edu Icon: Apply Online চায়নায় স্নাতকোত্তর লেভেল এ সম্পূর্ণ বৃত্তিতে পড়াশুনা করতে যোগাযোগ করুন: ০১৬৮১-৩০০৪০০ | ০১৭১১১০৯ ভর্তি সংক্রান্ত আপডেট খবরাখবর এর নোটিফিকেশন পেতে ক্লিক করুন আবুজর গিফারী কলেজে ২০২০-২১ শিক্ষাবর্ষে অনলাইনে ভর্তির জন্য যোগাযোগ-০১৭১৯৪৮১৮১৮ All trademarks and logos are property of their respective owners. This site is not associated with any of the businesses listed, unless specifically noted.
  • PSL| Higher Study in India

How To Study Computer Science | Learn Algorithms & Programming Languages

Online Desk | January 30, 2013
Study Computer Science

Study Computer Science

Computer science or computing science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. A computer scientist specializes in the theory of computation and the design of computational systems.
Its subfields can be divided into a variety of theoretical and practical disciplines. Some fields, such as computational complexity theory (which explores the fundamental properties of computational problems), are highly abstract, whilst fields such as computer graphics emphasise real-world applications. Still other fields focus on the challenges in implementing computation. For example, programming language theory considers various approaches to the description of computation, whilst the study of computer programming itself investigates various aspects of the use of programming language and complex systems. Human-computer interaction considers the challenges in making computers and computations useful, usable, and universally accessible to humans.



If you're an aspiring computer science student or someone who wants to switch fields into CS, you're in luck; there's a lot of information available on the Internet. CS is a large and rapidly-expanding field; once you've become confident in your abilities to program moderate-sized projects, a lot of topics open up to you. But what do you really need to learn about, and what don't you?



A lot of it depends on what you want to get out of your study. If you want to become a researcher, you'll most likely need to know more of the theory of computer science than if you want to become a programmer. There are, however, some basic skills that will help nearly everyone in the field.



Learn Multiple Programming Languages



No matter what you want to do in computer science, you'll likely do some of it by writing computer programs. Not all languages are created equal, but most of them have some strengths. You'll want to learn a systems language like C or C++. This will give you several advantages: first, you'll understand memory allocation; second, you'll understand more about how the system is designed; and finally, you'll be able to communicate with other programmers more easily. you can see this article for more details on the advantage of learning C .



But you want to learn a more flexible language for daily chores-for instance, a scripting language like Perl or Ruby will help you quickly create interesting programs and test ideas.



Finally, once you've mastered a language or two, expand your horizons with a functional language like Scheme, ML, or Haskell. This will improve your understanding of programming languages and broaden your horizons about the possibilities.



A key thing to remember when learning new languages is that all languages offer the same power - you can do anything in one language that you can in another -but some languages make it easier to do certain things. For instance, if you want to read data from a text file, Perl is a great language. If you want to write an AI engine, then you might be better off with Scheme.



Learn to Design



Whether you want to work as a software engineer or as an academic, you're going to have to design programs in some form or another. Learning good design principles early will make your life easier. The key thing to remember about design is that the goal is to catch the problems before you've committed to a solution that won't let you fix them. You don't have to do all of your design up front, but if you don't, then you'll want to leave more flexibility later.



Of course, some amount of design is absolutely crucial or you'll simply have no idea what should be flexible and what can be hard coded. Overly modular designs can be as deadly and difficult to maintain as extremely inflexible designs. One way of looking at the issue is that modularity is powerful because it makes it easier to replace a bad idea with a good one. But if you know what the good idea is going to be anyway, then modularity doesn't help you, and because it takes more effort, it can hurt you.

শিক্ষা সংক্রান্ত খবরাখবর নিয়মিত পেতে রেজিস্ট্রেশন করুন অথবা Log In করুন।

Account Benefit


A good way to learn design is to practice on well-known systems projects, like writing an interpreter or web server. These kind of projects have the advantage of having well-known implementions that you can look at once you realize that there are problems with your original design. Whatever you do design, you definitely want to implement at least parts of your designs or you'll never really come to understand the drawbacks in your ideas. It's running into these drawbacks that will teach you the most.



Learn Basic Algorithms and Data Structures



There are a variety of important algorithms and data structures that are the lingua franca of computer science. Everyone needs to know what a <="" a=""> or binary tree is because they get used all the time. Perhaps just as important are fundamental algorithms like binary search, graph searching algorithms, sorting algorithms, and tree-based searches such as minimax. These algorithms and their variants show up a lot, and people will generally expect that any computer scientist will understand how they work.
Here is a list what you should do or learn:



1. Programming paradigms - imperative, object-oriented and functional programming. Try to learn a language for every category. Example: C (procedural), Java (object-oriented) and Haskell (functional). If you know every style, you will program much better, especially when you use multi-paradigm languages, like Python, C++ or Scala. Addons are Assembler, Prolog and Forth.

2. Algorithms and data structures - Complexity theory, optimizations, searching, sorting, cryptography, AI, graphics. Dig deep to the hardware level and learn about instruction sets, caches and architectures. Compilers and operating systems are the high end topics here.

3. Abstract background knowledge - quite theoretical. Lots of math, formal verification aka model checking, Turing machines, lambda calculus and type theory.

4. The human side - project management, design patterns, UI design, psychology. You will have to deal with people, who think very different than you. Managers, customers and co-wokers may not be "into computers" like you are.

5. Practice - with the Open Source movement, you have a wealth of projects, who would like to get a hand or two. You'll learn to deal with people and foreign source code. You'll also gain familiarity with some tools like version control, IDEs and wikis.



Learn Basic Theory



There are a couple of things you should definitely be aware of: you should understand how to represent numbers in different bases and how to manipulate boolean expressions using boolean logic. Both of these tools will come in handy in a variety of circumstances, especially when reading other people's code or trying to clarify your own. (Boolean logic is especially useful for formulating clear conditional statements.)



Even more important, you should have a good sense of the limits of current computers. In particular, it really helps to understand the ideas in algorithmic efficiency and Big-O notation. Knowing these topics makes it clearer why certain programs and algorithms will take a very long time to run, and how to spot them. It also makes it significantly easier to optimize your program when you know which algorithms to choose.



Finally, it's useful to have a sense of the absolute limits of what computers can do; it turns out that there are just some things that are not possible for a computer to do. Sometimes it can be tempting to try to write a program that does just that!

  • call for advertisement
Submit Your Comments:
  • call for advertisement
  • ADDRESSBAZAR | YELLOW PAGE
  • call for advertisement
  • call for advertisement
  • call for advertisement
  • call for advertisement
  • call for advertisement