Course - Applied Programming - TDT4114
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 set of tasks 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.
Specific conditions
Admission to a programme of study is required:
Archives, Museums and Records Management (LTARKIV)
Digital Business Development (ITBAITBEDR)
Energy and the Environment (MTENERG)
Logistics - Engineering (FTHINGLOG)
Recommended previous knowledge
Basic programming
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 |
No
Version: 1
Credits:
7.5 SP
Study level: Foundation courses, level I
Term no.: 1
Teaching semester: SPRING 2025
Language of instruction: Norwegian
Location: Trondheim
- Technological subjects
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.
For more information regarding registration for examination and examination procedures, see "Innsida - Exams"