Skills of programming and knowledge to computer science are required for proper implementation of codes that solve scientific and engineering problems. However, acquisition of the expertise is not a trivial effort. Just like scientific research, open source software development promotes the idea of learning from doing, and uses openness as a means for efficiency. It has been known in the industries that open source software significantly improves productivity. The open source practices should also be used for scientific and engineering software, and this talk discusses how.
Software development is more than just coding. To develop fast and dependable software, understandings to programming languages, design patterns, operating systems, and computer architecture are all necessary. It cannot be learned without practice and open source software provides is a good (and probably the most efficient) way to do it.
This talk will discuss the following topics that integrate numerical software development with open source:
- Useful open source tools for numerical software
- Software engineering with open source infrastructure
- Interpreter and interface to C/C++
- Modern C++ code development
- Memory management
- Timing and optimization
- Design guidelines
- Packaging and deployment
Yung-Yu Chen is a software developer focusing on making software to solve scientific and engineering problems. He currently works with an EDA company, and spends his free time enjoying writing various computing code and teaching how to do that using modern tools.