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 Form | Key Requirement | Description |
|---|---|---|
| 1NF | Atomic Values | Each column must contain only atomic (indivisible) values. |
| 2NF | No Partial Dependency | Non-prime attributes must be fully dependent on the primary key. |
| 3NF | No Transitive Dependency | Non-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.