Introducing Engineering Design in First Year of a BTech Program

1 Comment

The traditional model of engineering education for decades has been that in the first year physics, chemistry, and maths are taught as foundation courses. Then courses on different foundational areas of the discipline and engineering are taught. Only after that a student can try to practice engineering. The overall model has been to teach the foundations in the initial years, and only in final year the students may do full engineering projects in which they may build some systems. (Actually, in most cases, unfortunately even in final years decent engineering projects are not done.)

This model has been under challenge for some time, particularly in the west, as it does not allow students to experience the excitement of engineering, which comes from building useful systems that work, till very late. To address this, many institutions across the world have introduced project-based courses early to provide students some experience of building systems.

In IIIT-Delhi, very early we introduced two courses in the first year whose focus is on “hands on experience”. In the first semester, students do a course called “System Management” in which they work with laptops and mobile phones and their components, and learn what they can do with these machines, how they can manage them well, explore internals by opening them and seeing inside, etc.

In the second semester (by when they have learned programming as well as electronics in their first semester) we introduced an Intro to Engineering Design (IED) course, whose basic goal was to design a working physical system that included hardware and software (so software only projects are not permitted) to solve some problem. In IED the focus is on project – the lectures are to support the projects. So, the lectures provide an overview of the basic components that are widely used in such projects – a cheap but versatile platform like RasPI or Arduino, common sensors for vision, motion, proximity, etc, and some actuators like stepper motors, etc. They also learn a bit about workshop and tools.

Students form teams and start thinking about the project from the start of the semester. Each project team is given a budget to buy the components for their project – this exposes them to the process of buying components and markets, as well as about the basic engineering principle of cost control and delivering the project within budget. The completed projects are then demoed to all in an open house one day at the end of the semester.

This year also I visited the demos and interacted with at least 25 project groups. The course instructor was Alexander Fell, who is himself a fine system builder. I was amazed and highly impressed at the sophistication of the projects students had executed. Many of them were better than the final year projects in many engineering colleges and some of them, with extension and further development, could even be the final year project in IIIT-Delhi or an IIT.

To give a sense of the variety and complexity of projects undertaken, I am giving below a brief description of a few projects (I will keep adding to this list). It is worth remembering that these projects were executed by 2nd semester students (i.e. they have been out of class XII only for a few months), who were doing 4 other courses (at least two of them have their own programming/ lab assignments.)

These type of courses emphasize the fact that engineering is about solving problems of people by building systems and solutions using science, mathematics, and theories. Engineering is clearly not about theoretical understanding only in which problems are only solved on paper and tested in exams, or simple labs with defined experiments that are being repeated by students year after year.

Unfortunately, this is what engineering education in the country has degenerated to – most engineering institutions teach concepts (and that too not too well) with almost no exposure to actual engineering – mostly because the faculty does not have the necessary skills to guide such projects. As a result, we find engineering graduates who don’t have any real engineering or problem solving skills and are therefore not employable. And so a large number of these graduates proceed to do MBA where engineering skills are not important, and only conceptual understanding is needed to solve the problems in entrance tests.

This lacuna in engineering education is also contributing to the immature innovation-led ecosystem in our country to generate businesses offering new products and solutions. It has also led to an underdeveloped engineering industry. Thankfully, one is now seeing some examples of innovation resulting from deep understanding of the problem and technology and delivering solutions that can work to solve problems and scale – these are often led by teams that excel in engineering capabilities. Thankfully also, some leading engineering institutions including some IITs (e.g. IIT Delhi) are introducing project based courses early in their curriculum. These bode well for the future for engineering in the country.

 

Brief Description of Some of the Projects 

  • GardenBot. This bot is essentially a mobile cart with water, mechanical arm, camera, ultrasonic sensor, etc. It moves freely (choses the direction randomly), detects an object and if the object is a plant (done using image recognition library), checks the moisture of the pot, and adds water to the pot plant if the moisture content of the soil is low. It is integrated with the internet to check whether it has rained in the past few days to make a smarter decision for watering. As it moves autonomously, it can water all the pots in a garden – essentially doing the job of a smart gardner.
    • Components. Moisture Sensor, Ultrasonic Sensor, Webcam, five DC motors (four for wheels and one for water pump), One servo motor (for arm), H-Bridge for controlling DC motor
    • Platform and Code. Raspberry Pi, with about 500 LOC of Python.
    • Team. Akshat Singh, Apoorv Khattar, Harshit Chaudhary, Raghav Sood

 

  • SmartMirror. It’s a smart assistant (like siri) which you can put on your wall and it looks like a mirror. It’s powered by a Raspberry PI, and has a monitor with a one-way mirror sheet on it so it looks like a mirror on which things can be superimposed / projected also. User interacts with voice commands to get news, maps, etc., which the mirror intelligently displays by getting the information from internet using API calls.
    • Components: Mic, Camera (presence detection), a flat monitor (with one way mirror sheet posted on it), Speakers; a case was made to hold all components and make the monitor look like a mirror.
    • Platform, Code. Raspberry PI 3B, About 4000 Lines of Python and JavaScript.
    • Team: Peeyush Kushwaha, Madhur Tandon, Mudit Garg, Siddhant Singh

 

  • Faux Arm. A robotic arm that wirelessly mimics the arm movement of the operator. The Faux Arm is a robotic arm with three points of movement, simulating the operator’s elbow joint, wrist joint and two fingers for grabbing and picking things up. We also built the Sensor Sleeve, a sleeve with sensors that can be worn by the operator on his/her arm, serving as a wireless input to the robotic arm.
    • Sensors: ADXL335 x2, accelerometer (to sense the angle of the arm wrt ground);
    • Actuators: MG996R Servo; MG995 Servo; FS90 Servo
    • Microcontroller and code: Arduino Uno (two) with XBee Module (two); Appx  800 Lines of C.
    • Mechanical components used:  Self-designed 3D printed structure of robotic arm; Self-designed aluminum grabber; Elastic, Velcro and a glove for sensor sleeve.
    • Names of the team members: Shivin Dass; Anvit Mangal; Taejas Gupta; Aditya Singh.

 

  • Robotic humanoid hand. In our project we had constructed a robotic humanoid hand. The 3D model of hand was open source and easily available on Inmoov. Our project used 3 types of control functions i.e. glove control using flex sensors for remote control of the robot, voice commands using the voice sensors, and direct muscle controls using the myoware muscle sensors. This hand can be used by amputees and physically challenged (using muscle sensor or voice control), for exploring inhospitable areas (by glove or voice control), etc.
    • Sensors: Myoware muscle sensor V3; Electrohouse Voice recognition sensor; Flex sensors (4×5” and 1×2.5”)
    • Actuators: 5 x mg995 towerpro servo motor.
    • Mechanical Components: 3D – printed human hand and its assembly (we printed it).
    • Platform and Code: Arduino; About 300 lines of C code; open source libraries for Voice recognition module.
    • Team: Shreedhar Govil, Siddharth Dhawan, Tanish Gupta, Vishal Singh Rajput

 

  • ShadowBot. Despite the technology today, large parts of the world remain inaccessible due to the inability of the humans to survive in harsh conditions. This can be changed by using robots. However, AI is not yet developed enough to allow robots to react accurately in delicate situations. Our project aims to improve the ability of a human to control a robot, by allowing it to mimic the user’s actions! Project Demo on YouTube.
    • Sensors: Microsoft Kinect v1.8
    • Actuators: S3003 Futaba Servos (ten for different joints and degrees of freedom);
    • Mechanical Components: Oblique servo brackets; Long U-shaped servo brackets; Short U-shaped servo brackets; L clamps; Nuts and bolts
    • Power Source: Turnigy 2200mAh Lipo Pack
    • Microcontroller: Arduino Mega with HC-05 Bluetooth Module; About 400 Lines of C# code for Kinect, and 150 Lines of C for Arduino.
    • Team: Aditya Chetan, Anant Sharma, Shwetank Shrey, Siddharth Yadav (mentored by PhD student Manoj Gulati)

 

  • Ambhibian BOT:   It is a remotely controlled (through the Ardiuno RC controller, configured for Bluetooth) amphibian robot which has the capability to travel through varied tough terrains, including water bodies (antenna and camera remain outside the water), to provide video feed. It comes with an emergency propeller which can be used in case the directional motors fail. Entire functionality is controlled via Bluetooth connectivity, and a live video feed is given by the camera attached at level height of the robot to the phone.
    • Sensors: Night vision camera, HC05 – Bluetooth chip for Arduino.
      Actuators: Geared DC motors (300 rpm, Quantity-5 (4-wheels + 1-propeller)), Lithium ion batteries (Quantity-2, each battery-3V), L298N motor driver (Quantity-2).
    • Platform and Code: Arduino mega, 50 lines of C code.
    • Mechanical components: 7.5 cm diameter multi-terrain tyres, light weight plastic box, M-seal and hot-glue (insulation purposes)
    • Team: Ashutosh Sharma, Arshan Zaman, Yash Tomar, Vineet Kumar Rana.

 

  • DrawBot. An automated arm that drew pictures given to it with a pen on a paper. The input was an image file. From the grey scale image of the file, we extracted edges and lines (using Sobel edge detection algorithm) in the picture, and then drew these lines using the DrawBot arm. For drawing, movement was controlled by two stepper motors. The Drawbot worked by making use of the nearest salesman algorithm that moved the arm in the direction of nearest pixel, by drawing small segments of lines using the slope and coordinates.
    • Components: Stepper Motor, Voltage Level Shifter, Gear Belts, Channels (to make arms), H-Bridge
    • Platform and Code: Ras Pi 3B, about 200 lines of Python
    • Team: Simran Deol, Navneet Anand Shah, Aditya Tanwar, Naman Kumar

 

  • iDabba. Our​ ​ project,​ ​ named​ ​ “iDabba”​ ​ is​ ​ a​ ​ smart​ ​ container​ ​ which​ ​ identifies​ ​ what​ fruit / vegetable / item​ ​ is kept​ ​ in​ ​ it​ ​ (using computer vision techniques; the​ ​ item​ ​ has​ ​ to​ ​ be​ ​ one​ ​ of​ ​ those​ ​ trained​ ​earlier), ​the​ ​ temperature and humidity​ ​ of​ ​ the​ ​ box,​ ​ and​ ​ the​ ​ weight of the items. All​ ​ this​ ​ information​ ​ is​ ​ visible​ ​ to​ ​ the​ ​ user​ ​ via​ ​ a web​ ​ app. ​ We​ ​ were​ ​ motivated​ ​ to​ ​ design this​ ​ ​ ​ to​ ​ ​ ​ solve​ ​ every day​ ​ hassles​ ​ in​ ​ kitchens​ ​ and​ ​ households​ ​ regarding​ ​ spoilage​ ​ and infestation.​ ​ It​ ​ can​ ​ ​ ​ be​ ​ scaled​ ​to​ ​ meet​ the​ needs​ ​ of​ ​ farmers​ ​ and​ ​ storage companies​ ​ for​ ​ smart​ ​ storing​ ​ options​ ​ and​ ​ act​ ​ as​ ​ a​ ​ small-scale​ ​ sil,. It can be enhanced to add the age of the items kept – then more intelligent decisions can be taken.
    • Sensors​ : Humidity​ ​ Sensor (DHT11​), Temperature​ ​ Sensor DS18B20, ​ Load​ ​ Cell to measure weight, HX711​ ​ ADC​ ​ Module ​ ​ to convert; ​ ​ Wifi​ ​ Module ESP8266​;
    • Platform and code: Arduino​ ​ Duemilanove, Raspberry​ ​ Pi​ ​ 3 (for computer vision); 180 lines of C code for Arduino; Appx 250 Lines of Python​ ​with​ ​ Open CV​, Microsoft​ ​ Vision​ ​ API ​ and​ ​ Flask​ ​ for​ ​ backend​. Front End​ ​ using​ ​ HTML/Javascrip ​ -​ ​ approx​ ​ 150​ ​ lines
    • Team. Viresh​ ​ Gupta​, Brihi​ ​ Joshi, Zoha​ ​ Hamid, Shravika​ ​ Mittal​.

 

  • SmartCart: We made an automated cart which follows the user based on a tag which the user wears. When placing the product in the cart, the product’s barcode is scanned and the bill prepared automatically in the app on the mobile phone. By using such a cart, a store owners can reduce their manpower for checkout, and also reduce the waiting times for customers.
    • Components: Ultrasonic Transmitters and Receivers (made the circuit for using these), 2x 12V DC Motors, 2100mAh Lipo Battery, Wheels.
    • Platform and Code: Arduino, Android phone. About 90 lines of C code, and about 640 lines of Java code (for the App), about 200 LOC of PHP on the server (mimicking the inventory of the store).
    • Team: Aakash Sehrawat, Anmol Prasad, Nilay Sanghvi, Saksham Vohra

 

  • Plant Watering System. This project provides water (which may contain other essential nutrients) to multiple plants based on their respective moisture sensor readings. The frequency to check the moisture reading depends on the temperature and humidity readings given by the temperature sensor. A GSM module timely informs the owner through SMS about the water level of the tank, and when the plants are watered. (A few teams did project of this type).
    • Sensors. YL 69 Soil Moisture Sensor; DHT11 Temperature and humidity Sensor
    • Actuators . Micro (3-6V) Submersible Pumps
    • Mechanical Components.  Piping system to water the plants.
    • Platform and code. Arduino, Appx 200 Lines of C code
    • Team1: Raghav Bhatia, Jai Mahajan, Kanha Srivastav, Shashank Kataria
    • Team2: Ashish Kanojia Dilnawaz Ashraf Dushyant Jangra Rishin Lal
Advertisements

Summer Camp for School Children at IIIT-Delhi

2 Comments

In summer 2016, IIIT-Delhi organised a 5 week summer camp for school students. I attended the valedictory session, and asked the students “what have you learned in this summer camp that you will take back to your lives after the summer camp”.  Here are some replies (almost verbatim):

  • We used to be afraid of going on stage, but now we are confident to go on stage and perform
  • We learned the right ways to work in groups –  we should first listen and understand everyone’s approach , know the thoughts of fellow group members and then we should think how to work with them, we should not impose our thought on them right away
  • Discipline and punctuality: we should always respect time and be disciplined
  • A student should not hurry in learning something, we should be focused towards getting something but should not be in hurry to get that
  • We should have patience and work hard towards our goals – sometimes we make mistakes only because we are in hurry
  • We should not be afraid to participate in competitions
  • We should not be afraid to make mistakes, we should learn from our mistakes
  • We shouldn’t hesitate in asking questions in the class room
  • We should be focused towards our goals; people will try to distract us, but we should remain selfish towards our goal.
  • We should not be disheartened by our failures or mistake, we should take pride in that and get motivated by them
  • We should not demotivate others.

You may be forgiven to think that the participants of the summer camp are very senior students or scholars and were taught by erudite faculty – these are indeed words of wisdom that are expected from people with experience. But these are statements from 12-14 years old students of class 8-9 from a few of the neighboring government schools! And the summer camp was taught by IIIT-Delhi’s student volunteers – most of them in first year of their BTech program.

When I asked the question, I thought it was a hard question for kids of this age. And I asked them to think for a few minutes before answering – half expecting that they will answer by mentioning some knowledge or skill they had acquired in the summer camp. But I was completely floored, and touched, by what these students, mostly from disadvantaged families, had to say – these are lessons that we, in privileged institutions, can learn from these students.

In particular, the lesson on discipline and punctuality, which they not only articulated but also followed in their behaviour – most students would come to the class before time – a fact our volunteers pointed out in amazement and surprise. This is clearly something students of priveleaged institutions (mostly from well off families) can learn – while these students came eager to learn as they had got access to something nice, in colleges and universities, even in the top institutions, we face the problem of students not attending or coming late in class, and not following the basic discpline of putting effort for their learning. I guess many of the college going students, as they perhapes got most things in life easily – provided by their families, feel that even knowledge and skills will come easily without discipline and effort. Alas, knowledge and skills (and things like health) are capabilities which even the richest person in the world can get only by his/her own effort – resources/money can at best smoothen or facilitate the process.

Now some background. This summer camp was the outcome of a program that we had launched in IIIT-Delhi for helping students in government schools in our neighborhood using student volunteers from our Institute. The program itself was inspired by the efforts of the Delhi Government for improving education in government schools – many academicians and thinkers believe that for improving education and student development in the country, improving the quality of education in government schools is essential. And we felt that an Institute like IIIT-Delhi can try to contribute in small ways to this.

In the program, teams of students visited a few schools on Saturdays for a few hours during which they engaged with students of different ages. The interaction was around problem solving, general knowledge, maths, communication, fun activities, etc. – by design it was not regular subject teaching.

Based on experience of our student volunteers, and their enthusiasm, we decided to organize this summer camp. Students from about 10 schools were invited for this 5 week program (about 4 hours every day). A set of student volunteers from IIIT-Delhi was identified to work with the students. It was agreed that the summer school should be fun and around building their confidence and some skills. We finally decided that the summer school will discuss concepts from maths and science, personality development and communication skills, computer skills, and general knowledge in the program, besides playing games. A training program was organized for the student volunteers of the program. It is completely to the credit of our student volunteers and the student leaders of the program that they ensured that the programs are interactive and fun.

Many of our student volunteers (appx 20 from first year) also used it to complete their Community Work (CW) requirement of graduation. CW requires each student to spend about 75 hours doing community work – it is a requirement for graduation. Mostly students work with various NGOs during summer for CW – many of them teach in some programs run by various organizations. This summer, our summer camp became another option for CW – and many students took it with gusto, led by some senior students who were driven by pure passion.

Seeing what I saw – a set of happy and excited kids who are not afraid to stand up and talk or give a small speech in the lecture hall of IIIT-Delhi – I am convinced that this is a remarkable program we have initiated. While it started as a program for “giving back” to society, it is clear that our students and us also gained a lot from this – I personally feel very satisfied with this contribution of our Institute and its students. And if some of these students, using the confidence they have gained and aspirations that got kindled, finally end up in institutes like IITs or IIIT-Delhi – it will be the clinching proof of how students of Institution like ours can contribute, without compromising their own goals while also deriving a deep sense of satisfaction in seeing what their efforts can do.

Let me end by acknowledging with respect the dedication of the students from IIIT-Delhi  who coordinated and ran this program with commitment, and ownership.  I am sure that with this success, and happiness that accrues, we will have no difficulty in getting support from our students for continuing this program in coming years. I also hope that this program becomes a model which students in other Institutions/Colleges across the country can use to organize summer camp in many more institutions and colleges of higher education across the state/country.

Some photos from the summer camp can be found in this post. An article on this in the newspaper Hindustan can be found here. A story on this is on our site.

Current Approaches to Teaching Cannot Deliver High Quality Education

7 Comments

Let me start this note with a simple assertion: education is about learning by students, where learning includes not only knowledge and understanding of a variety of concepts and phenomenon, but also development of higher order skills and capabilities for applying knowledge for problem solving. (For those who want to go deeper, learning can be classified using Bloom’s taxonomy, revised version of which has these levels: Remember, Understand, Apply, Analyze, Evaluate, Create; In my statement, I have combined the lower two levels in “knowledge and understanding” and higher order four levels – apply, analyze, evaluate, and create into “skills and capabilities”).

Let me also upfront state my opinion, which I am sure will not go down well with many: our approach to education, even in many of the top places, is mostly geared towards developing knowledge and understanding with little emphasis on developing skills and capabilities. Hence the title of this article.

Our current approach to education in almost all institutions take a teaching oriented view – for a course the “syllabus” is defined as a list of topics to be covered, and during the semester, instructors give lectures to cover the topics, in which the instructor will explain the topic/concepts and may do some examples. Good institutions will ensure that the topics are covered, the not so good ones may not even ensure this. In the better Institutes, there may be labs and assignments, though often the final grades depend largely on exams. This teaching oriented approach to education can at most deliver mediocre education – high quality education is not possible. There are a few reasons why it is so.

First, when a list –of-topics is the course design, then entire thought processes is about “covering the material”, and in the class, at best, the instructor will explain the topic/concepts and may do some examples. It is now well established that students mind is not like a vessel in which information or concepts can be poured through lecturing – learning is a constructive activity and a student learns only by what a student herself does and thinks. In an education style where lecturing is the primary method of teaching, followed by some exams to test the understanding, the focus will mostly be on knowledge and understanding. This approach does not render itself to development of skills and capabilities, for which far more practice (assignments, labs, projects,…) by students under careful supervision and feedback is needed. As exams, by their very nature, can test mostly concepts and understanding (at worst they may just test for factual knowledge), this cycle of lecturing and exams can lead to learning at the lower levels of Bloom’s hierarchy, but does not help develop the higher levels skills and capabilities that are the hallmark of high quality education.

To move towards higher quality education which develops not only deep understanding of acquired knowledge but also development of skills/capabilities of applying the knowledge, it is necessary to move towards learner centric education, as is being done in most developed countries, and as is mandated by the Washington Accord.
The learner centric approach has three key aspects. First, for a course learning outcomes have to be defined, not in terms of list of topics, but in terms of knowledge and skills that the student should have at the completion of the course. Second, the course syllabus and design has to such that it can deliver the learning objective – the lectures on topics have to be supported by suitable exercises and projects with proper and critical feedback to allow practice which can help develop skills, as they cannot be developed in a lecture theatre. Finally, the grade given to a student must be based on an assessment of how well the student has fulfilled the learning outcomes. So, if a learning outcome says that at the end of the course the student will have “the ability to solve problems using x,y, z”, then this must be assessed directly.

Of course, designing the course in this manner in itself does not lead to better learning. This course design has to be delivered by competent faculty – a challenge for many universities and colleges who simply don’t have competent faculty. Those institutions who have good faculty, however, can transform their education from teaching oriented approach to learner centric approach, which can lead to huge improvement in quality of education. It may be added, that this type of approach is what accreditation looks for.

At IIIT-Delhi, we follow a learner centric approach – for each course there are “post conditions” which state what the students knows and can do at the end of the course. The course design includes the assignments/projects that are to be given to deliver the post conditions particularly about skill development, and in final grades, weight is assigned to performance in assignments and projects.

In the end, let me add that this “list of topics” approach has worked reasonably well in the past in some of the top institutions. This was so as these top institutes were very small with low student to faculty ratio and had a very good faculty – this allowed faculty to develop some skills and capabilities through personal mentoring and oversight. This approach cannot work now as the skills and capabilities needed are far more complex and often change, and the scale of education is significantly larger now. These require a systematic approach as the earlier mentorship based approach cannot scale up.

Effective Study Habits

7 Comments

Most students want to do well in their studies – they want to learn, get good grades/marks, and do well in opportunities that good education can provide. In College life, besides studies, self growth is also an important goal for students. Therefore they need to effectively balance the two goals, which often conflict. In this pursuit, effective study habits can be very useful. They can help to learn effectively and efficiently, thus leaving sufficient time for other activities in life without compromising your academics. However, we have realized that many students are not clear on how to study effectively.

There is literature on this subject available – indeed there is a full book on it (multiple copies of which are in IIIT-D library). However, students often think these are too idealized or impractical, or that they do not apply to their environment or situation.

To better understand what works well in an environment like that of IIIT-Delhi, one of our graduating students (Digvijay Singh) interacted with a set of students from his batch who were known to have good understanding of various subjects, who we will refer to as effective students (this set of students we determined not by grades but by their performance in interviews and exams conducted by best companies that visited us and general input from faculty and students about their understanding, knowledge, skills.) We further validated the outcome of this study by interacting with a set of students of the current batch who have been doing well. It should be noted that not all of them are in the high CGPA category – many of them are below 8.0. It should be pointed out that this is not a statistically and scientifically rigorous study. Also, the habits mentioned here are the common ones, which most effective students we talked to followed. It does not mean that these are the only methods. However, I believe if these practices are sound and if students follow these, they can expect to be effective in their learning.

The three main effective study practices that emerged are:

  • Lectures. Attending lectures regularly and taking notes in them, even if the lectures are not very exciting/engaging, is a practice most effective students followed. This makes sense –students who do not follow this in the hope that they will “make up” for the lectures they miss, generally do not end up “making up”, and soon find themselves lost with too much to catch up. And missing lectures can easily become a habit, which is clearly to be avoided. The two aspect of this practice are (i) attend the lectures, (ii) make notes in the lectures – not copy what the faculty is writing, but making notes in your own language. The second point is important – copying from the board/slide is a passive act which does not help in learning, but making notes in your own words is an active learning task, which engages the student and helps in learning. Paying attention in lectures actually helps save time – a student is likely to take much more time to understand and learn the topic by him/herself, if he/she does not attend the lecture, or is inattentive.
  • Assignments. Do the assignments yourself – most effective students did most of the assignments themselves, even if it took them more time or even if they were not able to complete in time. While lectures introduce the topics and concepts, the real learning and skill building of a student happens during assignments – this is where the students practices and tries to apply the concept/method. So, without doing assignments yourself, there can be really no learning. It should be noticed that taking help (not copying) from friends in assignments is fine, particularly when one is stuck. Indeed taking and giving help in form of discussions, explanations, guiding is a good way of learning.
  •  Weekly revision/sync-up. All effective students have some method of ensuring that they have revised the material covered in the previous week or so, and that they prepared for the next week’s lectures and work. This practice I am calling weekly sync-up (even though students might be practicing this over somewhat longer periods.) Some revise regularly, some do revision with the assignment, some during the weekends, etc., but one common theme is that they sync-up regularly and ensure that they are not behind or lost, as they realize that if they continue while being lost, they will not recover. (One student said that if he could not follow two lectures well, it was a big warning sign and he would put extra work to catch up.) This practice ensures that even if they missed a lecture/assignment, they make up for it and do not fall behind. Without this practice, there is a real risk that a student can fall behind so much that it will be very hard to catch up,…. In a semester of 4 months with a student doing 5 courses, one simply can’t really afford to fall behind too much!

This can be viewed as the LAW for effective studying. Follow the LAW, with suitable enhancements/ modifications to suit your style, and the chances are that you will become an effective learner, and derive the benefits that come from that.

There are some other practices which some effective students also used:

  • Prioritising work. When there are many tasks from multiple courses, as well as from other activities, there will clashing deadlines. Prioritising will clearly be important in such a situation to achieve the most in the limited time. As one student said: “In such a scenario, life becomes a lot easier when you manually set down targets to be achieved by what deadline (which maybe before/ same day as your submission deadlines). Use sticky notes as gentle reminders to yourself so you can use your time wisely when brunt of work is more.”
  • Group study (though many prefer individual study)
  • Group and individual projects. As said by one student: “While it is good to do projects in team to learn teamwork and leadership qualities, I used to push myself and sometimes go forth with individual projects. Undoubtedly, it takes more effort and time, but it boosted my confidence in my own abilities to handle projects single-handedly and made me more self-reliant and self-sufficient.”
  • Help other students – explain to them as explaining helps them understand better (my note: by discussing/clarifying you are helping your friend, but by providing your assignment to your friends for copying you are actually hurting them as you are discouraging them to learn, besides taking them the slippery slope of using unfair means.)
  • Take help from friends for understanding – most students indicated that face-to-face discussion with friends was the first and most common approach they used for clarifying doubts/material. If this did not work then they will go to discussion forums, instructor,…
  • Academics gets the first priority – this is more a value statement but was commonly echoed by most of the students. While they all engaged in other activities (most of them are quite active in clubs, events, etc., they are clear that academics get the highest priority

Besides these practices, there is one attitude/trait I would like to highlight, which I have seen in many students who have done well in whatever they do after college education – and that is curiosity and initiative to go beyond the courses. Many effective students engage in some technical activities that they do which are not needed for their courses – i.e. they take the initiative to go beyond the courses. Examples of these initiatives can be: participating in competitive programming, participating in technical clubs, learning on your own about topics that interest you, listening to some technical lectures on YouTube/Coursera/EdX, trying out some concepts, learning some programming language on your own, teaching students who are facing challenges in their courses (teaching, it is well known and established, is the most effective way to learn – teaching to someone else truly clarifies the topic in one’s own mind) etc. I believe that those students who are ambitious and want to reach higher in life, developing this trait/style is absolutely essential.

I hope the students will devise their own methods for being effective students using the LAW, and going beyond. I hope this little study will be helpful to them in devising their own strategies.

Report on PhD Production in Computer Science highlights the Opportunity for PhDs

Leave a comment

On behalf of ACM India, I conducted the first survey on PhD production in Computer Science in India. The report has been published and can be found, along with the background, here.

As the report clearly shows, while the number is not as low as one thought, it is still about 125. And if you consider PhDs from only the top 20 institutions in the country, the number is in two digits. And the projections are that this number will only double in about 5 years.

This study actually highlights the tremendous opportunity for those who are doing PhD in CS in India. Academics is growing rapidly with so many new IITs, IIITs, and other Institutes coming up. Even if you consider each such Institute will need about 5 faculty members each year, 50 upcoming Institutes can easily consume 250 PhDs. Then there are at least 20 research labs in many software companies, including the large software companies which seem keen to expand their R&D capabilities rapidly, and various other companies that can consume PhDs. Overall, the private sector can also consume about 250 PhDs per year. There are other opportunities in Govt sector also. In a nutshell, the supply is significantly lesser than the demand. And this gap is likely to increase as demand is set to increase.

Due to this mismatch in demand and supply, and the growth of academics, the compensation for fresh PhDs is now very good. Companies will often pay a package starting from Rs 15 Lac to Rs 25 Lac or more for a fresh PhD. Academic packages are also quite good after the sixth pay commission – an Asst Prof can have a yearly compensation of Rs 8 to Rs 12 Lac. Compare this with the starting package for software jobs – except for a few multinationals, the starting package tends to be around Rs 3.5 Lac for the large and medium sized software houses (which is where 90% of the software jobs are), and Rs 4 to 6 for the niche players. Even if one counts for the 4 to 5 years that one has to spend in getting a PhD, compensation wise, a student who does a PhD will clearly come out ahead.

And then there are the really strong benefits of doing a PhD – the main reasons why people preferred this route even when the compensation was not good. And that is, the freedom to explore and chose your own work agenda, the non-repetitive and challenging nature of work, the culture of R&D, lack of hierarchy, being a member of the global community of researchers, etc.

Overall, while the PhD production report does not have too much good news for those who want to recruit PhDs, it is good news for those who are considering doing PhD.

Impact of Grading Schemes on Students’ Grades

2 Comments

In this post, rather than a personal view or opinion, I am sharing the findings of a small study we did on impact of grading schemes. Grading schemes in universities vary with many systems in existence. To study the impact of grading schemes on student’s performance in terms of SGPA/CGPA, we have performed a small study to study two common grading schemes. Scheme 1 which uses letter grades A, B, C, D, and F with corresponding points as 10, 8, 6, 4, and 2. And scheme 2 which uses grades A, A-, B, B-, C, C-, D, and F, with corresponding points as 10, 9,…, 4, 2. 

Experimental Setup

To analyze the impact of the two grading schemes, we have used the data of students’ marks from three core courses: Computer organization, Data structures, and algorithms and Probability and Statistics, each with enrolment in of about 140. The data of the students from these three courses was first divided into two groups of equal sizes Group 1 with even numbered students and Group 2 contained odd numbered – i.e. both groups had about 70 students in each class with similar performance.

First, Group 1 was given to the six professors from three institutions, and they were requested to grade the students using the Grading scheme 1. They were given the entire spreadsheet of performance over the semester, but without the student names. After 2 weeks, Group 2 was given to the same professors for grading using scheme 2. The purpose of the two week gap is to make two grading exercises independent of each other.  At the end of this experiment, we had the grades provided by six professors using the two different grading schemes for sets of students whose performance was effectively similar. And we had this data for three different courses.

Analysis and Key Observations

  • Average grade point of students (after taking the average grade point of six professors) is approximately the same at around 6.5 (average of scheme 2 was higher by about 0.1, but given the small sample size it was not taken as statistically significant.) This is an useful  insight – it shows that professors do not simply take students falling in A category in Scheme 1 and divide them into A and A- (and similarly for B and C), as that would have resulted in significant reduction in average grade in Scheme 2. But, as is intended, by having finer grades in scheme 2, Professors put some A students (of Scheme 1) in A-, but also put some B students (of scheme 1) in A-. (It is worth pointing that some professors consistently gave higher average grade in one scheme, while others gave higher grade in the other scheme.)
  • Average grade point (after taking the average grade point of six professors) of top students is higher with grading scheme 1 across courses. This is to be expected as in Scheme 2, some students from A grade in Scheme 1 will get moved to A-. However, one Professor gave more As with grading scheme 2 in one course. (To study this, we determined the average grade of top K students, varying K from 1 to 15, i.e. up to about top 20% students.)
  • Average grade point (after taking the average grade point of six professors) of bottom students is higher with grading scheme 2 across courses.  In other words, bottom students would prefer grading scheme 2. This is also as expected – with finer grades; fewer students should end up in D and F.  Here also,  two Professors gave a larger no of Fs with grading scheme 2 for one course each, (For this also, we studied the grade of bottom K students, varying K from 1 to 15).
  • The average number of Fs reduces with grading scheme 2 to about half of those in Scheme 1. Even at individual professor level, number of Fs reduce –  4 out of 6 professors have given more or equal Fs with grading scheme 1 than grading scheme 2 across all the courses; in some courses, the same professor has substantially lower threshold for given F in Scheme 2 than in F.  One can argue that as there is no D- grade, there should be no impact on number of Fs. But data seems to suggest that overall, having a finer grades seems to reduce the need for failing students.
  • The data provided us an opportunity to analyze the consistence in the grading behaviour of professors. For this purpose, we postulated five consistency hypotheses:
    • H1: Equal or more As in grading scheme 1 than in grading scheme 2
    • H2: Equal or higher cut-off for grade B in grading scheme 1 than in grading scheme 2
    • H3: Equal or higher cut-off for grade C in grading scheme 1 than in grading scheme 2
    • H4: Equal or higher cut-off for grade D in grading scheme 1 than in grading scheme 2
    • H5: Equal cut-off for grade F in grading scheme 1 and in grading scheme 2

We then determined how many of these hypotheses were satisfied by different professors.  We found that 5 out of 6 Professors  satisfied 4 or 5 of these (four did not satisfy  H5, as mentioned above). However, one Professor satisfied only 2 of these.  In other words, most Professors are quite consistent in their grading behavior across schemes (except for F grade.)

Acknowledgements

I would like to thank Mayank Pundir for his help in analyzing the data and in writing the report, and Vidushi Chaudhary for her help in performing the experiment and initial analysis. I would also like to thank the professors who participated in the study and graded the students using the two grading schemes (not mentioning their names for confidentiality).  Details of the analysis are also available with the author.

Desired Skills/Capabilities in Graduating CSE Students for a High-End Engineering Career

3 Comments

At IIIT-Delhi, objectives of BTech program are to develop graduates for careers in high-end engineering professions and research. (We want to emphasize on “high-end engineering careers” as the vast majority of software careers in India need moderate expertise in computer sciences – as demonstrated by the fact that many large software companies take engineers from any discipline and make them suitable for their work after a couple of month’s training. As at IIIT-Delhi we have a rigorous program in CSE, we believe that it should be to prepare the students for more cutting-edge work in technology and product companies, research, and innovation and entrepreneurship.)

To develop the skills needed for high-end engineering careers, we need to clearly understand them and then ensure that the BTech program is developing them. During a recent review of our curriculum, for the objective of developing high-end software engineers, we decided to take feedback from senior engineers of some technology companies on what skills they expect in graduating engineers. The companies included most of the top technology players like Google, Microsoft, Adobe, Yahoo, EMC, Siemens, Netapps, and smaller technology players like AirTight Networks. The questionnaire we sent asked what Technical skills they expected, and what Meta/Soft skills they expected in graduates of a CSE program. (It was satisfying to note that our curriculum focused on developing many of these skills. Still some ideas emerged from this exercise for which we have taken suitable actions.)

This note  gives a summary of the feedback obtained. It is worth pointing out, particularly to students, that the feedback almost entirely revolved around understanding and skills – grades and marks were not mentioned even once by anyone. It needs to be emphasized to students that short cuts to getting good marks are of no help in careers in these companies – almost all of these companies conduct multiple rounds of tests and interviews to assess the understanding and skills. I hope this feedback from the very places which often constitute dream jobs for students might strengthen the resolve of those students who want to work hard to learn and build their capabilities (the only way!) to continue on their path.

–In Meta/Soft skills, a few skills/capabilities that were highlighted most in various forms are:
  • Ability to quickly learn new concepts, languages, technologies, best practices. As one might expect, in today’s world, continuous up gradation is essential and it is to be expected that whatever one knows may become obsolete soon and so one must have ability to learn. In a high-end technology career (like most knowledge-based careers), ability and desire to learn is critical, along with desire and motivation to keep improving in whatever one is doing.
  • –Problem solving ability. This has many aspects and were variously expressed as: logical and critical thinking; ability to connect new challenges with old problems and past experience; ability to apply diverse/disparate concepts for solving a problem; ability to think at abstract level, and drill down to details; ability to leveraging existing tools and knowledge for problem solving; ability to formulate a problem, thinking of different ways to approach; ability to work with unknowns/ uncertainty ; ability to identify bottlenecks and articulate them well; ability to search for information to fill these unknowns, reduce uncertainty, remove bottlenecks
  • –Communication skills.  Explaining things to others in a clear and structured manner; ability to speak and write with clarity and succinctly.
  • –Team work. Ability to work in teams, which can need skills like taking leadership when needed, but following when required; skills to negotiate and resolve conflicts, work in time constraints and with responsibility, etc,

While the meta/soft skills may be general for any high-end engineering skills, the feedback for technical skills was far more focused for CSE (as the questionnaire was focused on computer science). The list of desired capabilities and skills here is longer and more detailed. Some of the key skills that were highlighted are:

  • –Solid Data Structures and Algorithms. Deep understanding of these subjects, how to combine them, how to find/design suitable ones for a problem, etc. This is not surprising as indeed these are the most foundational topics on which much of CS rests.
  • –Strong in OOPS.  OO Design and principles, subtle aspects of language, strong understanding of the language capability and limitations, its design and implementation,
  • –Good understanding of OS, DBMS, Networks. These subjects were highlighted whose understanding is extremely important on being a successful software engineer for high-end work.
  • –Ability to write well structured and efficient code.  This view was expressed in various ways.  E.g. ability to evaluate efficiency of the code at different levels – algo, DS, execution level (OS), hardware – to reduce memory as well as time; understanding of different layers of the system, and ability to evaluate/assess the program at these different layers
–Various other skills that were pointed out were: ability to leverage libraries from disparate sources and create abstractions on top; good debugging skills; familiarity with different programming paradigms – what they can do, how they are implemented, where they are useful…; understand different situations in which a system can work or fail or may be used; working knowledge of standard tools and IDEs; ability to read others’ code and analyze it, provide feedback on it, work with it / enhance it efficiently; experience of working on a real project (with real delivery and users/customers).

We found these inputs very useful in fine tuning our courses and the type of projects and assignments we give. I hope others find it useful as well. I sincerely hope that students will get the message loud and clear: build these types of skills and capabilities if you want to have a high-end (and well paying) engineering career – and leverage your Institution’s education program and courses effectively towards strengthening these.

Older Entries