CSCI2120 Introduction to Software Engineering


Course code CSCI2120
Course title Introduction to Software Engineering
Course description This course aims to introduce students to software engineering concepts. Software life cycles and processes: requirements analysis and specifications; design techniques, functional design, object oriented design; implementation methodology, software testing and maintenance; application of CASE tools; documentation. Software Engineering laboratory: a series of exercises to practise the principles of software engineering.
本科旨在介紹軟件工程中的一些基本概念,包括軟件生命周期和過程,需求分析和規範,設計方法,功能設計,面向物件設計,實施方法,軟件測試和維護,CASE 工具的應用以及軟件文檔等。軟件工程實驗室:通過一系列練習來實踐軟件工程中的這些基本原理。 
Unit(s) 2
Course level Undergraduate
Pre-requisite  CSCI1110 or 1120 or 1130 or 1510 or 1520 or 1530 or 1540 or ENGG1110 or ESTR1002 or 1100 or 1102 or (MATH2210 and 2220) or PHYS2351
Exclusion  CSCI3100 or IERG3080 or ENGG3820
Semester 1 or 2
Grading basis Graded
Grade Descriptors A/A-:  EXCELLENT – exceptionally good performance and far exceeding expectation in all or most of the course learning outcomes; demonstration of superior understanding of the subject matter, the ability to analyze problems and apply extensive knowledge, and skillful use of concepts and materials to derive proper solutions.
B+/B/B-:  GOOD – good performance in all course learning outcomes and exceeding expectation in some of them; demonstration of good understanding of the subject matter and the ability to use proper concepts and materials to solve most of the problems encountered.
C+/C/C-: FAIR – adequate performance and meeting expectation in all course learning outcomes; demonstration of adequate understanding of the subject matter and the ability to solve simple problems.
D+/D: MARGINAL – performance barely meets the expectation in the essential course learning outcomes; demonstration of partial understanding of the subject matter and the ability to solve simple problems.
F: FAILURE – performance does not meet the expectation in the essential course learning outcomes; demonstration of serious deficiencies and the need to retake the course.
Learning outcomes At the end of the course of studies, students will have acquired the ability to
1. identify software process for modern systems;
2. know requirement engineering techniques, including software requirements, system specification and modeling;
3. become familiar with software design approaches, including architectural design, distributed system design and object-oriented design;
4. experience software development methods, including rapid software development and component-based software development;
5. realize verification and validation schemes;
6. understand software management issues, including project management, quality management and cost estimation.
(for reference only)
Essay test or exam: 40%
Lab reports: 30%
Short answer test or exam: 20%
Assignments: 10% 
Recommended Reading List 1. Object-oriented and classical software engineering, Stephen R. Schach, 8th Edition, 2011
2. Object-oriented software engineering : using UML, patterns, and Java, Bernd Bruegge and Allen H. Dutoit, 2nd Edition, 2004
3. Classical and object-oriented software engineering with UML and C++, Stephen R. Schach, 1999


CSCIN programme learning outcomes Course mapping
Upon completion of their studies, students will be able to:  
1. identify, formulate, and solve computer science problems (K/S); TP
2. design, implement, test, and evaluate a computer system, component, or algorithm to meet desired needs (K/S);
3. receive the broad education necessary to understand the impact of computer science solutions in a global and societal context (K/V); TP
4. communicate effectively (S/V);
5. succeed in research or industry related to computer science (K/S/V);
6. have solid knowledge in computer science and engineering, including programming and languages, algorithms, theory, databases, etc. (K/S); TP
7. integrate well into and contribute to the local society and the global community related to computer science (K/S/V); T
8. practise high standard of professional ethics (V); T
9. draw on and integrate knowledge from many related areas (K/S/V);
Remarks: K = Knowledge outcomes; S = Skills outcomes; V = Values and attitude outcomes; T = Teach; P = Practice; M = Measured