| -Philosophy of science, the scientific method -Object-oriented programming -Basic calculus -Basic discrete mathematics -Linear algebra -Algorithms, data structures and asymptotic analysis -Basic compiler design -Theory of computation, Turing machines and formal languages -Basic practical computing technology, from the gate level -Basic software engineering: SE methodology, version control and developing software in a team -Cryptography, ciphers and data security -Overview of the role of operating systems -Networking, encapsulation and the TCP/IP stack -Basic web technology, server-side programming and client-side scripting Anything outside of this, I've learned on the job or in my spare time. This includes AJAX and the use of heavier web technology. To my intuition, this is more descriptive of an undergrad degree in computer science rather than a software engineering degree. But it'd be nice to hear what others think. |