courses outside software engineering
Elective Courses in Software Engineering Program
The undergraduate software engineering program integrates technical requirements with general education requirements and electives to prepare the student for a professional career in the field, for further study, and for functioning in modern society. In the senior year, students in software engineering program may take elective courses in one or two advanced areas from Computer Systems, Data Management Systems, Graphics and Visualization, Intelligent Systems, Networking and Telecommuncations and Theory. This advanced portion is designed to meet the objectives of software engineering program by providing depth in one or two areas.
Software engineering encompasses theory, technology, practice and application of software in computer-based systems. To design and implement large software and system development, advanced knowledge in this field is needed. So the software engineering program includes elective courses in the advanced computer science and engineering portion. This part includes the areas of Computer Systems, Data Management Systems, Graphics and Visualization, Intelligent Systems, Networking and Telecommuncations and Theory. The computer science principles in these areas may be integrated and applied in projects. These elective courses prepare the student for a professional career in the field or graduate study.
These elective courses are listed in specialization courses of computer science semester conversion. Students in software engineering program may choose 4-5 courses from one area or 2-3 courses from two areas. Also, for students from other departments who want to get dual degree in software engineering program, one area of home department with depth in software development may be chosen.
Below are descriptions of these elective areas. For detail information and prerequisite of each course, please refer to:
This area covers operating systems concept, abstractions and implementations; pipelined processor design and hardware design of computer systems; parallel and distributed computing algorithms and systems; design and implementation of compilers, interpreters, and program analyzers.
Data Management Systems
This area covers mainstream database concepts such as the ER model, relational databases, query languages and database design methodology; fundamental software components/algorithms of a database system; analysis,design and implementation of information systems; current database developments.
Graphics and Visualization
This areas covers current and future techniques for computer graphics, electronic game design and programming; analysis of digital multimedia and digital video; motion techniques for computer animation and interactive games.
This areas covers introduction to artificial intelligence, cognitive science, vision and robotics; knowledge-based problem solving and knowledge system engineering; machine learning techniques and applications; metaphysical and epistemological issues in the foundations, methods and implications of computing.
Networking and Telecommunications
This area covers principles of computer networks; telecommunication systems and performance of data transmission systems.
This areas cover cyptography, pseudorandomness, algorithms, complexity, information theory, coding theory, computational geometry and automata theory.