Welcome to the 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.
- Information Theory. Please read this book, David J.C. MacKay (2003). Information Theory, Inference, and Learning Algorithms. Cambridge University Press.
- Computer Architecture. Please read this book, David Harris and Sarah Harris (2013). Digital Design and Computer Architecture. Elsevier.
- Programming Language Theory. Please read this book, Michael L. Scott (2015). Programming Language Pragmatics. Morgan Kaufmann, or this book, Robert W. Sebesta (2015). Concepts of Programming Languages. Pearson.
- Compilers. Please read this book, Alfred V. Aho et al. (2006). Compilers – Principles, Techniques, and Tools. 2nd Edition. Pearson Education, or this book, Keith D. Cooper and Linda Torczon (2012). Engineering a Compiler 2nd Edition. Elsevier .
- Abstract Algebra. Please read this book, Thomas W. Judson (2021). Abstract Algebra Theory and Applications.
- Mathematical Cryptography. Please read this book, Jeffrey Hoffstein et al. (2014). An Introduction to Mathematical Cryptography. Springer.
- Set Theory. Please read this book, Herbert B. Enderton (1977). Elements of Set Theory. Academic Press.
- Logic. Please read this book, Herbert B. Enderton (2001). A Mathematical Introduction to Logic. Academic Press.
(Visited 316 times, 1 visits today)