Knowledge of algorithms and programming is cornerstone for the study of data science and analytics, and fundamental for general computer applications in sciences and engineering. The course covers the fundamental concepts of algorithms, data types, control structures, file handling, classes and methods. These algorithmic tools are bridged to Python programming concepts: data types and structures, processing control flow, functions definition, file I/O, and classes and methods for object-oriented programming.
No prior knowledge at the university level is required.
The main goal of this course is studying the foundations of programming and best-practice implementations in the general-purpose Python language. The specific objectives are providing Students with the following capabilities
•Propose algorithmic solutions to basic problems in Data Science, Statistics and fundamental Mathematics.
•Construct programs appropriately using Python data structures, flow control and managing file primitives, as well as modularization units.
•Understand the foundations of object-oriented programming and use Python classes for solving problems in the aforementioned application fields.
1) Number systems, stored-program computer model & number representation.
2) Number systems, stored-program computer model & number representation.
3) Sequential and conditional control structures: Boolean or logical operations. Conditional or selection control structures (simple, multiple & nested).
4) Iteration control structure: for loops & while loops: nested loops, for & while combinations, break statement.
5) Arrays data structures & operations: Vectors & matrices. Element-wise and array-wise operations, element search and ordering methods.
6) Python data structures: Lists, Dictionaries, Sets & Tuples: Creation, operations & applications.
7) Functions in Python: Concept (reusable code), argument passing, examples, recursion.
The subject has two teaching sessions every week. Each Session is divided into Two parts: a first part is masterful in which the teacher explains the new Contents and 1 Second in which the students work in new Exercises to consolidate the subject. Every two or three sessions, individual or group evaluation activities are carried out by means of written tests, collection of exercises carried out at home, etc.
1)Practice evaluation activities 20 %
2) Midterm (coding section + theory) 30%
3) Group project (report + oral presentation) 20%
4) Final (coding section + theory) 20%
5) Class participation 10%
Use of AI tools: If AI tools are used in any activity, a paragraph should be indicated stating what AI was used for and what indications were used to obtain the results. Failure to do so is a violation of academic honesty policies.
1)Practice evaluation activities 20 %
2) Midterm (coding section + theory) 30%
3) Group project (report + oral presentation) 20%
4) Final (coding section + theory) 20%
5) Class participation 10%
Use of AI tools: If AI tools are used in any activity, a paragraph should be indicated stating what AI was used for and what indications were used to obtain the results. Failure to do so is a violation of academic honesty policies.
A recommended bibliography includes the following references
•Barry, P. (2017). Head first Python, 2nd edition: A brain-friendly guide. O'Reilly Media, Inc.
•Phillips, D. (2015). Python 3 Object-oriented programming, 2nd edition. Packt Publishing Ltd.
The professor may provide additional practice material.