|Course title||Problem Solving By Programming
|Course description||This is a computer-programming course to equip students with software knowledge and skills to solve engineering problems. Students will learn fundamental programming concepts in C, such as data representation and variables, operators and expressions, flow-control statements, functions, arrays, structures, pointer basics, input/ output handling, etc. In addition to lectures and e-learning, students will work in labs to practise solving problems and complete an engineering software project. The course will cover various problem solving methods such as incremental development, divide-and-conquer, debugging technique, finite-state machine, etc. Through practices, students will acquire skills to define problems and specifications, to perform modelling and simulation, to develop software system prototypes, to carry out verification, validation, and performance analysis.
|Exclusion||CSCI1020 or 1030 or 1110 or 1120 or 1130 or 1510 or 1520 or 1530 or 1540 or ESTR1002 or 1100 or 1102|
|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 are expected to acquire the ability to
1. understand basic structural programming constructs in building a working software;
2. apply computer programming to solve engineering problems;
3. model a system on a computer to meet specifications and performance goals.
(for reference only)
|Essay test or exam：40%
Short answer test or exam：10%
|Recommended Reading List||1. C How to Program, Deitel & Deitel, 8th ed.
2. Other references provided by the instructor.
|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);|
|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);|
|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);|
|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|