Google Interview Questions

Totally there are five Technical Interviews followed by Management round.

So here are the questions.

Google Interview Round 1 ::

1.What is the Space complexity of quick sort algorithm? how do find it?

Solution: Quicksort has a space complexity of O(logn), even in the worst case, when it is carefully implemented such that
* in-place partitioning is used. This requires O(1).
* After partitioning, the partition with the fewest elements is (recursively) sorted first, requiring at most O(logn) space. Then the other partition is sorted using tail-recursion or iteration.
The version of quicksort with in-place partitioning uses only constant additional space before making any recursive call. However, if it has made O(logn) nested recursive calls, it needs to store a constant amount of information from each of them. Since the best case makes at most O(logn) nested recursive calls, it uses O(logn) space. The worst case makes O(n) nested recursive calls, and so needs O(n) space.

However, if we consider sorting arbitrarily large lists, we have to keep in mind that our variables like left and right can no longer be considered to occupy constant space; it takes O(logn) bits to index into a list of n items. Because we have variables like this in every stack frame, in reality quicksort requires O(log2n) bits of space in the best and average case and O(nlogn) space in the worst case. This isn't too terrible, though, since if the list contains mostly distinct elements, the list itself will also occupy O(nlogn) bits of space.



2.What are dangling pointers?

Solution: A dangling pointer is a pointer to storage that is no longer allocated. Dangling pointers are nasty bugs because they seldom crash the program until long after they have been created, which makes them hard to find. Programs that create dangling pointers often appear to work on small inputs, but are likely to fail on large or complex inputs.

3.Given that you can take one step or two steps forward from a given step. So find the total number of ways of reaching Nth step.

Solution:The simple recurrence relation governing this problem is f(N)=f(N-1) +f(N-2)(why?),which is a fibonacci sequence.
Nth state can be arrived directly by taking 2 step movement from N-2 or 1 step from N-1.Remember N-2 -> N-1 -> N is not a direct path from N-2th state to Nth state.Hence the no of solutions is no of ways to reach N-2th step and then directly taking a 2 jump step to N + no of ways to reach N-1th step and then taking 1 step advance.

4.You are given biased coin. Find unbiased decision out of it?

Solution:Throw the biased coin twice.Classify it as true for HT and false for TH.Both of these occur with probability=p*(1-p),hence unbiased. Ignore the other 2 events namely HH and TT.

5.On a empty chessboard, a horse starts from a point( say location x,y) and it starts moving randomly, but once it moves out of board, it cant come inside. So what is the total probability that it stays within the board after N steps.


Google Interview Round 2 ::

1.You have 1 to N-1 array and 1 to N numbers, and one number is missing, you need to find the missing the number. Now you have 1 to N-2 numbers, and two numbers missing. Find them.

Solution:
The question can be elucidated as follows.Given an array of size N-1 containing numbers less than N and with out any duplicates!! We knew that there is a number missing from the array say K .Let S be the sum of the elements of the array.

2.Sum of first N natural numbers=N*(N+1)/2

and S=N*(N+1)/2 - K.Now putting this other way around we get K=N*(N+1)/2 -S !!


3.Now the second part of the question says that there are 2 of the first N numbers missing.Let they be X and Y.

4.We solve this problem by solving 2 essential equations.

They are X+Y=N*(N+1)/2 -S---------->(1)

X*Y=N!/P-------------------(2) where S and P are the cumulative sum and product of the array entries.

You have cycle in linked list. Find it. Prove that time complexity is linear. Also find the node at which looping takes place.

Solution:
The problem of checking whether there is a cycle or not can be solved using 2 pointers one moving in increments of 1 and the other in increments of 2.If there is a cycle then these 2 pointers meet at some node say N1 inside the cycle otherwise the fast pointer reaches the end of the list.This is a O(N) solution.

