| Course code | CSCI1020 | 
| Course title | Hands-on Introduction to C++ 高級程序設計語言C++實用介紹  | 
| Course description | This course aims to provide an intensive hands-on introduction to the C++ programming language. Topics include the basic C++ language syntax, variable declaration, basic operators, program flow and control, defining and using functions, file and operating system interface. Specific key features of the C++ programming language such as object-oriented methodology, class templates, encapsulation, inheritance, polymorphism, etc. will be highlighted. 本科旨在密集介紹階程序設計語言C++。包括基本階程序設計語言C++的語法、變數申明、基本運算符、程序編寫流程及控制、函數定義及應用、文件及操作系統接口。科目亦會介紹階程序設計語言C++的特性,例如面向對象的方法、類別模板、及其概念如封裝、繼承、多態性等。  | 
| Unit(s) | 1 | 
| Course level | Undergraduate | 
| Exclusion | CSCI1120 or 1520 or 1540 or ESTR1100 | 
| 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 | 1. Be able to write, compile and execute Standard C++ programs; 2. Be able to make use of C++’s object-oriented methodology; 3. Be able to develop object-oriented program using classes, inheritance, encapsulation, and polymorphism;  | 
| Assessment (for reference only)  | 
Assignment :50% Final exam :50%  | 
| Recommended Reading List | 1. Problem Solving with C++ (6th edition), Walter Savitch, Addison-Wesley. 2006 2. The C++ Programming Language (3rd Edition), Bjarne Stroustru, Addison-Wesley 3. C++ Primer Plus (5th Edition), Stephen Prata, Sams  | 
| 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); | 
P | 
| 3. receive the broad education necessary to understand the impact of computer science solutions in a global and societal context (K/V); | |
| 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); | |
| 8. practise high standard of professional ethics (V); | |
| 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 | |