CSCI4140 Open-source Software Project Development

Course Code and Name: CSCI4140 Open-source Software Project Development
Course Objectives:

This course is to introduce techniques in developing software projects. Topics include leveraging the web server, the database server, and the scripting languages, such as the LAMP (Linux, Apache, MySQL, PHP) platform, to develop software projects, advanced debugging techniques, and performance tuning techniques. Also, this course will introduce the knowledge on software licensing, such as the GNU public license (GPL) and the Berkeley Software Distribution (BSD) license. Last but not least, this course emphasizes in arousing the creativity and fun in developing software projects.
Course Outcomes:

1. Students will learn the differences between a piece of free software and a piece of open-source software, including the corresponding license issues.
2. Students will learn how to install and configure a LAMP system.
3. Students will learn different scripting languages, including but not restricted to, PHP, Perl, and JavaScript.
4. Students will learn the potentials and the technological limits of LAMP-based system development.
5. Students will develop a real LAMP-based project using the state-of-the-art programming methodologies and frameworks.
6. Students will learn performance tuning techniques, such as the program profiling technique, as well as advanced debugging techniques, such as the memory leakage detection.
Programme Outcomes:
(P1) The ability to apply knowledge of mathematics, science, and engineering appropriate to the degree discipline (K/S)
(P2) The ability to design and conduct experiments, as well as to analyze and interpret data (K/S)
(P3) The ability to design a system, component, or process to meet desired needs within realistic constraints, such as economic, environmental, social, political, ethical, health and safety, manufacturability and sustainability (K/S)
(P4) The ability to function in multi-disciplinary teams (S/V)
(P5) The ability to identify, formulate, and solve engineering problems (K/S)
(P6) The understanding of professional and ethical responsibility (V)
(P7) The ability to communicate effectively (S)
(P8) The ability to understand the impact of engineering solutions in a global and societal context, especially the importance of health, safety and environmental considerations to both workers and the general public (V)
(P9) The ability to recognize the need for, and to engage in life-long learning (V)
(P10) The ability to stay abreast of contemporary issues (S/V)
(P11) The ability to use the techniques, skills, and modern engineering tools necessary for engineering practice appropriate to the degree discipline (K/S)
(P12) The ability to use the computer/IT tools relevant to the discipline along with an understanding of their processes and limitations (K/S/V)
(P13) The ability to apply the skills relevant to the discipline of operations research and information technology and their applications in engineering and managerial decision making, especially in financial services, logistics and supply chain management, business information systems, and service engineering and management (K/S)

K = Knowledge outcomes
S = Skills outcomes
V = Values and attitude outcomes