Featured AMCAT Module: Computer Programming Principles
1. About the Module
The 'Computer Programming Principles' module evaluates the suitability of the candidate in the software industry. It not only tests the knowledge and application of basic constructs of programming, but also concepts of data structures, algorithm analysis and object-oriented-programming.
The test is language-independent and all programming questions use a pseudo-code. Significant effort has been made to exclude memory-based and rote-learning questions. The idea of the module is not to test the candidate’s capability in a particular computer language, but check how well he/she understands translating a problem statement into an algorithm, being able to execute an algorithm to find the output, debug it, etc. Apart from this, the test measures one’s understanding of advanced algorithmic concepts such as sorting, searching, recursions and data structures. The test also checks the candidate’s basic conceptual understanding of object oriented programming.
The test contains questions on debugging programs, finding the output of programs, completing incomplete programs, finding complexity of algorithms, questions on implementation and operations on different data structures, etc.
It comprises of the following sections:
- Structure and constructs of Computer Programs
- Data-structures and Basic Algorithms
- Object Oriented Programming Concepts
2. Relevance to the Industry
The fundamental knowledge of computer programming is a pre-requisite for software industry. An understanding of basic concepts is mandatory for all IT profiles including IT services. However, IT product companies require one to have excellent coding skills, advanced and thorough knowledge of object- oriented programming concepts, data structures and at least one of the programming languages (C/C++, Python, Java, Perl,etc).
3. Some ‘Myths to Avoid’ and ‘Tips to Improve’ your Computer Programming skills:
- Myth: Learning more languages increases your chances.
Core companies are not interested in how many languages you know, they are interested in whether given a question, you can come up with an algorithm to solve it. You need to thus develop strong fundamental concepts and practice in solving programming questions.
- Myth : Keep reading as many books as possible
Tip: Don’t just read, but implement as well
Programming cannot be learnt through reading a book. When you read a programming problem, try to understand the algorithm. Then close the book and try to implement the program on the computer in a language of your choice. Keep trying till you get the right output.
Good books to refer are: 'C++ - The Complete Reference' by Herbert Schildt , 'Object oriented programming with C++' by Balaguruswamy, 'Test your C skills' by Yashwant Kanetkar, etc.
- Myth: Coming up with a solution is intelligence
Develop an understanding of complexity theory: You do not need to understand the complex math but develop basic understanding of how to find and represent space and time complexity of a given program. You should be able to compare two algorithms to solve the same problem. Good books to refer are: C Programming Concepts with Problems and Solutions by J.K Chhabra (TMH),‘Data structures Through C’ by G. S. Baluja and ‘Data structures Through C’ by Yashwant Kanetkar.
- Myth: High level programming based questions on data structures are asked
Understand implementation of basic data structures: You should be able to implement all the basic data structures like queues, stacks, binary search trees, etc. You should practice implementing these on the computer without any help.
Simple tip! If you spend even 5 hours of programming every week for 2 years of engineering, you will crack a core product developer job.
Register yourself at - http://www.myamcat.com/register.php. Find sample questions for this module in the knowledge section of your account.