Welcome to computer science field!
In order to improve your software development and software engineering research knowledge, we recommend that you learn about some topics of computer science related to software engineering field.
Why should I care about these topics?
– Because these topics will provide you knowledge so that you can develop COMPLICATED software that only A FEW developers can create. They will help you create INNOVATIVE software that no one has made. They will provide you a more broad view and tools for your software engineering research.
Here are some important topics that you will want to learn about. Please learn them BY THE ORDER.
- Computer Architecture. Please read this David Harris and Sarah Harris (2013). Digital Design and Computer Architecture. Elsevier book.
- Programming Language Theory. Please read this Michael L. Scott (2015). Programming Language Pragmatics. Morgan Kaufmann book or this Robert W. Sebesta (2015). Concepts of Programming Languages. Pearson book.
- Compilers. Please read this Alfred V. Aho et al. (2006). Compilers – Principles, Techniques, and Tools. 2nd Edition. Pearson Education or this Keith D. Cooper and Linda Torczon (2012). Engineering a Compiler 2nd Edition. Elsevier book.
- Applied Cryptography. Please read this Bruce Schneier (1996). Applied Cryptography – Protocols, Algorithms and Source Code in C. Wiley book.
- Abstract Algebra. Please read this Thomas W. Judson (2021). Abstract Algebra Theory and Applications book.
- Mathematical Cryptography. Please read this Jeffrey Hoffstein et al. (2014). An Introduction to Mathematical Cryptography. Springer book.