Now coming to the identification of the node at which looping took place.After our identification of cycle ,both the pointers P1 and P2 are at node N1.Now iterate the slow pointer to count the no of nodes in the cycle.(After traversing the whole cycle P1 and P2 shall again be at the same node).Let this size be K.Now take one of the pointers to the head node and count the no of nodes till N1.Let this number be X.Now use one of these pointers to reverse the cycle starting from N1.Only the cycle gets reversed.Now again traverse from head node to N1.Let the number of nodes this time be Y.Let the no of nodes from head to the start node of the cycle be Z

Now X+Y=2*Z+K .Hence solve for K and then having figured out the start node N2 of the cycle.Now as the cycle is reversed having figured out this start node its next node is the looping nodes so set the looping nodes next pointer to NULL and reverse the list further till you reach N2.



5.Questions on my project please be prepare well about your project


6.How do you search for a word in a large database.
7.How do you build address bar in say gmail. i.e. if you press 'r' then you get all email starting from 'r', and if you press 'ra' then you will get emails starting from 'ra'.

Google Interview Round 3 ::

1.You have given an array. Find the maximum and minimum numbers in less number of comparisons.

Solution:
only 3n/2 comparisons are necessary to find both the minimum and the maximum. To do this, we maintain the minimum and maximum elements seen thus far. Rather than processing each element of the input by comparing it against the current minimum and maximum, however, at a cost of two comparisons per element, we process elements in pairs. We compare pairs of elements from the input first with each other, and then compare the smaller to the current minimum and the larger to the current maximum, at a cost of three comparisons for every two elements.


2.You have given an array from 1 to N and numbers also from 1 to N. But more than one number is missing and some numbers have repeated more than once. Find the algo with running time O(n).

Solution:All the numbers are positive to start with.Now, For each A[i], Check the sign of A[A[i]]. Make A[A[i]] negative if it's positive. Report a repetition if it's negative.Finally all those entries i,for which A[i] is negative are present and those i for which A[i] is positive are absent.



Google Interview Round 4 ::

1.Three strings say A,B,C are given to you. Check weather 3rd string is interleaved from string A and B.

Ex: A="abcd" B="xyz" C="axybczd". answer is yes.

Solution:

