General CS Questions

CS Concepts

  • What is a function?
  • What's recursion? What's a recursive function?
  • What does it mean to pass something by reference? By value? What's a pointer?
  • What's a datatype? What are some common datatypes? What is static (or strong) typing vs. loose typing? Which one is better and why do you think so?
  • What's an exception? What are some reasons you might want to have an exception hierarchy?

Object Oriented Concepts

  • What's an object? What's the difference between object oriented and procedural programming?
  • What's a constructor? Destructor? How are they typically used?
  • Explain public vs. private vs. protected.
  • What is inheritance?
  • What's an abstract class? What about an interface? What's the difference?
  • What does it mean to override a method? Advanced question: how can you prevent a method from being overridden (e.g. the keyword final)?
  • What does it mean to overload a method? (Note that not all OO languages support overloading)
  • What's an instance method/property vs a class (or static) method/property?
  • What does it mean for a set of objects to be 'loosely coupled' vs. 'tightly coupled'? What are the advantages & disadvantages of each?

Data Structures

  • Explain the difference between a simple and complex data type.
  • What's an associative array vs an indexed array? (note that not all languages have associative arrays)
  • Explain what a linked list is. Explain how it works, and how it is different than an array. Optional: write code to create one.
  • What's a stack? How's that different than a queue?

Algorithms

  • What is depth first search vs. breadth first search? Write/describe an algorithm for each.
  • Ask about the various sorting algorithms, e.g. insertion sort, merge sort & quicksort

Design Patterns

  • Explain the following design patterns (any or all):
    • Abstract factory
    • Factory
    • Singleton (and Multiton; somewhat less common than Singleton)
    • Adapter or Wrapper
    • Bridge
    • MVC (Model/View/Controller)
    • Composite
    • Decorator
    • Facade (also Proxy)
    • Iterator
    • Observer and/or Publish/Subscribe
    • Strategy
    • Template method
people/hr/good-technical-interview-questions/computer-science-questions.txt · Last modified: Sep 11, 2010 12:04 AM by dordal
© 2005-10 David Ordal / DO IT, LLC. All Rights Reserved.