Menu

Showing posts with label Best Resources for UGC Net Computer. Show all posts
Showing posts with label Best Resources for UGC Net Computer. Show all posts

Tuesday, August 21, 2018

Subject Books for UGC NET Computer Science

Friends,

I found a comprehensive list of suggested books for preparing different subjects under computer Science. You may check it and even suggest me if you came across better books than I have mentioned here.

S.No.
Book Title
Author
1.
Matrices
AR Vasista
2.
Higher Engineering Maths
BS Grewal
3.
Probability and Statistics
Miller and Freund
4.
Discrete Mathematical Structures
JP Trembly and Manohar
5.
Discrete Maths
Schaum’s Series
6.
Discrete Mathematical Structures
Kolman, Busby and Ross
7.
Graph Theory
Narsingh Deo
8.
Numerical Methods
Golden Series
9.
Numerical Methods
BS Grewal
10.
Numerical Methods
SS Sastry
11.
Numerical Methods
Jain and Iyengar
12.
Discrete Mathematics
Mott, Kandel and Baker
13.
Automata
Ullman and Hopcroft
14.
Introduction to Computer Theory
Daniel Cohen 2nd Edition
15.
Theory of ComputerScience 2nd Edition
Chandrasekaran & Mishra
16.
Design Analysis of Comp. Algorithms
Aho, Hopcroft and Ullman
17.
Computer Algorithms
Horowitz and Sahni
18.
Introduction to Algorithms
Thomas Cormon, Charles Ronald
19.
Switching and Finite Automata Theory
Kohavi
20.
Digital Logic and Computer Design
Morris Mano
21.
Digital Principles and Applications
Leach and Malvino
22.
Computer System Architecture
Mano
23.
Computer Org. and Architecture
William Stallings
24.
Computer Organization
Hamacher, Vranesic &Zaky
25.
Computer Architecture and Organization
Hayes
26.
Programming Languages
Pratt and Zelkewitz
27.
Compilers
Aho, Ullman and Sethi
28.
Principles of Compiler Design
Aho and Ullman
29.
Fundamentals of Data Structures
Horowitz. Sahni
30.
Introduction to DS with Applications
Trembly and Sorenson
31.
Data Structures
Schaum Series
32.
DS and Programming in C
Kruse, Tondo and Leung
33.
C Programming
Venugopal
34.
C Programming Language
Kernighan and Ritchie
35.
System Programming
Donovan
36.
System Programming and OS
Dhamdhere
37.
Operating Systems
Dietel
38.
Operating Systems
William Stallings
39.
Operating Systems
Milan Milenkovic
40.
OS Concepts
Galvin and Silberschatz
41.
Computer Networks
Andrew Tanenbaum
42.
Data Communications
William Stallings
43.
Engg. Approach to Comp. Networks
S Keshav
44.
Introduction to Switching Theory & Logic Design
FJ Hill and Peterson
45.
Database Systems
Korth and Sudhershan
46.
Fundamentals of DBMS
Elmasri, Navathe
47.
An Introduction to DBMS
CJ Date
48.
DBMS 3rd Edition
Ramakrishnan, Gehrke
49.
An Introduction to DBMS
Bipin C Desai
50.
Multiple Choice Questions in Computer Science
Timothy J Williams

Software Testing Techniques

Here, we will discuss some important software testing techniques. In exams like UGC NET, questions are often asked from this topic.

There are four levels of software testing: Unit >> Integration >> System >> Acceptance.

Usually, Black Box Testing method is used in Acceptance Testing. Acceptance Testing is performed after System Testing and before making the system available for actual use.

Smoke Testing, also known as “Build Verification Testing", comprises of a non-exhaustive set of tests that aim at ensuring that the most important functions work, but none of them in depth. It helps in exposing integration and major problems early in the cycle.

Functional testing ensures that the requirements are properly satisfied by the application. During functional testing, Black Box Testing technique is used. It is performed during the levels of System Testing and Acceptance Testing. It has a high possibility of redundant testing.

