Friday, 12 February 2021

A case to make higher education free

 A UNIQUE feature of Jawaharlal Nehru University (JNU) is its student composition. A substantial proportion of its students come from socially and economically underprivileged families. Yet there is considerable social inter-mixing among students, made possible perhaps by campus politics which breaks down insularities. JNU having a large proportion of impecunious students is the result of major student struggles in the past. One of the first events I encountered when I joined JNU in 1973 was a student strike over the admissions policy. Students had then ensured not only that applicants got extra points for social, economic and regional deprivation, but also that student members of the Student-Faculty Committees had access to the admissions files to detect and correct violations.

November 15, 1969: President V.V. Giri arrives in a procession along with JNU Chancellor Indira Gandhi and (right) Vice Chancellor G. Parthasarathi. The previous day, he inaugurated the university. Photo: THE HINDU ARCHIVES

The admission procedure has changed since then. It has been computerised and outsourced. But the emphasis on getting a proper social mix had been there until recently when an effort began to change it. The recent whopping increase in hostel fees is part of this effort. The “partial rollback” announced by the Executive Council means little: it is “a hundred steps forward and fifty steps back” and that too in an entirely wrong direction.

Many would agree that a jump in hostel fees that makes a JNU education beyond the reach of students from deprived backgrounds should be avoided. They would argue, however, that the better-off students, whose parents can easily afford higher fees, should be paying more. This could be arranged in one of two ways: either by jacking up fees for all and providing adequate scholarships to the impecunious students or by charging higher fees to some and not to others.

These, however, are completely untenable suggestions. They would require obtaining information about the precise income status of each student (except perhaps of a minority that could not care less). But getting accurate information about the income status of the parents or the benefactor of each student is an impossible task, as critics of the old JNU admissions policy involving deprivation points used to argue repeatedly.

Of the two, charging higher fees to some and not to others may appear to be the better alternative, since the errors of exclusion would be less in this case: one can easily miss giving a scholarship to somebody, which would ruin his or her prospects, but one would charge higher fees only when one is absolutely sure. Critics of the JNU students’ current agitation, who have written in the media asking why the better-off students should not pay more, generally prefer this option.

But opting for it shows a total lack of understanding of the ethos of a university. Differential fees are almost certain to destroy all camaraderie among students. Those who are forced to pay higher fees would resent the others who have escaped this fate; they may even develop the attitude of “this person is getting an education because of my generosity”. Under these circumstances, a sense of equality, which is the basis of camaraderie among students, would disappear, to be replaced by a sense of hierarchy. It would be an institutional reproduction of the odious caste system of Indian society within a university, and that too a university like JNU that has striven with some success to overcome its shadow being cast on students’ social life. A sense of equality, and hence camaraderie, among students presupposes equal treatment for all by the institution to which they belong. Institutionally imposed inequality breeds a corresponding sense of inequality among students.

There is, however, a deeper point here. It is wrong to force young adults to rely on their parents for support during the period they are getting educated. To be sure, better-off students would still have access to their parents’ purses. But it is wrong to force them to rely on their parents’ purses, both for their own self-respect and also for their freedom. Even if parents do not interfere in their daughter’s or son’s choice of courses and career, it is still demeaning for the daughter or son to ask them for help. But if parents do interfere, then, of course, it abrogates the freedom of the offspring. The education system, therefore, must refrain from pressuring students to become unduly dependent on their parents.

This objective, in fact, is best served if higher education in public institutions is made completely free. The case for free higher education, in other words, arises not only on account of the large number of impecunious students, to prevent their exclusion; it arises on account of all students as a condition for preserving their dignity as young adults and for their exercising the freedom of choice. (One would of course argue for free primary and secondary education on the same grounds.)

This is particularly important for women students. In India, educating daughters is generally accorded a lower priority than educating sons. Even among better-off parents with many children, the tendency is to concentrate resources on educating sons and to get the daughters, even those passionate about pursuing higher education, married off early. If young women are to have the freedom to exercise their choice with regard to their future, they should be able to pursue higher education without being dependent on their parents or without being prematurely pushed into the job market. The best way to ensure this is to make higher education absolutely free in public institutions.

