Principles Of Computer Science 22018
Second Year / First Semester Course L-2 - 1049261
(A. A. 2018/2019)
Syllabus
The course aim to introduce computational thinking and the algorithmic approach to solving problems correctly and efficiently. Algorithms are ubiquitous in bioinformatics and are often at the interface of computer science and biology. Well established algorithmic techniques will be studied as well as ways to encode them in a computer program using python.
We will introduce the algorithmic approach and the theory of algorithms for studying correctness and efficiency, understanding what makes a good algorithm and how to classify them.
We will study characteristic algorithmic techniques and the relate-d computational ideas that are relevant to the field of biology and how to select the most suitable to solve a given task. Topics covered include
- Searching algorithms
- Divide-and-Conquer algorithms
- Clustering and Tree-based algorithms
We will work with Python and how to write a computer program encoding a given algorithm.
Location
All classes take place in Classroom Psicologia I, Fisiologia Generale e Antropologia Farmacia e Medicina (CU026, E01PSIL101)
Time Schedule
- Tuesday 14:00 - 16:00
- Thursday 14:00 - 16:00
ASSIGNMENTS
- 1st Assignment
Deadline: 22nd October 2018
- 2nd Assignment
Deadline: 7th December 2018
- 3rd Assignment
Deadline: 21th December 2018
- 4th Assignment
Deadline: 14th January 2019
Lecture Material
- Lecture 1: Tuesday, October 2, 2018. Lecture Slides in PDF
- Introduction to Computational Thinking
- First Assignment
- Lecture 2: Thursday, October 4, 2018. Lecture Slides in PDF
- The Art of Computer Programming by Donald Knuth
- Dynamic Programming
- Nim a mathematical game of strategy
- Lecture 3: Tuesday, October 9, 2018.
- Lecture 4: Thursday, October 11, 2018.
- Lecture 5: Tuesday, October 16, 2018. Lecture Slides in PDF
- Lecture 6: Thursday, October 18, 2018. Lecture Slides in PDF
- Lecture 7: Tuesday, October 23, 2018. Lecture Slides in PDF
- Lecture 8: Tuesday, November 6, 2018. Lecture Slides in PDF
- Lecture 9: Thursday November 8, 2018. Lecture Slides in PDF
- Lecture 10: Thursday, November 15, 2018. Lecture Slides in PDF
- Lecture 11: Tuesday, November 20, 2018. Lecture Slides in PDF
- Lecture 12: Thursday, November 27, 2018. Lecture Slides in PDF
- Lecture 13: Tuesday, November 29, 2018.
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Chapter 10 Defining Classes
- Sample Programs
- Python Underscore methods
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Lecture 14: Thursday, December 4, 2018.
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Chapter 11 Data Collections
- Sample Programs
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Lecture 15: Tuesday, December 4, 2018.Lecture Slides in PDF
- Lecture 16: Thursday, December 6, 2018. Lecture Slides in PDF
- Lecture 17: Friday, December 7, 2018.
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Chapter 12 Object Oriented Design
- Sample Programs
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Lecture 18: Thursday, December 11, 2018. Lecture Slides in PDF
- Lecture 19: Thursday, December 11, 2018. Lecture Slides in PDF
- Lecture 20: Friday, December 12, 2018.
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Chapter 13 Algorithm Design & Recursion
- Sample Programs
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Lecture 21: Thursday, December 13, 2018. Lecture Slides in PDF
- Lecture 22: Friday, December 14, 2018.
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Chapter 9 Simulation and Design
- Sample Programs
- Python Programming: An Introduction to Computer Science (Third Edition) by John M. Zelle, Ph.D.
- Lecture 23: Tuesday, December 18, 2018. Lecture Slides in PDF
Coding Material
The material related to python that was presented in class is available from as an open-source repository in GitHub.
References
- NEIL C. JONES AND PAVEL A. PEVZNER: An Introduction to Bioinformatics Algorithms. A Bradford Book, The MIT Press, Cambridge, Massachusetts, London, England, 2004.
- JOHN M. ZELLE: Python Programming: An Introduction to Computer Science (Third Edition)