Things to Know Before You Graduate – For Computer Science Majors

As a computer science major, there are many things you should know before you graduate. To land a job, it is important that you have a broad base of knowledge when it comes to computer science. Below, I have compiled a list of some key things to know before you graduate.

By the way, these are mainly from questions that were asked during my interview with Avanade last week.

  • SQL Transaction
    • The combination of several SQL statements into one atomic group. It allows for an all or nothing approach.
  • SQL User Defined Functions
    • Functions that are run on the SQL server that are created by the user of the DBMS.
  • SQL View
    • A view appears like any database table, and can be operated on just like any table, but is actually a portion of a database table.
    • CREATE VIEW myview AS
    • SELECT name, age
    • FROM students
    • WHERE age = 5
  • Definition of Inner Join
    • A join of two tables that returns records for which there is a matching value in the field on which the tables are joined.
  • Definition of Outer Join
    • A table join in which rows from one table are included in the result set, even if they don’t contain values that match those in the other table.
  • Normalization
    • Decreases the amount of data
    • Decreases the load on the server and can increase performance
    • Going beyond 1NF can introduce logic errors when inserting/updating/deleting records
  • Acid Properties
    • In databases, ACID stands for Atomicity, Consistency, Isolation, and Durability. They are considered to be the key transaction processing features of a database management system, or DBMS. Without them, the integrity of the database cannot be guaranteed.
  • Linked Lists vs. Arrays
    • Duh! Just think inserts, deletes, and sorting and the complexity involved in these transactions
  • Interface
    • An interface is a description of a set of methods that conforming implementing classes must have.
    • Only non static methods and static final variables can be defined in the interface.
  • Abstract Classes
    • A class in which some of the functions are not implemented.
  • Characteristics of Object Orientated Programming
    • Inheritance
    • Encapsulation
    • Abstraction
    • Polymorphism
  • Access Modifiers
    • Public – Visible to all classes
    • Protected – Visible to the class they belong to and to any sub-classes
    • Private – Visible to the class they belong to
  • Software Development Methodologies
    • In the traditional waterfall methodology, first comes the analysis phase, then the design phase, followed by the implementation phase, with testing completing the process. The team that does each phase is different and there may be a management decision point at each phase transition. This methodology is called the waterfall methodology because each phase flows naturally into the next phase like water over a series of falls.
    • The spiral methodology fixes some of the problems introduced by the waterfall methodology. The spiral methodology still has the four phases. A little time is initially spent in each phase followed by several iterations over all four phases.
  • Sorting Algorithms
    • Bubble Sort
      • The array of values to be sorted is divided into two partitions: the partition of sorted values and that of unsorted values.
      • In each step of bubble sort, the smallest element found so far in the unsorted partition moves up, and it is appended to the end of the sorted partition.
      • The sorting proceeds until the elements in the unsorted partition are exhausted.
    • Selection Sort
      • The selection sort works by selecting the smallest unsorted item remaining in the list, and then swapping it with the item in the next position to be filled. The selection sort has a complexity of O(n2).
      • You have a Floor variable (which identifies the index of your first unsorted position in your array, and you have a minimum index variable that will point to whichever position is lowest so far. Once the remaining portion of the array is looked at, the floor variable and the minimum index variable are swapped.

2 thoughts on “Things to Know Before You Graduate – For Computer Science Majors

  1. Just because you were asked these questions, does not give them any significance.

    As a general rule, interview questions are mostly stupid… if you had to set some questions to hire someone, what would you do? The bad interviewers ask questions such as those above. The better ones, want to know who you are, what motivates you, what you do, and why you do it.

    I don’t know most of what is in the UNIX man pages any more, simply because it *is* in the man pages. If I get asked a question of “how would you list all files in the directory, by size?”, I’ll answer “ls -lSr”, but I’d also turn down the job, because they don’t know how to interview people.

    That detail doesn’t matter.

Leave a Reply