Master of Science in Software Engineering (MSSE) Curriculum
Definitions:
Software Engineering is “The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines” [Bauer 1972].
“That form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems.” [CMU/SEI-90-TR-003]
“The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” [IEEE 1990].
Software Engineering is an established discipline that comprises requirement analysis, design, construction, testing, as well as the economics, and management issues of the creation and maintenance of software. A Software Engineer has the special knowledge and skills necessary to develop and maintain large, complex software systems. A Software Engineer approaches all of these problems in a pragmatic and organized way and is concerned with the theoretical and practical aspects of technology, cost, and social impact of effective and efficient software.
Degree programs in software engineering have many courses in common with computer science. However, when it comes to techniques concerned with the reliability of software and with developing and maintaining software that is correct from the start of its development, the engineering knowledge and experience provided in SE programs go beyond what general CS programs provide. It is considered a necessity by many professionals and educators in the SE field that students of SE should participate in the development of software to be used in earnest by others.
ITU’s curriculum for a MSSE is concerned with the technical and management issues of SE, but primary emphasis is placed on the technical aspects of building and modifying high quality software systems. It thus allows the students to prepare for careers in businesses that build and sell computers and/or software, in Internet based companies, electronic business organizations, diverse research and development laboratories, aerospace companies, banks, and insurance companies. The development of this graduate curriculum has taken the recommendations of the Joint Task Force on Computing Curricula of the IEEE Computer Society and the Association for Computing Machinery of August 2004 into consideration.
Admission requirements
An undergraduate degree is required for admission. If that degree is in the area of computer science or a related field then a minimum grade point average of 3.0 is required for the last half of courses taken that count for the degree. If the degree is in a different field then the minimum grade point average required for all courses that count for the degree is 3.0. Exceptions to these requirements are specified in the Admission Policy for the Unclassified Master Degree Program and can as well be made by the academic council.
Curriculum for MSSE
Below are listed the required and elective courses for the MSSE curriculum together with the prerequisites, if any. The course contents together with prerequisites, if any, are listed in the appendix. The number of courses specified below are the minimum for each category that must be chosen by the student. The CPT Internship courses must be chosen by students who are on Curricular Practical Training and only one CPT Internship course is allowed per semester.
The student must select courses from the categories below. (The credit units for each course are given in parentheses.)
A minimum of 6 credit units from the courses below
SEN 920 Computer Algorithms (3)
SEN 941 Software Engineering (3)
SEN 942 Advanced Software Engineering (3)
SEN 944 Software Refactoring (3)
SEN 946 Software Requirements Elicitation (3)
SEN 950 Software Architecture (3)
SEN 956 Unix Operating System (3)
SEN 986 Software Design using UML (3)
SEN 964 OO Programming with Java (3) *
SEN 972 Java EE Programming (3) *
* Note: Only one of these courses will be considered as a core course.
A minimum of 3 credit units from the courses below
AMN 912 Applied Mathematics Methods (3)
AMN 920 Optimization Techniques (3)
AMN 921 Advanced Optimization Techniques (3)
AMN 922 Advanced Applied Mathematics Methods (3)
AMN 930 Numerical Analysis (3)
AMN 940 Discrete Mathematics (3)
AMN 950 Fast Fourier Transformation & Applications (3)
AMN 952 Probability & Statistics for Engineers (3)
The total maximum number of credit units that can be taken from this group is 9.
GRN 597 Joint Seminar (1)
CEN 943 Digital Image Processing I (3)
CEN 951 Computer Architecture (3)
CEN 956 Distributed Computing systems (3)
CEN 960 Computer Communication Networks I (3)
CEN 966 Routing in Computer Networks (3)
MISY 915 Management Information Systems (3)
CS 810 Information Security Countermeasures (3)
CS 904 Bio Informatics (3)
CS 910 Coding Theory (3)
SEN 760 SQA/Manual Testing (3)
SEN 860 SQA/Manual/Auto/Perf Testing (3)
SEN 910 HTML/CSS programming (3)
SEN 911 Web Graphic Design (3)
SEN 930 SQA/Software Testing Tools (3)
SEN 961 Cloud Computing (3)
SEN 962 Web page design using HTML and Java (3)
SEN 963 Unix, Perl and web management (3)
SEN 964 OO Programming with Java (3)
SEN 965 I-Phone Application Development I (3)
SEN 966 I-Phone Application Development II (3)
SEN 968 Design and Maintenance of commercial web sites (3)
SEN 970 OO Programming with Objective-C (3)
SEN 985 Artificial Intelligence (3)
SEN 991 Computer Graphics (3)
SEN 992 Advanced Computer Graphics (3)
Total Minimum Credits Required = 36


