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: 
2023 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. Further, the final grade is based on  a portfolio evaluation composed by different deliveries during the semester. Students are expected to practice by themselves and follow a learning-by-doing principle. The lecturer will provide exercises for both group sessions and the portfolio evaluation.

Activities:
- Exercises in the group sessions
- Presentations of the portfolio assignments

- Mid-term project (1-3 students) 

- Final project (1-3 students)

Students get feedback on their work from peers and teacher. and the feedback should be used to revise the portfolio. Some elements of the portfolio will be handed in by the end of the semester to get a final grade for the course.  

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.

Exam categoryWeightInvigilationDurationGroupingComment exam
Exam category:
Submission
Form of assessment:
Handin - all file types
Exam code:
GRA 41521
Grading scale:
ECTS
Grading rules:
Internal examiner
Resit:
Examination when next scheduled course
100No1 Semester(s)Group/Individual (1 - 3)Portfolio evaluation consisting of different submissions during the semester. Note, not all of these are included in the final submission.
Exams:
Exam category:Submission
Form of assessment:Handin - all file types
Weight:100
Invigilation:No
Grouping (size):Group/Individual (1-3)
Duration:1 Semester(s)
Comment:Portfolio evaluation consisting of different submissions during the semester. Note, not all of these are included in the final submission.
Exam code:GRA 41521
Grading scale:ECTS
Resit:Examination when next scheduled course
Type of Assessment: 
Ordinary examination
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.