Syllabus

Part A — Python programming and scientific libraries

  • Introduction to the Python language: 
    • The for­mal syn­tax and seman­tics of the language
    • The soft­ware plat­form, inclu­ding user inter­fa­ces (the inter­pre­ter) and the Python stan­dard library
    • Basic data­ty­pes: num­bers (Booleans, inte­gers, ratio­nals) and text (strings)
    • Collections: lists, tuples, and dic­tio­na­ries (maps)
    • Complex sta­te­men­ts (con­di­tio­nal and ite­ra­ti­ve code), func­tions, and modules
  • Introduction to the exter­nal libra­ries that form the bac­k­bo­ne of the data ana­ly­sis pipe­li­ne in Python: 
    • The Pandas table pro­ces­sing libra­ry, for rea­ding, wri­ting, and ana­ly­zing tabu­lar data, with nati­ve sup­port for sta­ti­sti­cal com­pu­ting and summarization
    • The Numpy nume­ri­cal libra­ry, with sup­port for a mul­ti­tu­de of com­mon ope­ra­tions: linear alge­bra, ran­dom num­ber generation
    • The Matplotlib libra­ry, for visua­li­zing richly anno­ta­ted plots
    • (For QCB): The BioPython libra­ry, for loa­ding and mani­pu­la­ting a varie­ty of stan­dard bio­lo­gi­cal data for­ma­ts, inclu­ding sequen­ce data and struc­tu­ral pro­tein annotations
    • (For DataScience): Additional libra­ries like Beatiful Soap, etc.

Part B — Algorithm and Data Structures

  • Introduction to algo­ri­thms and algo­ri­thm analysis.
  • Algorithmic com­ple­xi­ty.
  • Data struc­tu­res
    • High level overview
    • Sequences, maps (ordered/unordered), sets
    • Data struc­tu­re imple­men­ta­tions in Python
  • Trees
    • Definition of the tree data structures
    • Visits
  • Graphs
    • Definition of the gra­ph data structures
    • Visits
    • Algorithms on graphs
  • Algorithmic tech­ni­ques
    • Divide-et-impe­ra
    • Dynamic pro­gram­ming
    • Greedy
    • Backtrack
  • Brief intro­duc­tion of the NP class
Scroll to top