It may be argued that these objectives, such as the preservation of dignity and freedom of choice among all students, especially among female students, can be equally well-served if higher education is not made free but students are given loans instead to pursue higher education. But in a society where there is massive unemployment even among the educated, repayment of loans would become a problem, which may even cause suicides among students unable to repay, as is happening with peasants. The anticipation of this very eventuality would prevent impecunious students from seeking loans to finance their higher education. In fact, the student loan crisis in the United States is a significant pointer to what might happen.

Besides, the suggestion that rather than making higher education free, students should be advised to use loans for their study is based on a perception of higher education that is flawed. It presumes that higher education is basically to be acquired for the purpose of obtaining a more lucrative job, that it is essentially an input for the production of a more finished commodity that commands a higher value in the market. This perception treats higher education as a commodity. In fact, the commoditisation of education that is occurring at present in India and elsewhere under the neoliberal dispensation is based on this view of higher education.

The problem with the commoditisation of education, however, is that the object that is supplied as a commodity called education is not really education. It is a capsule of information or a certain kind of skill, but not education, whose essence lies in training minds to raise questions. It neither introduces students to the grandeur of the world of ideas nor makes them ask questions, realise their creative potential or become socially sensitive. On the contrary, it encourages them to become self-centred, self-absorbed individuals with little originality and creativity, whose conformism makes them well-suited to become servitors of international finance capital.

Commoditisation of higher education completely ignores the social role of education, its importance in building a society in accordance with the values enshrined in the Constitution and inherited from the anti-colonial struggle. It ignores, to put it succinctly, the need for developing what Gramsci would have called the “organic intellectuals” of the people of a free India.

To achieve this latter end, higher education must not only be primarily provided through public institutions (apart perhaps from a few philanthropic institutions) which are not run on a commercial basis, but must also be completely free, not allowing any exclusion on the grounds of impecuniousness. Instead of becoming an exclusive stamping ground for wealthy students whose lack of sympathy towards the less privileged and bland acceptance of social and economic inequity find general acceptance, institutions of higher education must be places of vibrant debate and free social mixing.

A system of free higher education is necessary for this, for it breaks away from a perception of education as adding value to oneself in the market and underscores the social role of education. If society has need for “organic intellectuals”, then society must find the resources to produce them. It would be argued that free higher education does not exist even in advanced capitalist countries, then why should we in India institutionalise it? This is a non-sequitur: we do not have to imitate the practices of advanced capitalist countries.

Social role of education

Besides, the social role of education is particularly important in a Third World country that is forging a nation, whose people are striving to shake off the legacy of centuries of domination. To be sure, in return for free higher education in public institutions, society has the right to make demands upon the recipients of such free education in various forms, from a minimum number of years of obligatory service in the country to the performance of academic duties gratis during the period of one’s studentship. Free higher education, in short, must not be allowed to become a means of private enrichment at public expense, through, for instance, migrating abroad.

The obvious question that would be asked is: where can one find the resources for making education absolutely free, when even the existing facilities for students cannot be maintained at the existing level of fees owing to a shortage of resources, which after all is the justification provided by the JNU authorities for the hike in hostel charges?

Shortage of resources, however, is a red herring. India has one of the lowest tax-gross domestic product ratios among all the countries of the world, including much poorer developing countries. Raising this ratio should not pose any serious problem for the economy, especially when we remember that India has virtually no wealth tax, while wealth concentration has increased immensely during the neoliberal years. What is needed for raising the tax-GDP ratio is a willingness on the part of the government to tax the rich. Successive governments, however, have gone on giving tax concessions to the rich in the name of inducing higher GDP growth in the country; higher GDP growth in turn is always justified in the name of improving the condition of the common people. But unless taxes on the rich are raised significantly, and there with the tax-GDP ratio, such an improvement in the condition of the people will remain elusive, and the country will be forever caught in an absurd spiral of appeasing the rich in the name of the poor.

