Mathematics: high number, line generation, dispersion, probability theory
Assembly language, C, c++, data structure, computer composition principle, operating system, compilation principle, java, algorithm design and analysis, software management and other courses. Different schools offer different courses.
Industry perspective:
The first is some basic programming languages. As an introduction, C, C++ and Java are basically available to everyone. Due to the trend, C and C++ are not used much, and Java is more practical.
Secondly, it is the most basic theoretical support of software engineering. Of course, I came into contact with a lot when I was learning a language. Including: data structure, database, discrete mathematics, algorithm design, operating system, computer network, UML, design pattern and object-oriented design. These are necessary knowledge for every software engineer, but many so-called engineers can't master them skillfully.
Then you will have relevant professional skills according to the specific job position. For example, the project manager needs to master some management knowledge, such as agile development and human resources.
Mobile development needs to master iOS or Android or related. The front-end needs to learn JavaScript, HTML and CSS, and the back-end needs to master one or more back-end development language tools, such as Java EE, Python and NodeJS. Of course, there are network security, system security, distributed system, VoIP, embedded development and so on.
What are the main courses of software engineering?
Main subjects: Marxist theory, college foreign languages, advanced mathematics, college physics, physical experiments, linear algebra, probability theory and mathematical statistics, programming language, data structure, discrete mathematics, operating system, compilation technology, introduction to software engineering, unified modeling language, software architecture, software requirements and software project management.
In addition to basic courses, this major will systematically study discrete mathematics, data structure, algorithm analysis, object-oriented programming, modern operating system, database principle and implementation technology, compilation principle, software engineering, software project management, computer security and other courses. Other elective courses can be selected according to students' interests.
Practical links: graduation practice, curriculum design, computer engineering practice, production practice, graduation design (thesis).