bool test(A,B,C)
{
i=j=k=0;
while(k < i ="=" j ="=">
The above algorithm doesn't work when C[k]=A[i]=B[j], essentially throwing one in to a dilemma whether to accept the character from A or B.


Given two sorted arrays A and B.

1.Find the intersection of these arrays A and B.

Solution:The intersection can be found by using a variation of merge routine of the merge sort.

2.If array A is small and array B is too large. how will you proceed for getting intersection of those two arrays?

Solution:In this case for each entry of smaller array,we can run a binary search routine on the larger one to know its presence.


Google Interview Round 5 ::


1.If you get into Google, which products are you going to work on?
2.What is TCP, UDP. what is reliability, unreliability, give examples of these?

Solution:

Click Here To Read About TCP
Click Here To Read About UDP
Click Here To Read About Reliability

3.What is http protocol?

Solution:

Click Here To Read About HTTP

4.How does Google search engine works?
5.What is indexing, what is the input and output to it. how Google does that?

DBMS Question Bank

UNIT I

PART A

1. What are database systems? List out its characteristics.
2. What are logical levels is used in data abstraction?
3. Define data, database, DBMS and data base system.
4. Define DBMS.
5. What is meant by data abstraction?
6. Distinguish between physical and logical data independence.
7. What do you understand by data independence? How can it be achieved?
8. What are the data models present in DBMS?
9. What is a data dictionary? What are the information’s stored in the data dictionary?
10. What are the benefits of data dictionary? Who are the users of data dictionary?
11. What is meant by an Instance of the database and schema?
12. Explain briefly about E-R data model.
13. What is the purpose of Meta data?
14. Define the terms: (a) meta data (b)Canned transaction
15. What are the problems in data redundancy?
16. What is the purpose of buffer manager?
17. Define the term Atomicity in transaction management.
18. What are the characteristics that distinguish a DBMS from traditional file processing system?
19. What is the purpose of transaction manager?
20. List out the functions of DBA.
21. Who are all the database users present in DBMS?
22. Describe the different types of database end users.
23. What are entities?
24. What are weak and strong entities? How are they represented in E-R diagram?
25. What is a simple attribute? Give examples.
26. What is a composite attribute? Give examples.
27. What is a single valued attribute? Give examples.
28. What is a multi valued attribute? Give examples.
29. What are key and non key attributes?
30. What is the relationship between entities and attributes?
31. What is E-R modeling?
32. What is E-R diagram and what are their objectives?
33. What is a candidate key? Give an example.
34. What is a primary key? Give an example.
35. What is an alternate key? Give an example.
36. What do you mean by foreign key?
37. What are domain constraints?
38. What is entity integrity?
39. What is a referential integrity?
40. What is meant by a unary and binary operation? What are they?
41. How ‘Natural –Join’ operation is performed?
42. What is a join? What are the benefits of joins?
43. What is equijoin and non equijoin?
44. List the operations of Relational algebra.
45. Define Relational algebra.
46. Differentiate between Cartesian product and natural join operations used in relational algebra.
47. Define database schema.
48. What are the different database languages?
49. How does the domain relational calculus differ from tuple relational calculus?
50. In what sense does relational calculus differ from relational algebra and in what sense are they similar?
51. What is relational calculus?
52. Define Network data base model.
53. What are the two different categories of query languages?


PART B
1. Explain about the relational algebra?
2. Explain in detail about relational data model.
3. Explain about instances & schema, data independence & DBA?
5. Explain about data models?
6. Explain in detail about ER model.
7. Explain about storage management & transaction management components of a
database system.
8. Explain about the architecture of database system.
9. Explain the various basic relational algebra operations in detail.
10. Write a note on relational calculus.
11. Draw the ER diagram for hospital management system.
12. Explain the 3 schema architecture of DBS.Why do we need mappings between
different schema levels? How do different schema definition languages support
this architecture?
13. Consider the following tables:
Employee (Emp_no, Name, Emp_city)
Company (Emp_no, Company_name, Salary)
i. Write a SQL query to display Employee name and company name.
ii. Write a SQL query to display employee name, employee city ,company name and salary of all the employees whose salary >10000
iii. Write a query to display all the employees working in ‘XYZ’ company.
14. Explain various DML commands with neat syntax.
15. Explain in detail any two data models with sample databases.
16. Write short notes on i. Network model ii. Hierarchical model


UNIT II
PART A
1. What do you meant by database integrity?
2. What is referential integrity?
3. What is a view and how is it created? Explain with an example.
4. What is a view in SQL? How is it defined?
5. What is meant by normalization?
6. What is lossy decomposition?
7. What is a trivial functional dependency? Give an example.
8. Why is a relation with many NULLs considered to be bad?
9. What is meant by lossless join decomposition?
10. What is a multi value dependency?
11. What is transitive dependency?
12. What are Armstrong’s axioms?
13. Compare BCNF and 3NF.
14. What are the inference rules for functional dependencies?
15. Define 3NF.
16. Explain the domain key normal form(DKNF).
17. Explain the 4NF and 5NF.
18. What is embedded SQL? What are the advantages of embedded SQL programs?
19. Distinguish between static and dynamic SQL.
20. What is meant by static SQL? How it differs from dynamic SQL?
21. What are triggers? What are three major classes of triggers?
22. What are statement level and row level triggers?
23. What are the advantages and limitation of triggers?
24. What is SQL? What are the characteristics of SQL?
25. What are DDL commands? Give examples.
26. What are DML commands? Give examples.
27. What are DCL commands? Give examples.
28. What are the set operations in SQL? Give examples.
29. How are the nulls represented in database system?
30. What are the situations where you can use nulls?
31. What are views? How they are created?
32. What is the purpose of group by clause in the SELECT statement?
33. What are aggregate functions?


PART B
1. Explain 2NF and 3NF in detail
2. Define BCNF .How does it differ from 3NF.
3. Explain the codd’s rules for relational database design.
4. Explain the ACID properties of a transaction

UNIT III

PART A

1. What are the operations on files?
2. What are the various modes in which a data item may be locked? Explain.
3.
4. What is hasing? Explain.
5. What is meant by indexing?
6. What is a hash function? Give an example.
7. What is a B tree index?
8. What is a B+ tree index?
9. What is a dense index? Give an example.
10. What is a sparse index? Give an example.
11. What is query processing? What is query transformation?
12. What are the different query optimization techniques?
13. Define i. merge join ii. Hash join.
14. What is transaction management?
15. What is concurrency control?
16. What are the ACID properties of a transaction?
17. What do you mean by isolation? Why is it important? Give an example.
18. What do you mean by consistency? Why is it important? Give an example.
19. What do you mean by atomicity? Why is it important? Give an example.
20. What do you mean by durability? Why is it important? Give an example.
21. List out the states of a transaction.

PART B
1. With a neat diagram explain the steps involved in query process.
2. Explain in detail about B+ tree index files.
3. What is deadlock? Explain the various approaches used to recover from deadlock.




UNIT IV

1. What are different types of locks? Distinguish between them.
2. What is database recovery? Why backups are important?
3. What is hashing? Explain.
1. What is serializability? What are the objectives of serializability?
2. What is conflict serializability?
3. What is view serializability?
4. What are cascade less schedules? Give an example.
5. What are different types of locks? Distinguish between them.
6. What is two phase locking?
7. Distinguish between shared and exclusive locks.
8. Distinguish between rigorous locking and strict two phase locking.
9. What is recoverability? What are recoverable schedules?
10. What are the concurrency control schemes?
11. What is check pointing?
12. What are transaction logs?
13. What is the difference between volatile and non volatile storage?
14. What do you mean by rollback?
15. What is forced writing?
16. What is meant by pinned block?
17. What are redo and undo logs?
18. What is a timestamp? State its advantages.
19. What is shadow paging? State its advantages.
20. What is a distributed database? List out its objectives.
21. Define i. replication ii.fragmentation.
22. Distinguish between horizontal and vertical fragmentation. Give examples.
23. What are object oriented databases? List out its characteristics.
24. What is deadlock? What are the techniques used to avoid deadlock?
25. What are the methods used to prevent the system from dead lock?
26. What is database recovery? Why backups are important?

PART B

1. What is a log? What are the different types of log records? With an example
explain the various log based recovery schemes.
2. Explain shadow paging recovery scheme in detail.



UNIT V
PART A
1. What is a distributed database? List out its objectives.
2. What are centralized databases? List out its characteristics.
3. Distinguish between centralized and distributed databases.
4. What is XML? List out its properties.
5. What is DTD? Give an example.
6. Define i. XSLT ii.Xpath
7. What is meant by data replication? State its advantages.
8. Distinguish between homogenous and heterogeneous distributed databases.
9. Define the terms object, attribute and class.

PART B

1. Draw a neat sketch to indicate the architecture of a distributed database system. With
an example explain the various form of data fragmentation used in DDB.
2. Explain XML querying and Transformation
3. Discuss the relative advantages of centralized and distributed database
4. Write the DTD for the banking database.
5. Explain i) Object Oriented relational database.
ii) XML schema
6. Explain the architecture of data warehousing with a neat diagram.
7. What are the various issues to be considered while building a warehouse?
Explain.

