Scientific Programming

The cour­se con­sists of two modu­les:

Module 1 — Python pro­gram­ming and scien­ti­fic libra­ries

Computer pro­ces­sing is a key com­po­nent of modern data ana­ly­sis pipe­li­nes, and plays an increa­sin­gly impor­tant role in many fields of scien­ce. The goal of the fir­st modu­le cour­se is to intro­du­ce the Python pro­gram­ming lan­gua­ge, one of the most wide­ly used scien­ti­fic com­pu­ting lan­gua­ges, and to a col­lec­tion of libra­ries that can be used to ana­ly­ze data.

At the end of the modu­le, stu­den­ts are expec­ted to:

  • Remember the syn­tax and seman­tics of the Python lan­gua­ge;
  • Understand pro­grams writ­ten by others indi­vi­duals;
  • Analyze a sim­ple data ana­ly­sis task and refor­mu­la­te it as a pro­gram­ming pro­blem;
  • Evaluate which fea­tu­res of the lan­gua­ge (and rela­ted scien­ti­fic libra­ries) can be used to sol­ve the task;
  • Construct a Python pro­gram that appro­pria­te­ly sol­ves the task;
  • Evaluate the resul­ts of the pro­gram.

Module 2 — Algorithms and data struc­tu­res

Algorithmics is the scien­ce of algo­ri­thms. It inclu­des algo­ri­thm desi­gn, the art of buil­ding a pro­ce­du­re which can sol­ve cor­rec­tly and effi­cien­tly a pro­blem; and algo­ri­thm ana­ly­sis, the scien­ce of quan­ti­fy­ing the amount of resour­ces nee­ded by an algo­ri­thm to sol­ve a pro­blem.

The goal of this modu­le is to intro­du­ce stu­den­ts to the desi­gn and ana­ly­sis of algo­ri­th­mic solu­tions, throu­gh the pre­sen­ta­tion of the most impor­tant class of algo­ri­thms and the eva­lua­tion of their per­for­man­ce.

At the end of the modu­le, stu­den­ts are expec­ted to:

  • eva­lua­te algo­ri­th­mic choi­ces and select the ones that best suit their pro­blems;
  • ana­ly­ze the com­ple­xi­ty of exi­sting algo­ri­thms and algo­ri­thms crea­ted on their own;
  • desi­gn sim­ple algo­ri­th­mic solu­tions to sol­ve basic pro­blems.