Apart from this, there is a second point underlying the paucity of funds for higher education. That is, the way higher education is percieved: it is seen essentially as a means of individual enrichment. Within such a perception, the commoditisation of higher education appears not as a problem but as a solution, not as a phenomenon that would subvert the true education which society should have, but as a means of financing an education system for which the government feels less and less obliged to raise resources.

But unless both these tendencies are overcome, the tendency to appease the rich in the name of growth and the tendency to commoditise and privatise education and destroy the public character of the public higher educational institutions, by making them mimic the private ones, the India dreamed of by the anti-colonial struggle will remain forever elusive.

Tuesday, 9 February 2021

Main Differences Between Surface Area and Volume

 

  1. The Surface Area is a sum total of Area of the planes that form a surface/shape while Volume is the space enclosed within a figure/shape/surface.
  2. The Surface Area is a 2-Dimensional concept with units m², cm² or mm² whereas Volume is a 3-Dimensional concept with m³, cm³ or mm³ as units.
  3. Surface Area can be found for 2-D figures like Circle, Square, Rectangle but Volume cannot be found for them. While both can be found for 3-D solids/figures like Cube, Sphere, Cylinder, or Cone.
  4. Surface Area is found for estimating area of walls to be painted while Volume is found to estimate storage capacity within walls.
  5. The area is calculated by integrating the arc or the revolution of an arc (depending on the figure) while Volume is calculated by integrating the revolution of a surface. These methods are used while considering very complex functions and are a part of higher-level studies.

Monday, 8 February 2021

The Enhanced Network Simulator(Release Version 1.2)

(Developed at Department of Computer Science & Engineering, Indian Institute of Technology, Kanpur, India)


The Enhanced Network Simulator (TeNs), is an extension of the existing popular networking simulation tool - Network Simulator (See 
NS homepage for details, tutorials and downloads). TeNs is an attempt to address the deficiencies of ns in the modeling of IEEE 802.11 MAC layer protocol, which is highly simplified in the original ns . Apart from a more realistic implementation of this, it also incorporates additional features like multiple interfaces support for mobile nodes, a static routing protocol for wireless scenarios, and also features inclusion of simple directional antennas (see the section Enhancements and Modifications to NS for details). The utility can be seen in the simulation of long distance links, as illustrated in the sample scripts later in this page.


1 Installation

2 Change Log

3 Features in NS-2

4 Tutorial

5 Sample Scripts

6 Credits

 

1 Instructions for Installation

  • Download the NS-2 package ns-allinone-2.1b9a-gcc32 (compatible with gcc32), from here. You could alternatively use your own source. TENS has been installed with ns-2.1b9a, so preferably you should have this version
  • Download the changes made to TENS from here.
  • Follow the instructions contained in the README of the package (its the same as available in the original NS package from NS homepage). After "./install", execute the following steps:
    •  Untar the TENS changes in the .../ns-allinone-2.1b9a/ns-2.1b9a directory. Inside the TENS directory, execute the copy.sh script to copy the relevant files into the NS2 directory. If your TENS directory is not in the .../ns-allinone-2.1b9a/ns-2.1b9a directory, you will need to change $NS_DIR(in copy.sh) to point to the ..../ns-allinone-2.1b9a/ns-2.1b9a directory.
    • After running the copy.sh script, go to the ..../ns-allinone-2.1b9a/ns-2.1b9a directory and make the following changes to the Makefile:
      • First of all check the Makefile and replace any alien path existing in it, with what you think should be for your installation. This may not be required if " ./install " has properly created the Makefile or not.
        • change variable CPP in the Makefile to " CPP = g++ "
        •  change variable NSE in the Makefile to " NSE = nse "
        • make variable BUILD_NSE empty, i.e., " BUILD_NSE = "
        • Search for the line containing " mobile/antenna.o mobile/omni-antenna.o \ " and replace it by " mobile/antenna.o mobile/omni-antenna.o mobile/dir-antenna.o\ "
        • Search for the lines " aodv/aodv_logs.o aodv/aodv.o \ aodv/aodv_rtable.o aodv/aodv_rqueue.o \ " and add the lines " wlstatic/wlstatic_logs.o wlstatic/wlstatic.o \ wlstatic/wlstatic_rtable.o wlstatic/wlstatic_rqueue.o \ " before it.
        • Search for line "mac/phy.o mac/wired-phy.o mac/wireless-phy.o \" and add "mac/wp2p-ll.o mac/wp2p-mac.o mac/wp2p-phy.o \" after it.
        • Search for NS_TCL_LIB declaration and add "tcl/lib/ns-stdma-lib.tcl \ tcl/lib/ns-stdma-link.tcl \" to it.
           
  •  Now, do " make clean " and "make depend"
  • Then execute make and you are done. In the end export an additional environment variable - "NS_ANTENNA_FILE" with its value being the path where the antenna radiation file is being stored.

                    $export NS_ANTENNA_FILE=...../ns-allinone-2.1b9a/ns-2.1b9a/mobile/antenna.txt

