I am new to SE and this seemed like the best place to ask my question, I apologize if is not.
I am pursuing a MS in Electrical Engineering with a focus in embedded systems/architecture. I want to pursue a career in firmware and embedded systems development.
I can take two more courses from the computer science department and I would greatly appreciate advice from anybody with experience in this field on which 2 of the following 4 courses would be most beneficial for a career in embedded systems.
- Intro to Compilers:
Techniques for translating modern programming languages to intermediate forms or machine-executable instructions/their organization into compiler. Lexical analysis, syntax analysis, semantic analysis, data flow analysis, code generation. Compiler project for prototypical language.
- Operating Systems (graduate level, I already took the undergrad):
Conceptual foundation of operating system designs and implementations. Relationships between operating system structures and machine architectures. UNIX implementation mechanisms as examples.
- Computer Networks:
Concepts, principles, protocols, and applications of computer networks. Layered network architectures, data link protocols, local area networks, network layer/routing protocols, transport, congestion/flow control, emerging high-speed networks, network programming interfaces, networked applications. Case studies using Ethernet, Token Ring, FDDI, TCP/IP, ATM, Email, HTTP, and WWW.
- Wireless and Sensor Networks:
Enabling technologies, including hardware, embedded operating systems, programming environment, communication, networking, and middleware services. Hands-on experience in programming tiny communication devices