course-details-portlet

TDT4114 - Applied Programming

About

New from the academic year 2024/2025

Examination arrangement

Examination arrangement: Portfolio
Grade: Letter grades

Evaluation Weighting Duration Grade deviation Examination aids
Portfolio 100/100

Course content

The subject provides an overview of various programming concepts, including lambda expressions, collections, iterators, and list comprehensions. It also introduces object-oriented programming. It covers important aspects of data storage and error handling, such as file handling, persistent storage of information, and exception handling.

Furthermore, it provides an introduction to data analysis and visualization using modules like NumPy, Matplotlib, SciPy, and Pandas. Predictive analysis is also included, with data preparation and the application of linear regression models using scikit-learn. Other applications include numerical differentiation and integration, solving equations, statistics, and probability theory. The subject includes project work where participants have the opportunity to delve into applications relevant to their own field of study.

There is also a focus on unit testing and version control using GitLab. The programming environments used are Visual Studio Code and/or Jupyter Notebook, with access to the Jupyter server at NTNU.

Programming concepts: Lambda expressions, collections, iterators, list comprehensions.

Introduction to Object-Oriented Programming: classes, objects, methods, inheritance, and polymorphism.

Data storage and error handling: File handling, persistent storage of information, and exception handling.

Data analysis and visualization: Processing and visualization of measurement data, iterative solution of equations. Basic understanding and use of modules like NumPy, Matplotlib, SciPy, and Pandas.

Predictive analysis: Data preparation and application of linear regression models. Basic understanding and use of scikit-learn.

Other applications: Numerical differentiation and integration, solving equations, statistics, and probability theory.

Unit testing & version control using GitLab.

Development environment: Visual Studio Code and/or Jupyter Notebook are used as programming environments. Everyone has access to the Jupyter server at NTNU.

Learning outcome

Skills

  • Basic programming skills, including understanding of variables, data types, control structures (such as loops and conditional statements), and functions in Python.
  • Basic concepts of object-oriented programming, such as classes, objects, methods, inheritance, and polymorphism.
  • File handling and error handling in Python, including how to read from and write to files, and how to handle exceptions.
  • Data analysis and visualization, including the use of libraries NumPy, Matplotlib, SciPy, and Pandas.
  • Basic statistics and probability, including understanding of concepts such as mean, median, standard deviation, correlation, probability, and probability distributions.
  • Linear regression and other predictive modeling techniques, including how to prepare data for modeling, how to train and validate a model, and how to interpret the model's results.
  • Numerical methods, including numerical differentiation and integration, and solving equations.
  • Use of programming environments such as Visual Studio Code and Jupyter Notebook, and version control with GitLab.
  • Unit testing in Python, including how to write and run tests using the unittest framework.

Competence:

  • Understanding and applying programming concepts such as lambda expressions, collections, iterators, and list comprehensions.
  • Understanding the principles of object-oriented programming, including inheritance and polymorphism.
  • Ability to handle data storage and errors, including file handling, persistent storage of information, and exception handling.
  • Understanding and applying basic principles of data analysis and visualization using the modules NumPy, Matplotlib, SciPy, and Pandas.
  • Ability to prepare data and apply linear regression models for predictive analysis using scikit-learn.
  • Ability to apply numerical differentiation and integration, solve equations, and understand basic statistics and probability.
  • Understanding and applying unit testing and version control with GitLab.
  • Ability to use programming environments such as Visual Studio Code and/or Jupyter Notebook effectively, and work with Jupyter server at NTNU.

Learning methods and activities

Self-study is encouraged for basic programming knowledge. Video and other learning resources are made available, and participants are guided in relevant topics they need to delve into.

  • Coding in the lab: Participants can engage in coding in the lab, where they gain practical experience in programming in Python. This may involve tasks such as writing functions, working with object-oriented programming, and handling files and errors.
  • Data analysis tasks: Participants can work on exercises involving data collection, cleaning, analysis, and visualization. This will provide them with practical experience using libraries such as NumPy, Matplotlib, and Pandas.
  • Predictive Modeling: Participants can work on tasks that require the use of linear regression and other predictive modeling techniques to analyze and interpret data.
  • Numerical Methods: Participants can solve problems involving numerical differentiation and integration, as well as equation solving.
  • Unit Testing: Participants can write and run tests to verify that their code functions as expected.
  • Version Control: Participants can use GitLab to version their code, providing them with experience in important software development practices.

Self-study: Participants may be encouraged to explore and learn more about Python and related topics on their own, using online resources, books, and so on.

Compulsory assignments

  • Mandatory assignments

Further on evaluation

Assessment format: Portfolio assessment forms the basis for the final grade in the course. The portfolio includes a programming project and a report. Feedback is provided during the semester on the content of the portfolio. In the case of voluntary repetition, failure, or valid absence, the entire portfolio must be retaken in the next implementation of the course.

Required previous knowledge

Knowledge equivalent to TDT4109 , TDT4110, TDT4111 (Information Technology, Introduction)

Course materials

Announced at the start of semester.

Credit reductions

Course code Reduction From To
TDT4100 3.7 AUTUMN 2024
TDT4102 3.7 AUTUMN 2024
DCST1007 3.7 AUTUMN 2024
INFT1006 3.7 AUTUMN 2024
More on the course

No

Facts

Version: 1
Credits:  7.5 SP
Study level: Foundation courses, level I

Coursework

Term no.: 1
Teaching semester:  SPRING 2025

Language of instruction: Norwegian

Location: Trondheim

Subject area(s)
  • Technological subjects
Contact information
Course coordinator:

Department with academic responsibility
Department of Computer Science

Examination

Examination arrangement: Portfolio

Term Status code Evaluation Weighting Examination aids Date Time Examination system Room *
Spring ORD Portfolio 100/100 INSPERA
Room Building Number of candidates
  • * The location (room) for a written examination is published 3 days before examination date. If more than one room is listed, you will find your room at Studentweb.
Examination

For more information regarding registration for examination and examination procedures, see "Innsida - Exams"

More on examinations at NTNU