everything.study
CHEM 281

Software Engineering for Scientific Computing

3 credits · Graduate

The course covers computer architecture and software features that have the greatest impact on performance. It addresses debugging and performance tunning, detecting memory and stack overwrites, malloc corruption, hotspot, paging, cache misses. A toolbox with common algorithms: sorting, searching, hashing, trees, graph traversing, is followed by common patterns used in object-oriented design. It describes programming paradigms, dynamic libraries, distributed architectures, and services. Lectures on linear algebra and performance libraries are provided as background for future courses. HPC paradigms and GPU programming are introduced. Software packaging, extensibility, and interactivity is followed by team development, testing and hardening.

Topics

Official catalogue course objectives and student learning outcomes

Prerequisites & course information

{'preRequisiteCourse': '1599581', 'concurrentPrerequisit': False}; {'preRequisiteCourse': '1599591', 'concurrentPrerequisit': False}

Sources