E - book download links

The list of all ebook download links:

http://ebooks.katz.cd/

http://www.free-ebooks.net/

http://www.ebooklobby.com/

http://www.getfreeebooks.com/

http://www.torrentz.com/search?q=ebooks

these are the leading ebook download links I know!
If you know other such sites, add as a comment to this post.

C Interview Questions And Answers -1

C Interview Questions And Answers -1

Question : What is C language?

Answers : The C programming language is a standardized programming language developed in the early 1970s by Ken Thompson and Dennis Ritchie for use on the UNIX operating system. It has since spread to many other operating systems, and is one of the most widely used programming languages. C is prized for its efficiency, and is the most popular programming language for writing system software, though it is also used for writing applications. ...printf() Function

Question : What is the output of printf("%d")?

Answers :1. When we write printf("%d",x); this means compiler will print the value of x. But as here, there is nothing after �%d� so compiler will show in output window garbage value.

2. When we use %d the compiler internally uses it to access the argument in the stack (argument stack). Ideally compiler determines the offset of the data variable depending on the format specification string. Now when we write printf("%d",a) then compiler first accesses the top most element in the argument stack of the printf which is %d and depending on the format string it calculated to offset to the actual data variable in the memory which is to be printed. Now when only %d will be present in the printf then compiler will calculate the correct offset (which will be the offset to access the integer variable) but as the actual data object is to be printed is not present at that memory location so it will print what ever will be the contents of that memory location.

