Introduction
Choosing the right major for a career in theoretical computer science can be challenging, especially when there isn't a specific computer science program available. This article explores the pros and cons of opting for mathematics or computer engineering, sharing insights and advice to help you make an informed decision.
Understanding Key Terms in Academia
Before delving into the specifics, it is crucial to understand the differences between the terms 'academic' and 'academician.' An academic refers to a person who serves as a faculty member in a college or university, while an academician is a member of a national academy—a highly prestigious honor. Most academics do not become academicians, and not all academicians are academics. This distinction is important to clarify as it shapes the pathways and goals within academia.
International Academic Insights
It is important to acknowledge that almost every country, including Turkey, offers some form of computer science or information technology program. Therefore, if there is no specific computer science major in your country, this should not be a hindrance. A related field, such as computer engineering, could serve as a strong foundation for further academic pursuits. After completing a computer engineering degree, enrolling in a Ph.D. program in computer science is an achievable and common path.
Theoretical Computer Science vs. Pure Mathematics
While it is true that some theoretical computer scientists begin their academic journey in mathematics, fields like computer engineering can still provide a robust foundation. My professor, who worked with me and mentored me, had a degree in electronics, which closely aligns with computer engineering. He could build circuits, and I focused on software. This experience underscores the importance of interdisciplinary knowledge in computer science.
Choosing Mathematics for Theoretical Computer Science
If you are truly committed to being a theoretical computer scientist, the choice to pursue mathematics might be more fitting. This field equips you with the necessary mathematical tools and concepts to delve deeply into the theoretical aspects of computer science. Here are some specific courses and areas of study that would be beneficial:
Number Theory: This is essential for cryptography, a key component in theoretical computer science. Discrete Mathematics: The backbone of computer science, covering topics that are directly applicable to algorithms and data structures. Linear Algebra: Crucial for efficient computing and understanding complex systems. Statistics: Important for artificial intelligence and machine learning, crucial areas in theoretical computer science. Algorithms and Analysis: Essential for understanding the fundamental concepts of computer science and developing efficient computational methods.Why Computer Engineering Might Still Work
Even if you choose to study computer engineering, you can still shape your education to prepare for a career in theoretical computer science. The choice of electives and additional courses can significantly influence your academic path. For example, you can focus on circuit design, which can offer insights into hardware and its implications on software and algorithms.
Conclusion
The decision between mathematics and computer engineering for a career in theoretical computer science depends on your goals and the specific pathways available to you. If you are deeply interested in the theoretical aspects and have access to a robust mathematics program, it might be the best choice. However, computer engineering can also provide a strong foundation for academic pursuits in theoretical computer science, particularly if you focus on the relevant electives and courses.