Module also offered within study programmes:
General information:
Name:
Programming for scientists and engineers
Course of study:
2016/2017
Code:
ZIP-3-001-n
Faculty of:
Management
Study level:
Third-cycle studies
Specialty:
-
Field of study:
Industrial Engineering
Semester:
0
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Part-time studies
Course homepage:
 
Responsible teacher:
dr hab. inż. Kaczmarczyk Waldemar (wkaczmar@zarz.agh.edu.pl)
Academic teachers:
dr hab. inż. Kaczmarczyk Waldemar (wkaczmar@zarz.agh.edu.pl)
dr inż. Opiła Janusz (jmo@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Rozumie potrzebę tworzenia otwartego oprogramowania, w szczególności oprogramowania wykorzystywanego w badaniach naukowych. IP3A_K02, IP3A_K03 Project,
Participation in a discussion
Skills
M_U001 Potrafi samodzielnie odszukać, opanować i wykorzystać zaawansowane narzędzia programistyczne przydatne dla jego pracy badawczej. IP3A_U05 Examination,
Engineering project
M_U002 Potrafi planować projekty programistyczne na potrzeby badań naukowych. IP3A_U01 Examination,
Engineering project
Knowledge
M_W001 Zna nowoczesne metody i narzędzia programistyczne wykorzystywane przy prowadzeniu badań naukowych. IP3A_W03, IP3A_W01 Examination,
Engineering project
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Rozumie potrzebę tworzenia otwartego oprogramowania, w szczególności oprogramowania wykorzystywanego w badaniach naukowych. - - - - + - - - - - -
Skills
M_U001 Potrafi samodzielnie odszukać, opanować i wykorzystać zaawansowane narzędzia programistyczne przydatne dla jego pracy badawczej. - - - - + - - - - - -
M_U002 Potrafi planować projekty programistyczne na potrzeby badań naukowych. - - - - + - - - - - -
Knowledge
M_W001 Zna nowoczesne metody i narzędzia programistyczne wykorzystywane przy prowadzeniu badań naukowych. - - - - + - - - - - -
Module content
Conversation seminar:

W ramach wykładu przedstawione zostaną wygodne narzędzia i metody umożliwiające łatwe i szybkie napisanie własnych programów (skryptów) potrzebnych do badań naukowych.

Wykorzystany zostanie język Python wraz z licznymi dodatkowymi pakietami ułatwiającymi wykonywanie obliczeń naukowych, tworzenie grafik, symulację czy optymalizację.

  1. Programowanie proceduralne
  2. Programowanie obiektowe
  3. Zalety i wady języków skryptowych
  4. Zalety i wady programowania wsadowego i interaktywnego
  5. Przechowywanie danych: interfejsy do bazy danych, szybkie zapisywanie złożonych struktur danych za pomocą serializacji, obsługa plików CSV.
  6. Szybkie obliczenia: sterowanie programami napisanymi w języku C, Cython, kompilatory just-in-time
  7. Tworzenie wykresów i diagramów za pomocą Matplotlib
  8. Obliczenia naukowe i inżynierskie za pomocą NumPy i SciPy
  9. Sterowanie solverami programowania liniowego-całkowitoliczbowego (MIP): CPLEX, Gurobi, GLPK.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 42 h
Module ECTS credits 3 ECTS
Participation in conversation seminars 14 h
Completion of a project 14 h
Realization of independently performed tasks 14 h
Additional information
Method of calculating the final grade:

Zaliczenie (1 ECTS):
Podstawą zaliczenia jest indywidualna realizacja prostego projektu programistycznego i ustane odpowiedzi na pytania odnoszące się do wykorzystanych w nim metod i narzędzi.

Egzamin (3 ECTS):
Podstawą zaliczenia jest indywidualna realizacja złożonego projektu programistycznego, ustane odpowiedzi na pytania odnoszące się do wykorzystanych w nim metod i narzędzi, a także innych zagadnień omawianych na zajęciach.

Prerequisites and additional requirements:

Podstawowy kurs programowania w dowolnym języku.

Recommended literature and teaching resources:
  1. Guido van Rossum, Przewodnik po języku Python, Angielska wersja jest załączona do każdej dystrybucji języka Python. Polska wersja dostępna jest na stronie: https://pl.python.org/docs/tut/tut.html
  2. Jeffrey Elkner, Allen B. Downey, and Chris Meyers, How to Think Like a Computer Scientist, Learning with Python, http://www.openbookproject.net/thinkcs/python/english2e/
  3. Mark Lutz, Python. Wprowadzenie, Helion, 2010.
  4. Mark Pilgrim, Dive Into Python, http://www.diveintopython.net/
  5. Python Scientific Lecture Notes, http://scipy-lectures.github.io/index.html
  6. Wilson, Greg, et al., Best practices for scientific computing, PLoS biology 12.1 (2014): e1001745. (http://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745)
  7. Travis E. Oliphant, Python for Scientific Computing, Computing in Science & Engineering, May/June 2007, pp.10-20.
  8. Fernando Pérez, Brian E. Granger, John D. Hunter, Python: An Ecosystem for Scientific Computing, Computing in Science & Engineering, March/April 2011, pp. 13-21.
  9. Oprogramowanie open source Pierra Raybauta: WinPython (Python 3.5), http://sourceforge.net/projects/winpython/
  10. Oprogramowanie Continuum Analytics: Anaconda (Python 3.5), https://store.continuum.io/cshop/anaconda/
Scientific publications of module course instructors related to the topic of the module:

Wykładowcy nie prowadza badań nad rozwojem omawianych metod i narzędzi, ale na co dzień korzystają z nich w swojej pracy naukowej.

Additional information:

None