2 ChangeLog

The Changes in TENS fro NS-2 and in subsequent versions in TENS1.1 and TENS 1.2 are given below. These may serve as a starting point for anyone wishing to learn about the code level changes made to NS-2 and further extend NS-2

ChangeLog for TENS1.0 - A file wise description of the changes made to NS-2 code

ChangeLog for TENS1.1 - A file wise decsription of bug fixes and feature additions to TENS1.0

ChangeLog for TENS1.2 - A file wise decsription of bug fixes and feature additions to TENS1.1

3 Features in TENS 1.2

  •  Multiple interface support added
  •  Static Routing implemented for wireless nodes
  •  Co Channel interference added
  •  Adaptive data rate support for 802.11
  •  BPSK Modulation Scheme Added
  •  Directional Antenna support added (More radiation pattern added in TENS1.2)
  •  Channel Number made configurable
  •  Addition of ARP entries through script
  •  2-p protocol for point to point link added
  •  Several MAC parameters like RTS Threshold, Capture threshold made configurable. See the tutorial for full details.

 

4 Tutorial
 

In this section we provide a quick tutorial on the new feature additions and their usage. Please note that this tutorial assumes that the reader is fairly acquainted with NS-2. Extensive NS-2 tutorials can be found at the following links:

Marc Greis's tutorial
NS for Beginners
NS Manual
 

4.1 Configuring Network Components

4.2 Main Program

4.3 Configuration Of Nodes

        4.3.1 Setting up Multiple interfaces

        4.3.2 Attaching a directional antenna

        4.3.3 Setting the Transmit Power

        4.3.4 Channel Number Setting

        4.3.5 Capture Threshold Setting

        4.3.6 Carrier Sense Threshold Setting

        4.3.7 Rx Threshold Setting

        4.3.8 Modulation Scheme Settings

        4.3.9 Frequency settings and Loss factor

4.4 Adding Static Routes

4.5  Setting up parameters for MAC

4.6 Adding ARP  entries

4.7 Using the 2P Iimplementation    

        4.7.1 Link Layer Configurations

        4.7.2 MAC Layer Configurations
    

 


4.1 Configuring Network Components

A mobilenode consists of network components like Link Layer (LL), Interface Queue (IfQ), MAC layer, the wireless channel nodes transmit and receive signals from etc. At the beginning of a wireless simulation, we need to define the type for each of these network components. Additionally, we need to define other parameters like the type of antenna, the radio-propagation model, the type of ad-hoc routing protocol used by mobilenodes etc. The following snippet of code will usually be there. Look at the comments for a decsription of the variable and changes from NS-2.

 

 

set val(chan) Channel/Channel_802_11                          ;# channel type, NS-2 used Channel/WirelessChannel
set val(prop) Propagation/Shadowing                             ;# radio-propagation model, TwoRayGround and FreeSpace also possible
set val(netif) Phy/WirelessPhy/Wireless_802_11_Phy     ;# network interface type, Wireless_802_11_Phy is a subclass in Phy/WirelessPhy
set val(mac) Mac/802_11                                              ;# MAC type, like in NS-2
set val(ifq) Queue/DropTail/PriQueue                             ;# interface queue type, same as NS-2
set val(ll) LL                                                                  ;# link layer type, same as NS-2
set val(ant) Antenna/DirAntenna                                     ;# antenna model, Directional antenna added, configuration methodology defined later
set val(ifqlen) 50                                                            ;# max packet in ifq
set val(nn) 4                                                                   ;# number of mobilenodes, same as NS-2
set val(rp) WLSTATIC                                                  ;# AODV also works, no other protocol works as of now
set val(ni) 1
set opt(mod) Modulation/BPSK                                     ;#Modulation type added, only BPSK supported till now

