CME 211: Software Development for Scientists and Engineers
Basic usage of the Python and C/C++ programming languages are introduced and used to solve representative computational problems from various science and engineering disciplines. Software design principles including time and space complexity analysis, data structures, object-oriented design, decomposition, encapsulation, and modularity are emphasized. Usage of campus wide Linux compute resources: login, file system navigation, editing files, compiling and linking, file transfer, etc. Versioning and revision control, software build utilities, and the LaTeX typesetting software are introduced and used to help complete programming assignments. Prerequisite: introductory programming course equivalent to
CS 106A or instructor consent.
Terms: Aut
| Units: 3
Instructors:
Santucci, A. (PI)
;
Bescos Alapont, G. (TA)
;
Kao, C. (TA)
...
more instructors for CME 211 »
Instructors:
Santucci, A. (PI)
;
Bescos Alapont, G. (TA)
;
Kao, C. (TA)
;
Morvan, T. (TA)
;
Shi, M. (TA)
CME 212: Advanced Software Development for Scientists and Engineers
Advanced topics in software development, debugging, and performance optimization are covered. The capabilities and usage of common libraries and frameworks such as BLAS, LAPACK, FFT, PETSc, and MKL/ACML are reviewed. Computer representation of integer and floating point numbers, and interoperability between C/C++ and Fortran is described. More advanced software engineering topics including: representing data in files, signals, unit and regression testing, and build automation. The use of debugging tools including static analysis, gdb, and Valgrind are introduced. An introduction to computer architecture covering processors, memory hierarchy, storage, and networking provides a foundation for understanding software performance. Profiles generated using gprof and perf are used to help guide the performance optimization process. Computational problems from various science and engineering disciplines will be used in assignments. Prerequisites:
CME 200 /
ME 300A and
CME 211.
Terms: Win
| Units: 3
Filter Results: