avatarMurtaza Ali

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

1118

Abstract

ty analysis, debugging techniques, advanced language-specific tools.</p><p id="e87d">Once that’s done, we introduce advanced concepts such as memory management and object-oriented programming. In doing so, we emphasize that different languages possess different strengths. Building an operating system? C’s probably the best choice. Need a heavily object-based language? Try Java. Looking for a useful language to conduct advanced data analysis? Give Python a shot.</p><p id="5982">Now that our students are finally proficient enough to program well on their own, we go ahead and introduce specializations: artificial intelligence, hardware engineering, networking, databases, … the list goes on.</p><p id="37c3">Finally, having taught them one of the most powerful skills in the world, we send them out into the world, grinning at the success of another trained student.</p><p id="0fb9"><b>But something’s missing</b>.</p><p id="5525">My undergraduate university offers a course called CS 195: Social Implications of Computing. This is a fascinating course which teaches students about the role computer science plays

Options

in the modern world and the consequences which can result from its carefree application. Privacy, government surveillance, politics, algorithmic bias, and education are but a small subset of the topics covered in this class. Students who take this class graduate with a profound awareness of how they can use their skills to objectively improve society, precisely because they are shown what happens when computers are harnessed improperly.</p><p id="8c26">The problem? This course is <i>optional</i>. The story is the same at most universities. Structure of computer programs? Required. Advanced algorithms? Required. Foundations of electrical engineering? Required. Computer architecture? Required.</p><p id="ba57">But any and all classes which discuss how to apply these skills ethically are optional.</p><p id="e6eb">Put simply, it’s irresponsible to teach one of the most powerfully dangerous skills in the world to thousands of students a year — but fail to teach them the responsibility that comes with it.</p><p id="2504">And we wonder why tech companies are always taking advantage of us.</p></article></body>

A 2-Minute Rant on the Problem with Computer Science Education

We teach our students how to code, but we fail to teach them how to harness that power for the good of society.

Photo by Kevin Ku on Unsplash

This one will be quick. I woke up this morning, and I felt the need to write about one of the most frustrating issues with modern-day computer science education.

We start by teaching our students the basic foundations of computer science: how to assign a variable name, how to define a function, and so on.

Then, we teach them slightly more complex tools to solve problems: for loops, recursion, built-in utility functions.

After that, we show them methods to improve the quality of their code: complexity analysis, debugging techniques, advanced language-specific tools.

Once that’s done, we introduce advanced concepts such as memory management and object-oriented programming. In doing so, we emphasize that different languages possess different strengths. Building an operating system? C’s probably the best choice. Need a heavily object-based language? Try Java. Looking for a useful language to conduct advanced data analysis? Give Python a shot.

Now that our students are finally proficient enough to program well on their own, we go ahead and introduce specializations: artificial intelligence, hardware engineering, networking, databases, … the list goes on.

Finally, having taught them one of the most powerful skills in the world, we send them out into the world, grinning at the success of another trained student.

But something’s missing.

My undergraduate university offers a course called CS 195: Social Implications of Computing. This is a fascinating course which teaches students about the role computer science plays in the modern world and the consequences which can result from its carefree application. Privacy, government surveillance, politics, algorithmic bias, and education are but a small subset of the topics covered in this class. Students who take this class graduate with a profound awareness of how they can use their skills to objectively improve society, precisely because they are shown what happens when computers are harnessed improperly.

The problem? This course is optional. The story is the same at most universities. Structure of computer programs? Required. Advanced algorithms? Required. Foundations of electrical engineering? Required. Computer architecture? Required.

But any and all classes which discuss how to apply these skills ethically are optional.

Put simply, it’s irresponsible to teach one of the most powerfully dangerous skills in the world to thousands of students a year — but fail to teach them the responsibility that comes with it.

And we wonder why tech companies are always taking advantage of us.

Technology
Ethics
Education
Life
Life Lessons
Recommended from ReadMedium