Security Testing intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders.
Example of a basic security test: Click the BACK button of the browser (Check if you are asked to log in again or if you are provided the logged-in application.)

Regression testing intends to ensure that changes (enhancements or defect fixes) to the software have not adversely affected it.Regression testing can be performed during any level of testing but it is mostly relevant during System Testing.

Unit Testing is performed by using the White Box Testing method. This type of testing is performed prior to Integration Testing, by software developers themselves or their peers.

Integration Testing: The purpose of this level of testing is to expose possible faults in the interaction between integrated units. Different approaches are:
Big Bang:  all or most of the units of the code are combined together and tested at one go. This approach is used when the testing team receives the entire software in a bundle. Big Bang Integration tests only the interactions between the units while System Testing tests the entire system.

Top Down: top level units are tested first and (step by step ) lower level units are tested later. This approach is followed with top down development. Test Stubs are needed to simulate lower level units which may not be available during the initial phases.

Bottom Up: bottom level units are tested first and upper level units step by step after that. This approach is used when bottom up development approach is followed. Test Drivers are needed to simulate higher level units which may not be available during the initial phases.

Sandwich/Hybrid: A combination of Top Down and Bottom Up approaches.

System Testing: A complete, integrated system/software is tested. The purpose is to evaluate the system’s compliance with the specified requirements. Usually, Black Box Testing method is used. independent Testers perform System Testing.

Acceptance Testing: This testing method does not usually follow a strict procedure and is not scripted but is rather ad-hoc. It is performed after System Testing and before making the system available for actual use.

Black Box Testing is also known as Behavioral Testing. There are some techniques that can be used for designing black box tests:

Equivalence partitioning: Involves dividing input values into valid and invalid partitions and selecting representative values from each partition as test data.

Boundary Value Analysis: Involves determination of boundaries for input values and selecting values that are at the boundaries and just inside/outside of the boundaries as test data.

Cause Effect Graphing: Identifies the cases (input conditions) and effects (output conditions), producing a Cause-Effect Graph, and generating test cases accordingly.

White Box Testing (Code-Based Testing or Structural Testing): The internal structure/design/implementation of the item being tested is known to the tester. It is mainly applied to Unit Testing.

Gray Box Testing: The internal structure is partially known. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level. it is primarily useful in Integration Testing.

Thursday, August 1, 2013

Useful Q & A on Networking - Part 1

Q 1. What happens at every layer of the OSI model when we type "www.google.com" in the browser? 

Ans. The following sequence of steps takes place every time we type the name of a website in a browser->
1) Your PC will need to resolve "www.google.com" to an IP address. It will therefore need to send a 
query to your DNS server ( usually your ISP's DNS).

2) The PC constructs a DNS query packet with a destination IP address equal to your DNS server 
and a destination MAC address of your router (gateway).

3) The DNS query process begins to resolve the IP address of the given URL.

4) Once your PC (web browser application) receives the IP address of the destination web server, it will construct a HTTP GET request and send it to Google's web server. (As per OSI model at application layer [layer 7] application software which is client web browser now know the IP address of google.com). After that it pass that information down to presentation layer.

5) Presentation layer[ layer 6] converts that HTTP request into a standard format which is HTTP format so that the other layers can understand.and pass that information down to session layer.

6) Session layer[ layer 5] at client side creates session for www.google.com which is HTTP session so that it can be separated from other sessions.and pass that information down to transport Layer.

7) Transport Layer[ layer 4]  at client side chooses TCP for every HTTP session which is reliable connection which creates virtual connection by using three way hand-shake before sending actual data [HTTP Request]. This layer also prepares segments by adding source and destination port number. Source port is chosen by upper layer which is random number range from 1024 to 65535  and destination port number is here 80, which is well known port number used for HTTP services.

Layer 4 assign source port number to distinguish the web browser application from every other program running on computer and it also used to identify which application should receive return traffic. The destination port number is used to make sure that messages coming from web browser gets and sent to web server program running on the server and is not grabbed by other program. After preparing segment, layer 4 at client side pass that information down to network layer.

