GRA 4152 Object Oriented Programming with Python

GRA 4152 Object Oriented Programming with Python

Course code: 
GRA 4152
Department: 
Data Science and Analytics
Credits: 
6
Course coordinator: 
Rogelio Andrade Mancisidor
Course name in Norwegian: 
Object Oriented Programming with Python
Product category: 
Master
Portfolio: 
MSc in Data Science for Business
Semester: 
2024 Autumn
Active status: 
Active
Level of study: 
Master
Teaching language: 
English
Course type: 
One semester
Introduction

Data science requires the design of computer-intensive algorithms and routines, which are relatively easy to manage and further develop. In addition, many business relevant cases require handling large amounts of data in an efficient manner. This course gives you the knowledge and skills needed to program such algorithms using object-oriented programming. Further, to improve your productivity as a business-oriented data scientist you will learn how to keep track of your code as it evolves and facilitate peer collaboration.

Learning outcomes - Knowledge

By the end of the course, the student can:

  • Define and explain the fundamentals of object-oriented programming
  • Understand the concepts of classes, objects, methods, constructors, or inheritance
  • Describe what version control tools do, and how they contribute towards increased productivity in programming
Learning outcomes - Skills

After the completion of this course, the student can:

  • Use Python to design programs using object-oriented programming and design strategies for parallelizing functions
  • Use version control tools to track, share, and cooperate while coding a program
  • Be able to find errors and debug an algorithm
  • Present and explain the code's architecture to an audience
  • Handle large data sets with Python
General Competence

The student will be able to design computational and data intensive applications using object-oriented programming and present and explain the architecture to an audience. A successfull student can work efficiently individually, or in teams, using version control tools.

Course content
  • Recap: 
    - Datatypes, expressions, boolean variables, functions, loops and conditional statements
  • Introduction to object-oriented programming:
    - Classes, constructors and methods

  • Further topics in objected-oriented programming:
    - Inheritance, superclasses, and subclasses

  • Version control with Git and Github

          - Pull, commit, and push. 

          - Branching and merching

  • Parser for command line and parallelize functions.
  • Debugging and finding errors.
  • Technologies to handle large amounts of data.
Teaching and learning activities

This course combines both lectures and practical group sessions. The final grade is based on an individual final project and an oral presentation of it. Students are expected to practice by themselves and follow a learning-by-doing principle. The lecturer will provide exercises that shall be answered in the group sessions or by your own as a homework.

Activities:
- Exercises in the group sessions

- Optional presentation of excercises

- Final project (individual)

Students have the opportunity to present some of the exercises during the course to get feedback on their work from peers and teacher. 

Software: Python, Git and Github. 

Software tools
Software defined under the section "Teaching and learning activities".
Additional information

Please note that while attendance is not compulsory in all courses, it is the student’s own responsibility to obtain any information provided in class.

Qualifications

All courses in the Masters programme will assume that students have fulfilled the admission requirements for the programme. In addition, courses in second, third and/or fourth semester can have specific prerequisites and will assume that students have followed normal study progression. For double degree and exchange students, please note that equivalent courses are accepted.

Disclaimer

Deviations in teaching and exams may occur if external conditions or unforeseen events call for this.

Required prerequisite knowledge

Basic programming, e.g., EBA3400 Programming, data extraction and visualisation, or similar. It is an advange, not a prerequisite, to have taken any introductury course in statistics, e.g.  EBA 2904 Statistics with programming or EBA 3530 Causality, Machine Learning and Forecasting, since some of the applications in the course will be using statistical models.

Assessments
Assessments
Exam category: 
Submission
Form of assessment: 
Submission PDF
Exam/hand-in semester: 
First Semester
Weight: 
60
Grouping: 
Individual
Duration: 
1 Week(s)
Comment: 
The final project is complemented with an oral presentation 7-10 days after the final project is delivered.
Exam code: 
GRA 41522
Grading scale: 
ECTS
Resit: 
Examination when next scheduled course
Exam category: 
Activity, Oral
Form of assessment: 
Presentation
Exam/hand-in semester: 
First Semester
Weight: 
40
Grouping: 
Individual
Duration: 
25 Minute(s)
Comment: 
15 min oral presentation on the final project, followed by 10 min questions from the sensors.
Exam code: 
GRA 41523
Grading scale: 
ECTS
Resit: 
Examination when next scheduled course
Type of Assessment: 
Ordinary examination
All exams must be passed to get a grade in this course.
Total weight: 
100
Student workload
ActivityDurationComment
Teaching
36 Hour(s)
Seminar groups
14 Hour(s)
Student's own work with learning resources
130 Hour(s)
Sum workload: 
180

A course of 1 ECTS credit corresponds to a workload of 26-30 hours. Therefore a course of 6 ECTS credits corresponds to a workload of at least 160 hours.