Reflections on Useless Computer Science Courses in College
When reflecting on the computer science courses I took in college, some stand out as more useful than others. While all provided insights and skills, a few felt redundant or less applicable to my professional path. In this article, I will share my experiences and reflect on why some of these courses might be deemed 'useless' in the context of a general computer science education.
Programming Languages and Their Relevance
One of the programming languages I studied, Ada, is often considered one of the more obscure. This language is highly specialized and not widely used outside of certain military and aerospace applications. My experience with Ada was predominantly academic, and I have never encountered it since, aside from the classroom. Similarly, I took a course in Fortran, which, while less obscure than Ada, is also no longer a language commonly used in modern software development. Even languages like C and Cobol, which are still in use, were not encountered frequently in other settings besides the classroom.
The Subjectivity of a 'Useless' Course
The notion of a 'useless' course is subjective. Even if a specific programming language or course might not be directly applicable to a particular job, the critical thinking, problem-solving, and logical reasoning skills developed can be invaluable. For instance, Pascal courses provided me with foundational skills that still apply when working in C. This highlights the importance of broader educational experiences over strictly job-specific skills.
Specific Examples of Less Useful Courses
A database course that centered on dBase was one of the most standout in this category. Given the advancements in technology and the evolution of databases, dBase is not commonly used today. Similarly, a machine assembly course was also notably less applicable to my career as a computer scientist. Over the past 25 years, I have had no need to write assembly code in my professional work. This course was a source of frustration at the time and, given the changes in the field, it seems unnecessary in modern curricula.
Why Certain Theory Courses Can Feel Useless
While it may seem that courses in calculus, discrete mathematics, and other theoretical subjects are not directly applicable to job roles, these courses are essential for a deeper understanding of computer science. Theory forms the foundation upon which practical skills are built. It is through these courses that I have developed a strong theoretical background that, while not always directly applied, provides the conceptual understanding necessary for advanced and innovative work in the field.
The Insignificance of Certain General Education Requirements
Some courses, such as the history of English, seemed far removed from the field of computer science. As a student currently in my junior year, I do not have the same experience as someone with more professional work experience. Nonetheless, it is easy to understand why such courses might feel less relevant. They provide a broader education but can seem detached from the immediate application of computer science. However, this broader knowledge helps in understanding the world in which computer science operates, which can be instrumental in creating better software and solutions for real-world problems.
While some courses might feel less applicable, the skills and knowledge gained are valuable in the long run. The focus should be on the overall breadth of education rather than the direct application to specific jobs. A well-rounded education in computer science should combine practical skills with a broad understanding of the field and the world at large.