===== Practical Introduction to Programming for Scientists 2011 ===== FINAL EXAM MONDAY MAY 9, during the regular class period. ||Lecture 1 - Course overview, datatypes in Python ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture1.mov|Lecture Video]] ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture1.pdf|Lecture Notes]] ||[[https://blake.bcm.edu/dl/EMAN2/homework1.pdf|Homework 1]] || ||Lecture 2 - Program flow, more on data storage ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture2.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture2.pdf|Lecture Notes]] ||[[https://blake.bcm.edu/dl/EMAN2/homework2.pdf|Homework 2]] || ||Lecture 3 - Intro to file storage, libraries ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture3.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture3.pdf|Lecture Notes]] ||[[https://blake.bcm.edu/dl/EMAN2/homework3.pdf|Homework 3]] || ||Lecture 4 - More programming examples, file manipulation, numbers ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture4.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture4.pdf|Lecture Notes]] ||[[https://blake.bcm.edu/dl/EMAN2/homework4.pdf|Homework 4]]||[[https://blake.bcm.edu/dl/EMAN2/lecture4_files.zip|Other needed files]]|| ||Lecture 5 - Object oriented programming ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture5.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture5.pdf|Lecture Notes]] ||[[https://blake.bcm.edu/dl/EMAN2/homework5.pdf|Homework 5]]||[[https://blake.bcm.edu/dl/EMAN2/lecture5_files.zip|Other needed files]]|| ||Lecture 6 - PIL ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture6.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture6.pdf|Lecture Notes]] ||[[https://blake.bcm.edu/dl/EMAN2/homework6.pdf|Homework 6]]|| ||Lecture 7 - Numpy/Scipy ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture7.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture7.pdf|Lecture Notes]] ||[[https://blake.bcm.edu/dl/EMAN2/homework7.pdf|Homework 7]]|| ||Lecture 8 - HTML/XML/Web ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture8.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture8.pdf|Lecture Notes]] ||[[https://blake.bcm.edu/dl/EMAN2/homework8.pdf|Homework 8]]|| ||Lecture 9 - Network Programming & Sockets ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture9.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture9.pdf|Lecture Notes]] ||No Homework|| ||Lecture 10 - Gui programming with Tkinter ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture10.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture10.pdf|Lecture Notes]] ||Homework in notes|| ||Lecture 11 - Web Scripting & Regular Expressions ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture11.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture11.pdf|Lecture Notes]] ||No Homework|| ||Lecture 12 - Parsers ||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture12.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture12.pdf|Lecture Notes]] ||No Homework|| ||Lecture 13 - Databases ||No Lecture Video (sorry)||[[https://blake.bcm.edu/dl/EMAN2/lecture13.pdf|Lecture Notes]] ||No Homework|| ||Lecture 14 - Debugging, Profiling, Parallelism||[[https://blake.grid.bcm.edu/dl/intro_programming/lecture14.mov|Lecture Video]] ||[[https://blake.bcm.edu/dl/EMAN2/lecture14.pdf|Lecture Notes]] ||No Homework|| Examples of past class projects: * Analysis of DNA capture targets that failed during sequencing * Calculating the probabilities of different discrete distributions * A Candidate Gene Searcher * Calculating dN/dS automatically from pairs of orthologs by pipelining clustal and paml * 96-well reader and calculator * PCR Annealing Temperature Calculator * One click identifier for PDF files * Scraping and processing microarray data from the lab webpage Note for windows users. One of the students found this link useful: [[https://www.neuralwiki.org/index.php?title=Guide_to_installing_Python_in_Windows_Vista]]