Tech Qu: The checking your degree questions…

University transcripts are no longer trusted because of grade inflation and even bogus degrees. The result is that often people are asked questions that anyone that has taken a 3rd year computer science course (recently) should be able to answer. Personally, I feel these questions are biased for recent graduates and against those that have been in the industry many years. They are theory centric and not practical center.

 

On Glassdoor, one contributor says it perfectly:

There are many question which will from you university course of Informatics, so worth to renew that knowledge. Many puzzles, and mostly of them you can find in internet. Nothing difficult, just good exam on things which you will never use in real life.

 

A few examples are:

Differences between Array, Linked List, Heap etc

You could dive into mechanisms of implementation, or cite a table (i.e. rote learning) such as

 

Linked list

Array

Dynamic array

Balanced tree

Indexing

Θ(n)

Θ(1)

Θ(1)

Θ(log n)

Insert/delete at beginning

Θ(1)

N/A

Θ(n)

Θ(log n)

Insert/delete at end

Θ(1)

N/A

Θ(1) amortized

Θ(log n)

Insert/delete in middle

search time +
Θ(1)[1]

N/A

Θ(n)

Θ(log n)

Wasted space (average)

Θ(n)

0

Θ(n)

Θ(n)

 

And for Heaps

Operation

Binary

Binomial

Fibonacci

Pairing[2]

Brodal[3]

findMin

Θ(1)

Θ(log n) or Θ(1)

Θ(1)[1]

O(1)*

Θ(1)

deleteMin

Θ(log n)

Θ(log n)

O(log n)*

O(log n)*

O(log n)

insert

Θ(log n)

O(log n)

Θ(1)[citation needed]

O(1)*

Θ(1)

decreaseKey

Θ(log n)

Θ(log n)

Θ(1)*

O(log n)*

Θ(1)

merge

Θ(n)

O(log n)**

Θ(1)

O(0)*

Θ(1)

Linked List:

  • Elements added without reorganizing data items
  • Finding items means that you must walk the nodes from the head (or tail)

What is Big O and name some sorting algorithms and their performance…

Excuse me, there is rarely a need to ever write a sort in practice unless you are writing languages! In general, those facilities are provided by the language. If you have a photographic memory, just go to Wikipedia’s page on sorting algorithms.

Binary Search Algorithm and Big O for it

For us old timers, we called this approach Newtonian. It’s doing a divide the sorted range in half, check the value and then repeat on which ever interval that the desired value is in.

Data structure Array

Worst case performance        O(log n)

Best case performance           O(1)

Average case performance   O(log n)

Worst case space complexity O(1)

 

Breadth First Search on a binary tree

Again, another question that is testing rote learning (i.e. if you can answer it by referencing a page on Wikipedia – the question really should not be used. You are testing rote ability, if the job requires creative solutions – you have blown it.

Write a method to traverse a Binary Tree

See page on Wikipedia.

 

Describe Semaphores and Deadlocks

Again,  Semaphone and Deadlock are Wiki-questions.

The better solution

Look at issues that you are trying to solve, or solved recently. Recast them as open ended questions and see what the candidate can do with it. If the candidate solves an open question – you know he will be a net positive component to the group, if he comes up with a better solution to a closed question, he clearly is as good or better than existing staff. If he comes up with equivalent to solutions to a closed question, he’s likely the same grade as the current staff.

 

Rhetorical questions and Rote questions are poor performance indicators compared to the above.

Comments

Popular posts from this blog

Yet once more into the breech (of altered programming logic)

Simple WP7 Mango App for Background Tasks, Toast, and Tiles: Code Explanation

How to convert SVG data to a Png Image file Using InkScape