8) Network Layer [ layer 3] at client side  prepares packet by adding source and destination IP address. It also check whether destination IP address is on local network or it is on remote network. If it is on local network it checks ARP cache to find mac address of local device. If cache is empty it sends ARP message to resolve IP address into MAC address. Here the device is on remote network so client PC sends ARP to find MAC address of default gate way [192.168.1.1]. Every devices on that network segment gets that ARP request because as it layer 2 broadcast message destined for all devices on that broadcast domain but only the default gateway, which is 192.168.1.1, replies with its MAC address. Then network layer passes this information down to data link layer.

9) Data link layer[ layer 2]  prepares frame by adding source and destination MAC address of default gate way[192.168.1.1]. It also rund CRC which simply checks the data and frame header bits and add that result in to frame check sequence (FCS) field. Then, passes this information down to Physical layer.

10) Physical layer[ layer 1]: converts all this information in 1's and 0's and sends it to destination device using Ethernet cable.

11) Google's Web server will reply and start sending your application the necessary data using TCP session.

12) The application will start to draw and present the website on your screen.

At the server side, i.e. Google:

1) At Physical layer, server receives the bits. Layer 2 of server builds frames and runs CRC and checks answer with FCS field. If answer didn't match then the frame is discarded. If it matches then the destination MAC address is checked. Here, destination MAC address is right, so it checks Ethernet type field to find the protocol used at network layer (which is IP). It retrieves the packet from the frame and gives to IP at network layer.

2) Network layer checks destination IP address and in our case it matches so it checks protocol type field to find the protocol used at Layer 4 (which is TCP). Now network layer of server sends all information up to TCP at layer 4.

3) At transport layer, destination port number is checked which is well know port number 80, which is destined to web server application running on that particular server i.e. in our case www.google.com. So it passes all those information up to google web server. Google web server sends acknowledgement message to client to ensure that it has received its request. Finally, it sends the web page in the form of packet by packet over the network to client. This information gives google web page to our client web browser.

Wednesday, July 17, 2013

Notes on Computer Networking:Part II

IP address classes:
Class
Leftmost bits
Start address
Finish address
A
0xxx
0.0.0.0
127.255.255.255
B
10xx
128.0.0.0
191.255.255.255
C
110x
192.0.0.0
223.255.255.255
D
1110
224.0.0.0
239.255.255.255
E
1111
240.0.0.0
255.255.255.255

IP address range for Intranets (Private Networks):
Class
Private start address
Private finish address
A
10.0.0.0
10.255.255.255
B
172.16.0.0
172.31.255.255
C
192.168.0.0
192.168.255.255

IP packets addressed by them cannot be transmitted onto the public Internet. If such a private network needs to connect to the Internet, it must use either a network address translator (NAT) gateway, or a proxy server.

Some good facts on IP V6:

In IPV6, The address block fc00::/7 has been reserved for private networks.
IP officially reserves the entire range from 127.0.0.0 through 127.255.255.255 for loopback purposes.
Very Imp: IPv6 does not use classes. IPv6 supports the following three IP address types: 
1. Unicast 
2. Multicast 
3. Anycast
IPv6 does not support broadcast. Multicast addresses in IPv6 start with 'FF' (255) just like IPv4 addresses. Unicast addresses have 3 defined scopes, including link-local, site-local and global; and multicast addresses have 14 scopes.
The number of IPv6 addresses is 1028. There is no ARP in V6. Currently, DHCP, FTP, PPP, RIP, SNMP, VPN, L2TP and Telnet do not support IPv6.
IPv6 does not require NAT. NAT, too, doesn't support V6. Currently, IPv6 packets are not forwarded.
IPv6 reserves just two special addresses: 0:0:0:0:0:0:0:0 and 0:0:0:0:0:0:0:1. IPv6 uses 0:0:0:0:0:0:0:0 internal to the protocol implementation, so nodes cannot use it for their own communication purposes. IPv6 uses 0:0:0:0:0:0:0:1 as its loopback address, equivalent to 127.0.0.1 in IPv4. The minimum size of an IP datagram is 28 bytes, including 20 bytes of header.
Anycast is a network addressing and routing methodology in which datagrams from a single sender are routed to the topologically nearest node in a group of potential receivers, though it may be sent to several nodes, all identified by the same destination address. On the Internet, anycast is usually implemented by using BGP.
In denial-of-service attacks (DoS), a rogue network host may advertise itself as an anycast server for a vital network service, to provide false information or simply block service.
6to4 is an Internet transition mechanism for migrating from IPv4 to IPv6, a system that allows IPv6 packets to be transmitted over an IPv4 network. 6to4 does not facilitate interoperation between IPv4-only hosts and IPv6-only hosts, but simply a transparent mechanism used as a transport layer between IPv6 nodes.

