Prof Olivier Scaillet TA Adrien Treccani Gestion des Risques Assignment #3 I.T. -­‐ Mock interview Objective The objective of this assignment is to prepare yourself to the kind of questions you may face in an IT interview. The questions with an (*) are not compulsory but we strongly recommend that you try to do them. General I.T. Questions 1) Explain the difference between interpreted and compiled languages in your own words, as if you were explaining it to somebody who does not know much about I.T.. State the advantages and weaknesses of both approaches. State four languages for each family. A third paradigm tries to provide best of both worlds – or at least a good compromise – using just-­‐in-­‐time compilation. Explain how it works, the advantages and weaknesses, and state three languages that belong to this class. 2) Explain what debugging means in the context of a software development. What are the general tools provided by high-­‐level languages in order to debug an application? Also explain what is unit testing and why it is primordial to implement this methodology in large projects. 3) Explain what is the difference between a statically and a dynamically typed language. Explain the difference between strong and weak typing. What are the pros and the cons? State two languages of each kind. 4) Explain what is the difference between passing parameters into functions by value or by reference and give a use case for each scheme. 5) Explain what is automatic memory management and state the advantages and weaknesses. State three languages that do provide such facilities and three that do not. Explain what is a Garbage Collector (GC) and how it helps managing memory. Why would some developers prefer not using a GC for some particular kind of softwares? 6) Explain what is a (memory) pointer and describe three use cases. 7) Explain what is procedural programming. Explain what is Object Oriented Programming (OOP) and what advantages it brings in software engineering. State three languages that do support OOP and three languages that don’t. 8) Explain what are the linked list, dynamic array, hashtable and binary tree data structures. What are the advantages and weaknesses of each of them? In particular, state the complexity of the most common operations (such as adding, accessing, or removing an element). 9) Explain what is a design pattern. Describe the singleton pattern and one other design pattern of your choice. (*) Describe the factory and the observer patterns. 10)(*) Explain what are inheritance, polymorphism and encapsulation in the context of OOP. What advantages do these provide in terms of software engineering? 11)(*) Explain what is Functional Programming (FP) and what advantages it brings in software engineering. State three languages that are pure FP languages, and two more languages that provide basic functionalities of FP. Prof Olivier Scaillet TA Adrien Treccani Gestion des Risques MatLab Questions 1) Is MatLab compiled or interpreted? Statically typed or dynamically typed? Strongly typed or weakly typed? OOP? FP? Does it provide automatic memory management facilities? By default, does it pass the parameters by value of by reference? 2) Explain the difference between a vector and a cell array, and give the syntax and a use case for both of them. Explain why you think MatLab vectors and matrices are more probably implemented using dynamic array-­‐like, or linked list-­‐like data structures (or another way). 3) Explain what is method overloading. Can you overload methods in MatLab, and if yes, what is the syntax? Does MatLab support functions with a variable number of parameters, and if yes, what is the syntax? Does MatLab support functions with a variable number of return parameters, and if yes, what is the syntax? What is the syntax to get the n-­‐th parameter returned by a function, but not the (n-­‐1) parameters? 4) How can you convert a number to a string, or a string to a number? How can you convert a date to a string of a particular format, and a string representing a date to a number? 5) Explain the difference between subscript indexing and linear indexing for matrices. How can you transform one format to another?