4.2 Main Program

The main programme can be started in the same manner as NS-2, when a new simulator is started, trace files are opened, creation of GOD object and creation of topology. All these remain unchanged in NS-2. So, the following code will  start the script. Also, higher layers implementation remain unchanged. So, one could attach a CBR, FTP or a TCP connection with a node.

4.3. Configuration of Nodes.

4.3.1 Setting up Multiple Interfaces

Nodes in TENS may be configured to have multiple interfaces. This may be done by the following line in your tcl script.

$ns  node-config  -numif   1

Subsequent parameter additions for different interfaces can be done by using the following format:

$node  set  netif_(<interface number>)  set  <parameter>  <value>

4.3.2 Attaching a directional antenna

Directional Antenna may be created and setup as follows:

set a [Antenna/DirAntenna]

$a setType 0 # types can vary upto 2 currently
$a setAngle 85 # Angle from horizon of antennas axis
$a setWidth 10 # width of the antenna
 

Width is needed only for type 0. For type 0, the antenna returns a gain of 1 multiplied by the solid angle, if the node falls inside the cone of coverage formed.
The following antenna types are also present:

Type 1 HG2424G            See data sheet over here.
Type 2 HG2414P            See data sheet over here.

Type 3 HG2418P            See data sheet over here

Type 4 HG2417P-090    See data sheet over here

Type 5 HG2417P-120    See data sheet over here
 

Only radiation pattern and gain values are relevant in the data sheet. If you add a new antenna radiation pattern, please mail in your antenna file to abagri@cse.iitk.ac.in along with a radiation pattern graph image or data sheet of the antenna.

An antenna can then be attached to a nodes interface in the following manner:
 

[$node_(0) set netif_(0)] dir-antenna $a


The directional antenna module takes its input from a antenna file which is expected to be in the NS_ANTENNA_FILE enviroment variable. the default exists in ...../ns-allinone-2.1b9a/ns-2.1b9a/mobile/antenna.txt. The format of this file is lines of antenna gains for differnet angles and antenna types. This can be replaced by ones own antennas file where each line has the following format
 

<type> <angle> <gain>


4.3.3 Setting the Transmit Power

The transmit power of an interface may be set by using the following:
 

[$node set netif_(<interface number>)] set Pt_ <transmit power in W>



4.3.4 Channel Number Setting

Channel Number for a node/interface may be set up by the following:
 

[$node set netif_(<interface number>)] set channel_number_ <channel number>


TENS implements co-channel interference and this should be noted while setting up channels for interfaces. The co channel interference is implemented as follows:

If a node is receiving and sending simultaeously on two different channels, difference of their frequency is calculated and normalized by dividing the difference by 5e+6. If the normalized value is greater than 5 then Tx power is reduced to 0, For 4, it is reduced to 20%, 40% for 3, 60% for 4, 80% for 4.

4.3.5 Capture Threshold Setting

Settings for Capture Threshold may be setup for a node/interface may be set up by the following:
 

[$node set netif_(<interface number>)] set CPThresh_ <value>



4.3.6 Carrier Sense Threshold Setting


Settings for Carrier Sense Threshold may be setup for a node/interface may be set up by the following:
 

[$node set netif_(<interface number>)] set CSThresh_ <value>


4.3.7 Rx Threshold Setting

Threshold settings for receiving a packet may be setup different from the capture packet threshold as follows. Unless, receiving power is less than this value, packet will not be sent up the layers
 

[$node set netif_(<interface number>)] set RXThresh_ <value>


4.3.8 Modulation Scheme Settings

Modulation Scheme of an interface may be changed as follows:
 

