Computer system engineering encompasses both hardware and software disciplines. Students in this field will engage with fundamental electrical concepts, including analog and digital systems, and will take advanced courses in digital electronics, such as DSPs, FPGAs, ASICs, and computer architecture during their junior and senior years. On the software side, they will learn high-level programming languages like C, C++, and Java, as well as low-level programming in x86 assembly. The curriculum also includes theoretical computer science topics such as algorithms and decidability. In their later years, students will undertake projects that align with their interests, which may involve networking or error correction on the software side and FPGA projects on the hardware side.