(Paper) ThoughtWorks Fresher Job Interview Placement Paper : 18-Aug-2011



Job Interview Placement Paper


Round One: 11 logical (flow charts) questions were given. Time limit was 1 and a half hours.

Round Two: The given program should be coded in one hour. The evaluation is done based on the output, logic and the Object Orientation concept followed.

There were three batches. Different programs were given to each. The questions are as follows

Batch One: Hotel Management
A well renowned hotel has three branches in Miami. Namely x,y and z (Actually they gave names) .Each has two types of customers. Regular and Rewardee. Also each branch has its own ratings x is given a 3 star rating while y has 5 star rating and z has 4 star rating.
Each hotel has specific rates for weekend and weekdays. x charges $100 for regular customers on weekdays and $120 on weekends While it is $90 for rewardee on weekdays and $95 on weekends. While z charges $195 for regular customers on weekdays and $150 on weekends. While its $120 for rewardee on weekdays and $90 on weekends. Now when the customer requests for a particular detail you need to find which hotel would yield the customer profit. In case of tie between hotels compare the ratings and provide the result.

Input format:
16Mar2010(sun), 19Mar2010(wed), 21Mar2010(Fri)
Answer: (This is the format of the question but not sure about the values).

Batch Two:
Inventory Management System
A company sells Ipods online. There are 100 stocks maintained at Argentina and Brazil. A single ipod costs $100 in Brazil and $50 in Argentina. The cost of exporting stocks from one country to the other will cost $400 per 10 blocks. The transportation is always done in the multiples of 10. Calculate the minimum cost for purchasing the given no of units. Assume that for each transaction, the available stock in each country is maintained to be 100.

Input and Output Format: The country from which the order is being placed: No of units

Minimum Costs: No of stock left in brazil:No of stock left at Argentina

Sample Input and output:
Brazil: 504500:100:50

Batch three: There is a rail road to different towns from one town. It is considered that the rail road is a one way because of budgetary issues. If there is city A and  it has cities B and C cities connected by rail roads, it is not mandatory that A has direct rail road to both B and C. The route to C from A can be A to B and then B to C. The above scenario is depicted as a graph. The nodes are the towns and edges are the distances between them. The input given will be a graph and also the route to towns. The output must be the total rail road distance between the towns and if no route exists, it must say 'No Route exists'.
AB5, BC2, CD3, BE4
Input: A-B-E
Input: A-C-E
Output: 9
Output: No Route Exists
(Similar to Dijkistra’s algorithm in the form of railway stations and tracks).

Round Three:
Technical Interview1:
Questions were asked based on the area of interest mentioned in the resume.

1. The purpose of Normalization. (all forms and the dependencies avoided in each).

2. Design a database for a workshop (car wash)

  • A workshop maintains the details of cars arriving.

  • There are mechanics and supervisor at the workshop.

  • A supervisor is assigned for each car.

  • The car goes through various levels of cleaning or service.

  • In each of these levels, a mechanic is assigned to a car.

  • In and out time at each level and the over all time taken to deliver the car must be recorded.

  • Find the mechanics assigned to a car at each level.

3. Draw the class diagram for the above.
(While I was answering, their main focus was on table design. I started with the car table and mechanic table. Lots of suggestions and changes were made as the table increases.)

4. Some queries using group by clause.

Example: Find the no of students in each dept using group by clause.

5. Relation between where group by and having clause.

6. Find the person who has scored third rank.

7. Sorting techniques available(the best and worst).

8. The order of complexity and how it was arrived at.

9. How can you sort a data of size 4GB.The possible answer is by using external and internal sorts.

  • Breaking the data into smaller chunks and using two phases like sort and merge.

10. How is memory assigned to an object made.

11. If it is assigned while giving “new class name() “, what happens if one of its member grows dynamically and reaches the assigned memory limit.

Technical Interview 1 :

  • What is the difference between free and delete function(c & c++)

  • Difference between C++ & Java (They wanted 5-6 points. Not the obvious ones.)

  • What is composite primary key

  • What is Normalization and why we use normalization ,is it necessary to have normalized tables

  • State any three normal forms..

  • Some queries.

Technical Interview 1 :

  • How to create and host a site in internet..

  • How to create and host a site in internet with your pc as sever for hosting..

  • Normalization(1,2,3)

  • What type of language is JAVASCRIPT.

  • Difference between c++ and java?

  • What is destructor?

  • How destructor is called?

  • Write a program to explain purpose of destructor?

  • What all things are done inside a destructor?

  • What does free() function do?

  • What does delete() function do?

  • Difference between free() and delete()?

  • Write a simple program to explain the difference between free() and delete()?

  • What is Pointer?

  • Use of Pointer?

  • How does the Pointers work?

  • If you are given 8 coins each weights 10grams except one and you are given a weight scale. how will you find the odd one in minimum number of weights.

Technical interview 2 :

The questions will be from a topic of interviewer’s choice.

1. Draw the binary search tree for the given set of number and write a program to find the height of the formed tree.
A. One possible function
int max=0;
void func(struct node * node1, int len)
If(node1->left != null)
If(max { Max = len; return; }

(I just gave one sample trace which happened to work.)

2. Given two binary tree, find whether one is the mirror image of the other.
Int flg = 1;
void func(struct node * n1, struct node* n2)
If(n1!=null && n2!=null) {
If(n1->data==n2->data) {
Func(n1->right,n2->left); }
Else {
Flg = 0; return; }}


3. Find the possible class and the methods in it for “Snakes and ladders game”.

4. Given a singly linked list and the address of one of its node. Delete that particular node. The address of the head node is unknown.
a. One possible solution

Copy the contents of the following node into the current node and delete the node whose data has been copied.

HR Round (non elimination Round):

  • Tell me about yourself and strength.

  • What do you feel about our company?

  • What is your drive that makes you do anything at all?

  • Anything you want to know about our company?

  • If you were given three months off with salary, what work would you involve yourself in?

Aptitude and Psychometric Tests (non elimination round):

1. 50 questions must be answered in 12 min.

2. At least 30 must be answered.

3. The questions were based on general math, verbal and logical.

A. Sample verbal question:
i. ITS IT’S have
1. Same meaning , Contradictory meaning, neither same nor different

B. Sample logical question
i. Say whether statement 3 is true or false
1. All students take test. There are some students in the room. Some people in room take test.

C. Sample math
i. A bulb flickers for every 6 seconds. How many times will it flicker in given amount of time?

D. Find missing no
i. 8 4 2 1 ½ ¼ ?

The order of difficulty increases as you move from 1 – 50.

4. A sheet contains list of characteristics like loyal , easy going , reserved , obedient , generous , worried etc

  • You are asked to tick those characteristics that others want you to have.

  • In the next page, tick those characteristics that you think you possess.

Company Name: ThoughtWorks
No of Rounds:
Technical Round-1
Exam/Interview Date: 18-Aug-2011