[$node set netif_(<interface number>)] set modulationscheme_<value>


The value may be 1 for BPSK and 0 for no modulation. No other modulation scheme is supported as of now.

4.3.9 Frequency settings and Loss factor

The frequency of operation and Loss factor may be setup as follows:
 

[$node set netif_(<interface number>)] set freq_ <value>     ; #frequency settings
[$node set netif_(<interface number>)] set L_ <value>         ; #Loss factor


4.4 Adding Static Routes


Static routes may be added by lines in the following format:
 

[$node set ragent_] addstaticroute <number of hops> <next hop> <destination node> <interface>


4.5 Setting up parameters for MAC


MAC Parameters for 802.11 may be setup using following lines of code:
 

Mac/802_11 set dataRate_ 11mb                 ;# Setting the data rate
Mac/802_11 set basicRate_ 1mb                 ;# Setting the basic data rate
Mac/802_11 set isAdaptive_ 1                     ;# Uses an adaptive rate scheme Mac/802_11 MAC_RTSThreshold 3000     ;# Setting the RTS threhold

Similarly, the following parameters may be configured for 802.11 by using the command:

Mac/802_11 <parameter name> <value>

Each of the parameters is self explanatory by its name:

MAC_ShortRetryLimit
MAC_LongRetryLimit
MAC_FragmentationThreshold
MAC_MaxTransmitMSDULifetime
MAC_MaxReceiveLifetime
DSSS_CWMin
DSSS_CWMax
DSSS_CCATime
DSSS_RxTxTurnaroundTime
DSSS_PreambleLength
DSSS_PLCPHeaderLength
DSSS_PLCPDataRate
DSSS_RxRFDelay
DSSS_RxPLPCDelay
DSSS_MACProcessingDelay

4.6 Adding ARP entries

One could add ARP entries as follows:

$ll add-arp-entry <node-address> <mac-address>

4.7 Using the 2p Implementation

For 2p implementation while configuring netwrok components, set Link Layer to 2P link Layer and MAC to 2p Link Layer

set val(mac)           Mac/WP2P_MAC ;
set val(ll)                LL/WP2P_LL ;

After making link layer and mac layer configuration with each node, one may attach either a tcp or ftp agent and send packets

4.7.1 Link Layer Configurations

The following settings may be made for a point to point link:

$ll set-my-node-id <id>                   ;set the node's id
$ll set-nbr-node-id <id>                   ;set the neighbouring node's id
$ll set-my-mac-id <id>                     ;set the node's mac address
$ll set-nbr-mac-id <id>                    ;set the neighbouring node's mac address
$ll set-dummy-packet-size <size>     ;set the size of the dummy packet
$ll set-mac $mac                              ;set the mac as Mac/WP2P_MAC
$ll set-limit <value>                           ;set the link layer buffer limit value


4.7.2 MAC Layer configurations
 

$mac link-up                       ; activate the link/interface
$mac link-down                   ; deactivate the link/interface
$mac set-ifa-nbr <value>     ; set MAC of the neighbouring links of this node
$mac set-ll $ll                       ; set link layer as LL/WP2P_LL, different configurations at different node is possible
$mac set-delay <value>        ; set delay value

5 Sample Scripts

two-node.tcl:     A sample script for two nodes interacting over a type 1 antenna. A good starting point to understand TENS

sample.tcl:   A four node network with multiple interfaces and static routing.

topo.tcl :         A more dense topology simulation.

2-p.tcl:               A script using the 2-p protocol

 

sample_long.tcl This script shows how directional antennas can be used for simulating long distance links. It is same as four node network except that the last hop is 6 Kms

6 Credits

TENS was output of the thesis of Siddharth Saha in.. during his maters at Indian institute of Technology, Kanpur. It was then extended by Sabyasachi Roy and Ashwinias a part of their Bachelor's project at IIT Kanpur. Dr Bhaskaran Raman of Computer science and Engineering Department and Dr Kameswari Chebrolu of electrical Engineering Department have been involved in upgrade of TENS since 1.0 with a lot of bug fixes and feature addition, the most significant being the 2-p implementation.