3. Some compilers check the format string and will generate an error without the proper number and type of arguments for things like printf(...) and scanf(...).

Question : malloc() Function- What is the difference between "calloc(...)" and "malloc(...)"?

Answers :

1. calloc(...) allocates a block of memory for an array of elements of a certain size. By default the block is initialized to 0. The total number of memory allocated will be (number_of_elements * size).
malloc(...) takes in only a single argument which is the memory required in bytes. malloc(...) allocated bytes of memory and not blocks of memory like calloc(...).

2. malloc(...) allocates memory blocks and returns a void pointer to the allocated space, or NULL if there is insufficient memory available.
calloc(...) allocates an array in memory with elements initialized to 0 and returns a pointer to the allocated space.
calloc(...) calls malloc(...) in order to use the C++ _set_new_mode function to set the new handler mode.

Question : printf() Function- What is the difference between "printf(...)" and "sprintf(...)"?

Answers : sprintf(...) writes data to the character array whereas printf(...) writes data to the standard output device.

Question :Compilation How to reduce a final size of executable?
Answers :Size of the final executable can be reduced using dynamic linking for libraries.

Question : Linked Lists -- Can you tell me how to check whether a linked list is circular?
Answers :Create two pointers, and set both to the start of the list. Update each as follows:
while (pointer1) {pointer1 = pointer1->next;
pointer2 = pointer2->next;
if (pointer2) pointer2=pointer2->next;
if (pointer1 == pointer2) {print ("circular");
}}
If a list is circular, at some point pointer2 will wrap around and be either at the item just before pointer1, or the item before that. Either way, its either 1 or 2 jumps until they meet.

Question :"union" Data Type What is the output of the following program? Why?

Answers :
#include
main() {
typedef union {
int a;char b[10];
float c;
}
Union;
Union x,y = {100};
x.a = 50;
strcpy(x.b,"hello");
x.c = 21.50;
printf("Union x : %d %s %f n",x.a,x.b,x.c);
printf("Union y : %d %s %f n",y.a,y.b,y.c);
}

Question :String Processing --- Write out a function that prints out all the permutations of a string. For example, abc would give you abc, acb, bac, bca, cab, cba.Answers :
void PrintPermu (char *sBegin, char* sRest)
{
int iLoop;
char cTmp;
char cFLetter[1];
char *sNewBegin;
char *sCur;int iLen;
static int iCount;
iLen = strlen(sRest);
if (iLen == 2) {iCount++;
printf("%d: %s%s\n",iCount,sBegin,sRest);
iCount++;printf("%d: %s%c%c\n",iCount,sBegin,sRest[1],sRest[0]);return;
}
else if (iLen == 1) {iCount++;
printf("%d: %s%s\n", iCount, sBegin, sRest);return;
}
else
{
// swap the first character of sRest with each of
// the remaining chars recursively call debug print
sCur = (char*)malloc(iLen);
sNewBegin = (char*)malloc(iLen);
for (iLoop = 0; iLoop <>
iLoop ++)
{
strcpy(sCur, sRest);
strcpy(sNewBegin, sBegin);
cTmp = sCur[iLoop];
sCur[iLoop] = sCur[0];sCur[0] = cTmp;sprintf(cFLetter, "%c", sCur[0]);
strcat(sNewBegin, cFLetter);
debugprint(sNewBegin, sCur+1);
}}}
void main()
{char s[255];
char sIn[255];
printf("\nEnter a string:");
scanf("%s%*c",sIn);
memset(s,0,255);
PrintPermu(s, sIn);
}

