COURSE INFORMATION
Course Title: INTRODUCTION TO ALGORITHMS AND PROGRAMMING II
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 114 B 2 2 0 2 3 5
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) Dr. Aida Dhima abitri@epoka.edu.al
Main Course Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Dr. Aida Dhima abitri@epoka.edu.al , Tuesday, 12:30-14:30
Second Course Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: M.Sc. Ardita Dorti adorti@epoka.edu.al
Language: English
Compulsory/Elective: Compulsory
Study program: (the study for which this course is offered) Bachelor in Business Informatics (3 years)
Classroom and Meeting Time: E214, Tuesday 8:30-12:30
Teaching Assistant(s) and Office Hours: NA
Code of Ethics: Code of Ethics of EPOKA University
Regulation of EPOKA University "On Student Discipline"
Attendance Requirement: 75% Mandatory
Course Description: The aim of this course is to introduce students to advanced concepts of Python Programming language. The students will learn how to retrieve and store data from files, design graphical user interfaces through Matplotlib, and analyze data using Numpy and Pandas.
Course Objectives: The objective of this course is to teach students advanced concepts of algorithms and programming in Python. - Students should be able to apply sorting and searching algorithms in Python in different data structures. - Students should be able to input/output data from different sources in Python. - By the end of this course students should know how to use Matplotlib library and data visualization. - By the end of this course students should know how to use Numpy and Pandas libraries for data analysis.
BASIC CONCEPTS OF THE COURSE
1 Numpy
2 2D arrays
3 Sorting Algorithms
4 Searching Algorithms
5 GUI
6 Matplotlib
7 Data analysis
8 Pandas
9 Lists, tuples
10 Strings, and Dictionaries
COURSE OUTLINE
Week Topics
1 Introduction to course outline. Students are introduced to the main concepts that this courses focuses.
2 Files and exceptions. This chapter introduces sequential file input and output. The student learns to read and write large sets of data and store data as fields and records. The chapter concludes by discussing exceptions and shows the student how to write exception-handling code.
3 Lists and Tuples. This chapter introduces the student to the concept of a sequence in Python and explores the use of two common Python sequences: lists and tuples. The student learns to use lists for arraylike operations, such as storing objects in a list, iterating over a list, searching for items in a list, and calculating the sum and average of items in a list.
4 More about Strings. In this chapter, the student learns to process strings at a detailed level. String slicing and algorithms that step through the individual characters in a string are discussed, and several built-in functions and string methods for character and text processing are introduced.
5 Dictionaries and Sets. This chapter introduces the dictionary and set data structures. The student learns to store data as key-value pairs in dictionaries, search for values, change existing values, add new key-value pairs, and delete key-value pairs.
6 Sorting algorithms in Python. During this chapter students will learn how to apply different sorting algorithms in lists and 2D lists.
7 Review Session and Exercises
8 Midterm exam
9 2D lists, different types of searching algorithms. During this chapter students will learn how to apply different searching algorithms in lists and 2D lists.
10 Numpy. Students should be able to use Numpy library which is the core library for scientific computing in Python. It provides a high-performance multidimensional array object, and tools for working with these arrays.
11 Pandas. During this chapter students will learn how to manipulate and analyse data using Pandas library which acts as a wrapper over Numpy and Matplotlib libraries.
12 GUI- Python Programming. This chapter discusses the basic aspects of designing a GUI application. Fundamental widgets, such as labels, buttons, entry fields, radio buttons, check buttons, and dialog boxes, are covered
13 GUI II- This chapter discusses Matplotlib library. Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python. Python Programming Matplotlib II
14 Review and Excercises
Prerequisite(s): -
Textbook(s): Tony Gaddis, Haywood Community College - Starting Out with Python, Global Edition, 5th Edition-Pearson (2021) David Amos, Dan Bader, Joanna Jablonski, Fletcher Heisler - Python Basics_ A Practical Introduction to Python 3-Real Python (2021)
Additional Literature: -Engr. Michael David - A Practical Introduction to Python Programming _ Hand-On Machine Learning With Python (2021) -Jim R. Parker - Python_ An Introduction to Programming-Mercury Learning and Information (2021) -John V. Guttag - Introduction to Computation and Programming Using Python-The MIT Press (2021) -Levitin, Anany - Introduction to the design and analysis of algorithms-Pearson (2019) -Publishing, AI - Python Pandas for Beginners_ Pandas Specialization for Data Scientist (Python for Beginners in Data Science and Data Analysis Book 2)-AI Publishing LLC (2021) -Cajic, Dino - An Illustrative Introduction to Algorithms (2019)
Laboratory Work: Yes
Computer Usage: Yes
Others: No
COURSE LEARNING OUTCOMES
1 To apply advanced algorithms in data structures
2 To apply dictionaries in real world problems
3 To input and output data from different sources, such as; files and web.
4 To apply data visualisation using Matplotlib
5 To apply Numpy library for data analysis
6 To apply Pandas library for data manipulation and analysis
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Business Informatics (3 years) Program
1 Identify activities, tasks, and skills in management, marketing, accounting, finance, and economics. 5
2 Apply key theories to practical problems within the global business context. 5
3 Demonstrate ethical, social, and legal responsibilities in organizations. 5
4 Develop an open minded-attitude through continuous learning and team-work. 5
5 Integrate different skills and approaches to be used in decision making and data management. 5
6 Combine computer skills with managerial skills, in the analysis of large amounts of data. 5
7 Provide solutions to complex information technology problems. 5
8 Recognize, analyze, and suggest various types of information-communication systems/services that are encountered in everyday life and in the business world. 5
COURSE EVALUATION METHOD
Method Quantity Percentage
Midterm Exam(s)
1
40
Final Exam
1
30
Other
1
30
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 3 48
Hours for off-the-classroom study (Pre-study, practice) 16 2 32
Mid-terms 1 10 10
Assignments 0
Final examination 1 15 15
Other 1 20 20
Total Work Load:
125
Total Work Load/25(h):
5
ECTS Credit of the Course:
5
CONCLUDING REMARKS BY THE COURSE LECTURER

Students should uphold the code of ethics in all academic endeavors. Cheating in any form is strictly prohibited. Please be aware that any misbehavior report will result in an automatic evaluation of zero points for the respective exam.