*Official course description:*

### Introduction to Data Science and Programming

##### Course info

##### Programme

##### Staff

##### Course semester

##### Exam

##### Abstract

This course is an introduction to programming, Data Science and related foundations.

##### Description

The subjects covered in the course include:- Computer fundamentals
- Problem analysis, program design and implementation
- Python programming:
- Simple data types, methods, fields, variables, expressions
- Objects, special Python objects (Strings, Lists, Files), classes and class design, object-oriented design (object-oriented concepts: encapsulation, polymorphism, inheritance)
- Basic logic and its relation to Boolean types and operations, decision structures
- Loop structures
- Data collections
- Algorithm design and recursion
- Testing and documentation
- Foundational maths for programming and Data Science:
- Basic formal reasoning (basic first order logic, set theory, sequences and sums)
- Basic probabilities
- Induction and recursion
- Basic graph theory
- Introductory Data Science:
- Basic statistical and visual summaries and basic reporting
- Data curation and preparation for analysis
- Basic Machine Learning
- Basic definitions of graph theory and basic Network Analysis
- Big data and distributed computing

##### Formal prerequisites

The course is mandatory for students on first semester BSc in Data Science. The course is only open for students enrolled in BSc in Data Science.##### Intended learning outcomes

After the course, the student should be able to:

- Analyse a problem, with an aim to construct a short program in Python script to solve it.
- Design a program (given an analysis).
- Implement a program (given a design).
- Test the program (including explaining whether it works as desired, and measuring to what degree the testing supports such conclusions).
- Apply basic Python constructions.
- Evaluate and explain whether or how a basic Python construction is appropriate to solve a problem.
- Describe what a data science project is.
- Prepare data for a data science analysis.
- Create and explain basic statistical and visual summaries for datasets.
- Assess basic probabilities for events.
- Create and explain basic data science analyses (basic machine learning and basic network analysis).
- Describe and apply formal definitions, and construct induction proofs.
- reflect on and apply basic data structures for data science

##### Learning activities

There are 14 weeks of teaching activities.
Note that the course also includes weekly homework assignments and two mandatory coding tests, which are listed under mandatory activities.

The lectures cover topics in Data Science, Python programming, and any Supplementary Mathematics Foundation (beyond Gymnasium Maths) for this as listed above in the course content.

The exercise sessions are practical sessions associated with the topics covered in the weekly lectures. The exercises are also aimed at additionally equipping the students with the skill sets necessary for the successful completion of homework assignments.

##### Mandatory activities

The course includes:1) a maximum of 12 mandatory

**homework assignments**, and

2) a minimum of 1 and a maximum of 2 short

**coding tests**on premises, approximately 10 lectures and 20 lectures into the course.

All mandatory activities are pass/fail. Any coding parts of mandatory activities must be 100% correct for a pass. Any analysis parts of mandatory activities must be sound and well justified. The students will be granted a second attempt at all mandatory activity. The second attempt deadline will be set one week after the first deadline.

**Homework Assignments**

- Each homework assignment is closely tied to the weekly progression of the course, and also closely relates to the topics addressed in the lectures and the corresponding exercise sessions.
- The homework assignments require the students to closely observe the submission deadlines. The students are required to submit correct solutions to the mandatory homework assignments to be considered eligible for the exam. We allow for a maximum of 1 assignment to be failed/not submitted.

**Coding Tests**

- The coding test mandatory activity is a checkpoint to assess the adoption level for the skills required to participate in the remaining modules of the semester.
- The coding tests are based on the more basic programming exercises reviewed in Exercise Sessions.

The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.

##### Course literature

Distributed course notes, articles and chapters as needed.

##### Ordinary exam

**Exam type:**

A: Written exam on premises, internal (7-trinsskala)

**Exam variation:**

A33: Written exam on premises on paper with restrictions

**Exam description:**

Revised 17 December 2019

Duration: 4 hours

Aids allowed:

- Written and printed books and notes
- Electronic devices like E-reader and iPad only to access books and notes. Without programming capability nor software to do so.

Aids not allowed:

- Computers
- Internet access

##### reexam

**Exam type:**

Z. To be decided, - (-)

**Exam variation:**