C/C++ PROGRAMMING

C Interview Questions


1. What is Polymorphism ?

'Polymorphism' is an object oriented term. Polymorphism may be defined as the ability of related objects to respond to the same message with different, but appropriate actions. In other words, polymorphism means taking more than one form. Polymorphism leads to two important aspects in Object Oriented terminology - Function Overloading and Function Overriding. Overloading is the practice of supplying more than one definition for a given function name in the same scope. The compiler is left to pick the appropriate version of the function or operator based on the arguments with which it is called. Overriding refers to the modifications made in the sub class to the inherited methods from the base class to change their behavior.

2. What is Operator overloading ?

When an operator is overloaded, it takes on an additional meaning relative to a certain class. But it can still retain all of its old meanings.Examples:1) The operators >> and << color="#ffffcc">
3. What are Templates ?

C++ Templates allow u to generate families of functions or classes that can operate on a variety of different data types, freeing you from the need to create a separate function or class for each type. Using templates, u have the convenience of writing a single generic function or class definition, which the compiler automatically translates into a specific version of the function or class, for each of the different data types that your program actually uses. Many data structures and algorithms can be defined independently of the type of data they work with. You can increase the amount of shared code by separating data-dependent portions from data-independent portions, and templates were introduced to help you do that.

4. What is the difference between run time binding and compile time binding?

Dynamic Binding :The address of the functions are determined at runtime rather than @ compile time. This is also known as "Late Binding".

Static Binding :The address of the functions are determined at compile time rather than @ run time. This is also known as "Early Binding"

5. What is Difference Between C/C++ ?

C does not have a class/object concept.
C++ provides data abstraction, data encapsulation, Inheritance and Polymorphism.
C++ supports all C syntax.
In C passing value to a function is "Call by Value" whereas in C++ its "Call by Reference"File extension is .c in C while .cpp in C++.(C++ compiler compiles the files with .c extension but C compiler can not!)
In C structures can not have contain functions declarations. In C++ structures are like classes, so declaring functions is legal and allowed.
C++ can have inline/virtual functions for the classes.
c++ is C with Classes hence C++ while in c the closest u can get to an User defined data type is struct and union

6. What will be the output of the following code?

void main ()
{ int i = 0 , a[3] ;
a[i] = i++;
printf ("%d",a[i]) ;

} The output for the above code would be a garbage value. In the statement a[i] = i++; the value of the variable i would get assigned first to a[i] i.e. a[0] and then the value of i would get incremented by 1. Since a[i] i.e. a[1] has not been initialized, a[i] will have a garbage value.

7. Why doesn't the following code give the desired result?

int x = 3000, y = 2000 ;

long int z = x * y ;
Here the multiplication is carried out between two ints x and y, and the result that would overflow would be truncated before being assigned to the variable z of type long int. However, to get the correct output, we should use an explicit cast to force long arithmetic as shown below: long int z = ( long int ) x * y ;
Note that ( long int )( x * y ) would not give the desired effect.

8. Why doesn't the following statement work?

char str[ ] = "Hello" ;
strcat ( str, '!' ) ;
The string function strcat( ) concatenates strings and not a character. The basic difference between a string and a character is that a string is a collection of characters, represented by an array of characters whereas a character is a single character. To make the above statement work writes the statement as shown below:
strcat ( str, "!" ) ;

9. How do I know how many elements an array can hold?

The amount of memory an array can consume depends on the data type of an array. In DOS environment, the amount of memory an array can consume depends on the current memory model (i.e. Tiny, Small, Large, Huge, etc.). In general an array cannot consume more than 64 kb. Consider following program, which shows the maximum number of elements an array of type int, float and char can have in case of Small memory model.

main( )
{
int i[32767] ;
float f[16383] ;
char s[65535] ;
}

10. How do I write code that reads data at memory location specified by segment and offset?

Use peekb( ) function. This function returns byte(s) read from specific segment and offset locations in memory. The following program illustrates use of this function. In this program from VDU memory we have read characters and its attributes of the first row. The information stored in file is then further read and displayed using peek( ) function.


main( )
{

char far *scr = 0xB8000000 ;
FILE *fp ;
int offset ;
char ch ;

if ( ( fp = fopen ( "scr.dat", "wb" ) ) == NULL )
{

printf ( "\nUnable to open file" ) ;
exit( ) ;

}

// reads and writes to file
for ( offset = 0 ; offset < fp =" fopen" offset =" 0">

SYLLABUS

SEMESTER VIII

(Applicable to the students admitted from the Academic year 2006 – 2007 onwards)

To download the syllabus


Click here

IT1402 MOBILE COMPUTING

AIM
To provide basics for various techniques in Mobile Communications and Mobile Content services.

OBJECTIVES
• To learn the basics of Wireless voice and data communications technologies.
• To build working knowledge on various telephone and satellite networks.
• To study the working principles of wireless LAN and its standards.
• To build knowledge on various Mobile Computing algorithms.
• To build skills in working with Wireless application Protocols to develop mobile content applications.

UNIT I WIRELESS COMMUNICATION FUNDAMENTALS
Introduction – Wireless transmission – Frequencies for radio transmission – Signals – Antennas – Signal Propagation – Multiplexing – Modulations – Spread spectrum – MAC – SDMA – FDMA – TDMA – CDMA – Cellular Wireless Networks.

UNIT II TELECOMMUNICATION NETWORKS
Telecommunication systems – GSM – GPRS – DECT – UMTS – IMT-2000 – Satellite Networks - Basics – Parameters and Configurations – Capacity Allocation – FAMA and DAMA – Broadcast Systems – DAB - DVB.

UNIT III WIRLESS LAN
Wireless LAN – IEEE 802.11 - Architecture – services – MAC – Physical layer – IEEE 802.11a - 802.11b standards – HIPERLAN – Blue Tooth.

UNIT IV MOBILE NETWORK LAYER
Mobile IP – Dynamic Host Configuration Protocol - Routing – DSDV – DSR – Alternative Metrics.

UNIT V TRANSPORT AND APPLICATION LAYERS
Traditional TCP – Classical TCP improvements – WAP, WAP 2.0.


TEXT BOOKS
1. Jochen Schiller, “Mobile Communications”, PHI/Pearson Education, Second Edition, 2003.
(Unit I Chap 1,2 &3- Unit II chap 4,5 &6-Unit III Chap 7.Unit IV Chap 8- Unit V Chap 9&10.)
2. William Stallings, “Wireless Communications and Networks”, PHI/Pearson Education, 2002. (Unit I Chapter – 7&10-Unit II Chap 9)

REFERENCES
1. Kaveh Pahlavan, Prasanth Krishnamoorthy, “Principles of Wireless Networks”, PHI/Pearson Education, 2003.
2. Uwe Hansmann, Lothar Merk, Martin S. Nicklons and Thomas Stober, “Principles of Mobile Computing”, Springer, New York, 2003.
3. Hazysztof Wesolowshi, “Mobile Communication Systems”, John Wiley and Sons Ltd, 2002.





CS1020 SOFTWARE QUALITY MANAGEMENT

AIM
To introduce an integrated approach to software development incorporating quality management methodologies.
OBJECTIVE
• Software quality models
• Quality measurement and metrics
• Quality plan, implementation and documentation
• Quality tools including CASE tools
• Quality control and reliability of quality process
• Quality management system models
• Complexity metrics and Customer Satisfaction
• International quality standards – ISO, CMM

UNIT I INTRODUCTION TO SOFTWARE QUALITY
Software Quality – Hierarchical models of Boehm and McCall – Quality measurement – Metrics measurement and analysis – Gilb’s approach – GQM Model

UNIT II SOFTWARE QUALITY ASSURANCE
Quality tasks – SQA plan – Teams – Characteristics – Implementation – Documentation – Reviews and Audits

UNIT III QUALITY CONTROL AND RELIABILITY
Tools for Quality – Ishikawa’s basic tools – CASE tools – Defect prevention and removal – Reliability models – Rayleigh model – Reliability growth models for quality assessment

UNIT IV QUALITY MANAGEMENT SYSTEM
Elements of QMS – Rayleigh model framework – Reliability Growth models for QMS – Complexity metrics and models – Customer satisfaction analysis.

UNIT V QUALITY STANDARDS
Need for standards – ISO 9000 Series – ISO 9000-3 for software development – CMM and CMMI – Six Sigma concepts.


TEXT BOOKS
1. Allan C. Gillies, “Software Quality: Theory and Management”, Thomson Learning, 2003. (UI : Ch 1-4 ; UV : Ch 7-8)
2. Stephen H. Kan, “Metrics and Models in Software Quality Engineering”, Pearson Education (Singapore) Pte Ltd., 2002. (UI : Ch 3-4; UIII : Ch 5-8 ; UIV : Ch 9-11)

REFERENCES
1. Norman E. Fenton and Shari Lawrence Pfleeger, “Software Metrics” Thomson, 2003
2. Mordechai Ben – Menachem and Garry S.Marliss, “Software Quality”, Thomson Asia Pte Ltd, 2003.
3. Mary Beth Chrissis, Mike Konrad and Sandy Shrum, “CMMI”, Pearson Education (Singapore) Pte Ltd, 2003.
4. ISO 9000-3 “Notes for the application of the ISO 9001 Standard to software development”.




GE1301 PROFESSIONAL ETHICS AND HUMAN VALUES

OBJECTIVE
• To create an awareness on Engineering Ethics and Human Values.
• To instill Moral and Social Values and Loyalty
• To appreciate the rights of Others

1. HUMAN VALUES
Morals, Values and Ethics – Integrity – Work Ethic – Service Learning – Civic Virtue – Respect for Others – Living Peacefully – caring – Sharing – Honesty – Courage – Valuing Time – Co-operation – Commitment – Empathy – Self-Confidence – Character – Spirituality

2. ENGINEERING ETHICS
Senses of 'Engineering Ethics' - variety of moral issued - types of inquiry - moral dilemmas - moral autonomy - Kohlberg's theory - Gilligan's theory - consensus and controversy – Models of Professional Roles - theories about right action - Self-interest - customs and religion - uses of ethical theories.

3. ENGINEERING AS SOCIAL EXPERIMENTATION
Engineering as experimentation - engineers as responsible experimenters - codes of ethics - a balanced outlook on law - the challenger case study

4. SAFETY, RESPONSIBILITIES AND RIGHTS
Safety and risk - assessment of safety and risk - risk benefit analysis and reducing risk - the three mile island and chernobyl case studies.
Collegiality and loyalty - respect for authority - collective bargaining - confidentiality - conflicts of interest - occupational crime - professional rights - employee rights - Intellectual Property Rights (IPR) - discrimination.

5. GLOBAL ISSUES
Multinational corporations - Environmental ethics - computer ethics - weapons development - engineers as managers-consulting engineers-engineers as expert witnesses and advisors -moral leadership-sample code of Ethics like ASME, ASCE, IEEE, Institution of Engineers (India), Indian Institute of Materials Management, Institution of electronics and telecommunication engineers (IETE),India, etc.


TEXT BOOK

1. Mike Martin and Roland Schinzinger, “Ethics in Engineering”, McGraw-Hill, New York 1996.
2. Govindarajan M, Natarajan S, Senthil Kumar V. S, “Engineering Ethics”, Prentice Hall of India, New Delhi, 2004.

REFERENCES

1. Charles D. Fleddermann, “Engineering Ethics”, Pearson Education / Prentice Hall, New Jersey, 2004 (Indian Reprint)
2. Charles E Harris, Michael S. Protchard and Michael J Rabins, “Engineering Ethics – Concepts and Cases”, Wadsworth Thompson Learning, United States, 2000 (Indian Reprint now available)
3. John R Boatright, “Ethics and the Conduct of Business”, Pearson Education, New Delhi, 2003.
4. Edmund G Seebauer and Robert L Barry, “Fundamentals of Ethics for Scientists and Engineers”, Oxford University Press, Oxford, 2001.