jayapage · blog

Studying Computer Science in 2026: Core Subjects and Challenges

CategoriesCoursework

Studying Computer Science in 2026 🎓

As a Computer Science student, the academic workload can sometimes feel like climbing a steep hill. While many outside of the field assume CS is just about coding websites or building apps, the actual university curriculum is deeply rooted in mathematical principles, systems engineering, and abstract theory.

Here is a breakdown of the core subjects I am studying this semester and the challenges they present.

1. Relational Database Systems

Database systems are the backbone of any software infrastructure. In this course, we learn about relational algebra, schema normalization (from 1NF to Boyce-Codd Normal Form), and SQL query optimization.

Understanding normalization is crucial because a poorly designed schema can lead to data redundancy and anomalies:

Normal FormKey RequirementDescription
1NFAtomic ValuesEach column must contain only atomic (indivisible) values.
2NFNo Partial DependencyNon-prime attributes must be fully dependent on the primary key.
3NFNo Transitive DependencyNon-prime attributes must not depend on other non-prime attributes.

2. Theory of Computation

This is easily the most theoretical and mathematically rigorous class of the semester. We study:

  • Finite Automata (DFA, NFA)
  • Regular Expressions and Regular Languages
  • Context-Free Grammars (CFG)
  • Turing Machines

It is a mind-bending subject that teaches you what computers can and cannot compute. It makes you realize that programming languages are just formal grammars processed by state machines.

3. Discrete Mathematics

Discrete Mathematics forms the mathematical foundation of computer science. We cover topics like:

  • Propositional Logic: Using truth tables and logic gates.
  • Graph Theory: Tree traversals, shortest path algorithms (Dijkstra’s), and graph coloring.
  • Combinatorics: Permutations, combinations, and probability theory.

Having a strong grasp of graph theory is incredibly helpful when you start studying advanced data structures like heaps, tries, and search algorithms in lab classes.

Conclusion

Studying Computer Science requires a balance of abstract thinking and hands-on lab work. While the math and theory can be demanding, they provide a long-term foundation that makes learning new programming tools and systems much easier.