The network requests supporting DNS lookups run over TCP and UDP, port 53 by default.

Some Questions-Answers with explanation
In a network of LANs connected by bridges, packets are sent from one LAN to another through intermediate bridges. Since more than one path may exist between two LANs, packets may have to be routed through multiple bridges. Why is the spanning tree algorithm used for bridge-routing? (GATE 2005)
(a) For shortest path routing between LANs         (b) For avoiding loops in the routing paths
(c) For fault tolerance                                      (d) For minimizing collisions
SOLUTION: Spanning tree is a protocol that allows the bridges to exchange information so that only one of them will handle a given message that is being sent between two computers within the network. This  protocol prevents the condition known as a BRIDGE LOOP. It is typical to add a second bridge between two network segments as a backup in case the primary bridge fails (both bridges need to have some way to understand which bridge is the primary one). To do this, they have a separate path connection just between the bridges in which they exchange information, using bridge protocol data units (BPDUs).
The program in each bridge that allows it to determine how to use the protocol is known as the spanning tree algorithm. The algorithm is specifically constructed to avoid bridge loops (for a bridge using only the most efficient path when faced with multiple paths). If the best path fails, the algorithm recalculates the network and finds the next best route.
How many 8-bit characters can be transmitted per second over a 9600 baud serial communication link using asynchronous mode of transmission with one start bit, eight data bits, two stop bits and one parity bit?
(1) 600         (2) 800         (3) 876           (4) 1200
For 9600 baud, 1 bit=1/9600=0.104mS. Each char would require 11 bits. That means, to transmit one char, it would take 1.144 mS. So, applying the formula 1000/1.144 (mS in one Sec/transmission time for one char)=approx 875. Nearest answer is (3)
The single stage network is also called
A) one sided network                             B) two sided network
C) recirculating network                      D) pipeline network
Single-Stage Network is a single stage of switching elements (SEs) existing between the inputs and the outputs of the network. Data is circulated a number of times around the network.
 If a class B network on the Internet has a subnet mask of 255.255.248.0, what is the maximum number of hosts per subnet?
(a) 1022 (b) 1023 (c)
 2046 (d) 2047
Explanation: Convert the subnet mask into binary format.
255.255.248.0 = 11111111.11111111.11111000.00000000
Number of 1's in the subnet mask indicates the Network-ID and the Subnet-ID part. Number of 0's in the subnet mask indicates the Host-ID part. Maximum number of Hosts per subnet = 211 = 2048, where 11 = Number of 0's in the Subnet Mask. Out of 2048 values, 2 addresses are reserved, hence we remove them (2048-2 = 2046). Note: In the host part of the address:- all bits as 1 is reserved as broadcast address and all bits as 0 is used as network address of subnet.
Which of the following system calls results in the sending of SYN packets?
(a) socket (b) bind (c) listen (d) connect
The connect system call is normally called by the client process to connect to the server process. The socket system call creates a new socket and assigns the protocol and resources to the created socket descriptor. The bind system call associates a local network transport address with a socket. For a client process, it is not mandatory to issue a bind call. The kernel takes care of doing an implicit binding when the client process issues the connect system call. It is often necessary for a server process to issue an explicit bind request before it can accept connections or start communication with clients. The listen call indicates to the protocol that the server process is ready to accept any new incoming connections on the socket. There is a limit on the number of connections that can be queued up, after which any further connection requests are ignored.