AID201 Programming for Data Science
AID201 Programming for Data Science
Syllabus | International University of Sarajevo - Last Update on Sep 09, 2025
Artificial Intelligence and Data Engineering
Emine Yaman
Course Lecturer
Course Objectives
This course introduces the concepts and applications of data science using Python. Students will learn the basics of Python programming, data structures, and key libraries and tools for data analysis, visualization and machine learning. Emphasis is placed on applying Python skills to real-world data science challenges, enabling students to build practical solutions and gain hands-on experience in modern data-driven environments.
Learning Outcomes
After successful completion of the course, the student will be able to:
Course Materials
Required Textbook
McKinney, W. (2018). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. 2nd ed. O'Reilly Media. VanderPlas, J. (2016). Python Data Science Handbook: Essential Tools for Working with Data. O'Reilly Media.
Additional Literature
Grus, J. (2019). Data Science from Scratch: First Principles with Python. 2nd ed. O'Reilly Media. Klosterman, S. (2019). Data Science Projects with Python: A Case Study Approach to Gaining Valuable Insights from Real Data with Machine Learning. Packt Publishing.Teaching Methods
There will be a 1 hour of theory and explaining the background of the topic
Then we will continue with the programming and practice.
Weekly Topics
| Week | Topic | Readings / References |
|---|---|---|
| 1 | Introduction to course, installing Anaconda and interface, variables, numbers and Boolean values, strings, arithmetic operators, indexing, conditional statements | Chapter 1,2 |
| 2 | Defining functions, conditional statements and functions, built in functions, sequences, lists, tuples, dictionaries, loops | Chapter 3 |
| 3 | Introduction to Numpy, Numpy arrays, array indexing, operations in Numpy | Chapter 4 |
| 4 | Introduction to Pandas, series, data frames, missing data, merging, joining and concatenating, operations, input-output | Chapter 5 |
| 5 | Real life exercices | |
| 6 | Matplotlib and data visualization - Learn how to use Matplotlib pyplot module and object-oriented interface to create and customize various types of plots in Python . Learn how to use Matplotlib features such as axes, labels, titles, legends, annotations, colors, styles, grids, subplots, and interactive plots . Learn how to use Matplotlib to visualize different kinds of data such as histograms, bar charts, pie charts, line charts, scatter plots, box plots, etc | Chapter 9 |
| 7 | Seaborn and Advanced Data Visualization - Learn how to use Seaborn library to create high-level statistical data visualization in Python . Learn how to use Seaborn features such as themes, palettes, facets, grids, distributions, regressions, categorical plots, etc. Learn how to use Seaborn to visualize different kinds of data such as correlations, distributions, relationships, comparisons, etc. | Chapter 9 |
| 8 | Midterm Exam | |
| 9 | Data Cleaning and Preparation-Understanding data set, checking properties of dataset with main functions, missing values and possible solutions, outliers and possible solutions, visualization of missing values | Chapter 7 |
| 10 | Linear Regression-Training a Linear Regression model, train test split, creating and training the model, model evaluation | Chapter 5 |
| 11 | Logistic Regression-Exploratory data analysis, building a Logistic Regression model, train test split, training and predicting, model evaluation. | Chapter 5 |
| 12 | KNN Algorithm-Standardize the variables, train test split, building KNN, predictions and evaluations, choosing a K value, model evaluation. | Chapter 5 |
| 13 | Decision Trees- Exploratory data analysis, train test split, building a decision tree model, prediction and evaluation, tree visualization. | Chapter 5 |
| 14 | Real life exercices | |
| 15 | Presentations of projects |
Course Schedule (All Sections)
| Section | Type | Day 1 | Venue 1 | Day 2 | Venue 2 |
|---|---|---|---|---|---|
| AID201.1 | Course | Tuesday 09:00 - 11:50 | B F1.25 Computer Lab | - | - |
| AID201.1 | Tutorial | Wednesday 17:00 - 18:50 | A F1.18 - Computer Lab | - | - |
| AID201.2 | Tutorial | Friday 10:00 - 11:50 | A F2.13 | - | - |
Office Hours & Room
| Day | Time | Office | Notes |
|---|---|---|---|
| Wednesday | 10:00 - 12:00 | A F1.34 | |
| Thursday | 10:00 - 12:00 | A F1.34 | |
| Friday | 10:00 - 12:00 | A F1.34 |
Assessment Methods and Criteria
Assessment Components
Final Exam
AI: Not AllowedAlignment with Learning Outcomes : 1 2 3 4 5
Midterm
AI: Not AllowedAlignment with Learning Outcomes : 1 2 3 4 5
Homeworks
AI: Not AllowedAlignment with Learning Outcomes : 1 2 3 4 5
Term project and presentation
AI: Not AllowedAlignment with Learning Outcomes : 1 2 3 4 5
Lab assignments
AI: Not AllowedAlignment with Learning Outcomes : 1 2 3 4 5
IUS Grading System
| Grading Scale | IUS Grading System | IUS Coeff. | Letter (B&H) | Numerical (B&H) |
|---|---|---|---|---|
| 0 - 44 | F | 0 | F | 5 |
| 45 - 54 | E | 1 | ||
| 55 - 64 | C | 2 | E | 6 |
| 65 - 69 | C+ | 2.3 | D | 7 |
| 70 -74 | B- | 2.7 | ||
| 75 - 79 | B | 3 | C | 8 |
| 80 - 84 | B+ | 3.3 | ||
| 85 - 94 | A- | 3.7 | B | 9 |
| 95 - 100 | A | 4 | A | 10 |
Late Work Policy
Information about late submission policies will be shared during class and posted in this section. Please check back for official guidelines.
ECTS Credit Calculation
📚 Student Workload
This 6 ECTS credit course corresponds to 150 hours of total student workload, distributed as follows:
Lecture hours
42 hours ⏳ (14 week × 3 h)
Homeworks
15 hours ⏳ (5 week × 3 h)
Active labs
20 hours ⏳ (10 week × 2 h)
Home study
28 hours ⏳ (14 week × 2 h)
Midterm exam study
15 hours ⏳ (1 week × 15 h)
Final exam study
15 hours ⏳ (1 week × 15 h)
Term project/presentation
15 hours ⏳ (1 week × 15 h)
150 Total Workload Hours
6 ECTS Credits
Course Policies
Academic Integrity
All work submitted must be your own. Plagiarism, cheating, or any form of academic dishonesty will result in disciplinary action according to university policies. When in doubt about citation practices, consult the instructor.
Attendance Policy
Students are expected to adhere to the attendance requirements as outlined in the International University of Sarajevo Study Rules and Regulations. Excessive absences, whether excused or unexcused, may impact academic performance and eligibility for assessment. Mandatory sessions (e.g., labs, workshops) require attendance unless formally exempted. For detailed policies on absences, documentation, and penalties, please refer to the official university regulations.
Technology & AI Policy
Laptops/tablets may be used for note-taking only during lectures. Phones should be silenced and put away during all class sessions. Audio/video recording requires prior permission from the instructor.
Artificial Intelligence (AI) Usage: The use of AI tools (e.g., ChatGPT, Copilot, Gemini) varies by assessment component. Please refer to the AI usage indicator next to each assessment item in the Assessment Methods and Criteria section above. Submitting AI-generated content as your own work, where AI is not explicitly allowed, constitutes an academic integrity violation.
Communication Policy
All course-related communication should occur through official university channels (institutional email or SIS). Emails should include [AID201] in the subject line.
Academic Quality Assurance Policy
Course Academic Quality Assurance is achieved through Semester Student Survey. At the end of each academic year, the institution of higher education is obliged to evaluate work of the academic staff, or the success of realization of the curricula.
Learning Tips
Be prepared to contribute thoughtfully during class discussions, labs, or collaborative work. Active participation deepens understanding and encourages critical thinking.
Complete assigned readings or prep materials before class. Take notes, highlight key ideas, and jot down questions. Aim to grasp core concepts and their applications—not just facts.
Use course frameworks or methodologies to analyze problems, case studies, or projects. Begin early to allow time for reflection and refinement. Seek feedback to improve your work.
Don’t hesitate to reach out when something is unclear. Use office hours, discussion boards, or peer networks to clarify concepts and stay on track.
Syllabus Last Updated on Sep 09, 2025 | International University of Sarajevo
Print Syllabus
Referencing Curricula Print this page
| Course Code | Course Title | Weekly Hours* | ECTS | Weekly Class Schedule | ||||||
| T | P | |||||||||
| AID201 | Programming for Data Science | 3 | 2 | 6 | Tuesday 9:00-11:50 | |||||
| Prerequisite | CS103 | It is a prerequisite to | - | |||||||
| Lecturer | Emine Yaman | Office Hours / Room / Phone | Wednesday: 10:00-12:00 Thursday: 10:00-12:00 Friday: 10:00-12:00 |
|||||||
| eyaman@ius.edu.ba | ||||||||||
| Assistant | Harun Hadzo | Assistant E-mail | hhadzo@ius.edu.ba | |||||||
| Course Objectives | This course introduces the concepts and applications of data science using Python. Students will learn the basics of Python programming, data structures, and key libraries and tools for data analysis, visualization and machine learning. Emphasis is placed on applying Python skills to real-world data science challenges, enabling students to build practical solutions and gain hands-on experience in modern data-driven environments. |
|||||||||
| Textbook | McKinney, W. (2018). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. 2nd ed. O'Reilly Media. VanderPlas, J. (2016). Python Data Science Handbook: Essential Tools for Working with Data. O'Reilly Media. | |||||||||
| Additional Literature |
|
|||||||||
| Learning Outcomes | After successful completion of the course, the student will be able to: | |||||||||
|
||||||||||
| Teaching Methods | There will be a 1 hour of theory and explaining the background of the topic, then we will continue with the programming and practice. | |||||||||
| Teaching Method Delivery | Face-to-face | Teaching Method Delivery Notes | ||||||||
| WEEK | TOPIC | REFERENCE | ||||||||
| Week 1 | Introduction to course, installing Anaconda and interface, variables, numbers and Boolean values, strings, arithmetic operators, indexing, conditional statements | Chapter 1,2 | ||||||||
| Week 2 | Defining functions, conditional statements and functions, built in functions, sequences, lists, tuples, dictionaries, loops | Chapter 3 | ||||||||
| Week 3 | Introduction to Numpy, Numpy arrays, array indexing, operations in Numpy | Chapter 4 | ||||||||
| Week 4 | Introduction to Pandas, series, data frames, missing data, merging, joining and concatenating, operations, input-output | Chapter 5 | ||||||||
| Week 5 | Real life exercices | |||||||||
| Week 6 | Matplotlib and data visualization - Learn how to use Matplotlib pyplot module and object-oriented interface to create and customize various types of plots in Python . Learn how to use Matplotlib features such as axes, labels, titles, legends, annotations, colors, styles, grids, subplots, and interactive plots . Learn how to use Matplotlib to visualize different kinds of data such as histograms, bar charts, pie charts, line charts, scatter plots, box plots, etc | Chapter 9 | ||||||||
| Week 7 | Seaborn and Advanced Data Visualization - Learn how to use Seaborn library to create high-level statistical data visualization in Python . Learn how to use Seaborn features such as themes, palettes, facets, grids, distributions, regressions, categorical plots, etc. Learn how to use Seaborn to visualize different kinds of data such as correlations, distributions, relationships, comparisons, etc. | Chapter 9 | ||||||||
| Week 8 | Midterm Exam | |||||||||
| Week 9 | Data Cleaning and Preparation-Understanding data set, checking properties of dataset with main functions, missing values and possible solutions, outliers and possible solutions, visualization of missing values | Chapter 7 | ||||||||
| Week 10 | Linear Regression-Training a Linear Regression model, train test split, creating and training the model, model evaluation | Chapter 5 | ||||||||
| Week 11 | Logistic Regression-Exploratory data analysis, building a Logistic Regression model, train test split, training and predicting, model evaluation. | Chapter 5 | ||||||||
| Week 12 | KNN Algorithm-Standardize the variables, train test split, building KNN, predictions and evaluations, choosing a K value, model evaluation. | Chapter 5 | ||||||||
| Week 13 | Decision Trees- Exploratory data analysis, train test split, building a decision tree model, prediction and evaluation, tree visualization. | Chapter 5 | ||||||||
| Week 14 | Real life exercices | |||||||||
| Week 15 | Presentations of projects | |||||||||
| Assessment Methods and Criteria | Evaluation Tool | Quantity | Weight | Alignment with LOs | AI Usage |
| Final Exam | 1 | 35 | 1,2,3,4,5 | Not Allowed | |
| Semester Evaluation Components | |||||
| Midterm | 1 | 30 | 1,2,3,4,5 | Not Allowed | |
| Homeworks | 5 | 5 | 1,2,3,4,5 | Not Allowed | |
| Term project and presentation | 1 | 15 | 1,2,3,4,5 | Not Allowed | |
| Lab assignments | 10 | 15 | 1,2,3,4,5 | Not Allowed | |
| *** ECTS Credit Calculation *** | |||||
| Activity | Hours | Weeks | Student Workload Hours | Activity | Hours | Weeks | Student Workload Hours | |||
| Lecture hours | 3 | 14 | 42 | Homeworks | 3 | 5 | 15 | |||
| Active labs | 2 | 10 | 20 | Home study | 2 | 14 | 28 | |||
| Midterm exam study | 15 | 1 | 15 | Final exam study | 15 | 1 | 15 | |||
| Term project/presentation | 15 | 1 | 15 | |||||||
| Total Workload Hours = | 150 | |||||||||
| *T= Teaching, P= Practice | ECTS Credit = | 6 | ||||||||
| Course Academic Quality Assurance: Semester Student Survey | Last Update Date: 25/09/2025 | |||||||||
