Programplaner og emneplaner - Student
ACIT4420 Problem-solving with scripting Course description
- Course name in Norwegian
- Problem-solving with scripting
- Study programme
-
Master's Programme in Applied Computer and Information Technology
- Weight
- 10.0 ECTS
- Year of study
- 2019/2020
- Curriculum
-
FALL 2019
- Schedule
- Programme description
- Course history
-
Introduction
This course covers the use of scripting as a programming paradigm to solve challenges like system automation and integration as well as data analysis. Focus is on understanding how scripting combined with utility libraries can be helpful in solving a task. Scripts can vary in length and complexity, but are normally written in a high-level language that focuses on ease of expression and readability as well as a powerful set of libraries for integrating with other systems. Scripts can be written as a mean to create tools that eases scientific work or automates tasks. However, they can also be used to make systems interact that would normally not. In most automated workflows, there are several scripts acting as the glue between otherwise incompatible systems.
Required preliminary courses
No formal requirements over and above the admission requirements.
Learning outcomes
The student should have the following outcomes upon completing the course:
Knowledge
Upon successful completion of the course, the student:
- has a deep understanding of how scripting is utilised to automate common tasks
- has advanced knowledge of scripting strategies that allow his/her scripts to be robust against unforeseen failures and erroneous user input
- has advanced knowledge of how a code-base can be maintained through version control systems
- has a deep understanding of how scripts can be used to integrate two systems
- understands how scripting languages can be expanded through libraries
Skills
Upon successful completion of the course, the student:
- can design and implement script-based tools
- can design and implement a script-based service
- can utilize a specialized library to integrate their script with a subsystem or framework
- can evaluate and discuss how scripting may or may not facilitate system automation
- can explain and discuss how system automation forms a part of system administration best practices
- can utilize a version control system for their code-base
General competence
Upon successful completion of the course, the student:
- can analyse automation approaches with regard to robustness and in relation to his/her intended tasks
- can explain how systems automation and scripting is used to facilitate workflow and automation tasks to experts and non-experts alike
Content
- Individual student presentation (20 %)
- One individually written evaluation of another student presentation (1-2 pages) (10%)
- Individual final project report (between 25 and 35 pages) (70 %) All exams must be passed in order to pass the course.The assessment of the presentation cannot be appealed.
Teaching and learning methods
This course is divided into two parts. The first part with focus on covering the particular scripting language used in this class, such as its syntax, use and some extra libraries. The first part will also cover the practice of using a version control system as the means to store the code-base. During this part, students will meet for weekly lectures and lab-sessions where they work on exercises.
The second part will focus on the students completing a programming project. The project can be chosen from a portfolio of available problems. The student will work individually on the project and submit a final code-base that also includes documentation. During this part, there may be lectures if needed, but most of the time will be spent on individual supervision of students in lab-sessions.
Practical training
Lab sessions.
Course requirements
None.
Assessment
This course will present the state of the art in algorithms for machine learning on images and 3D data. After a brief introduction to image processing and 3D geometry, we will cover topics within both supervised and unsupervised learning. The course covers classical problems like classification, segmentation, and correspondence detection. Recent work on shape and image synthesis will also be discussed. We will in particular study deep neural architectures for 2D images and 3D data such as point clouds and shape graphs. Additionally, 3D shape design with generative models will be presented.
Permitted exam materials and equipment
Upon successful completion of the course, the candidate:
Knowledge
- has knowledge of classical problems within graphics and imaging that are applicable to machine learning, such as classification, segmentation, and correspondence detection.
- has a good understanding of problems related to generation of new images and 3D shapes.
Skills
- is able to apply state-of-the art machine learning algorithms to real-world problems related to imaging and 3D graphics.
Competence
- is aware of the state of the art in algorithms for machine learning on images and 3D data.
- has experience with real world problems within the course domain, with a focus on solutions using deep neural architectures.
Grading scale
Teaching approach is a combination of traditional weekly lectures and assignments, student- led seminars, and a final project. Lectures will present the core theory of the course content and homework will focus on theoretical knowledge. In student-led seminars, topical research papers will be presented and discussed. The final project exposes the student to a chosen real- world problem relevant to the course topic.
Practical training
The student will be exposed to programming with repositories such as ImageNet and ShapeNet and will have created solutions for real-world problems related to data-driven graphics and imaging.
Examiners
The following required coursework must be approved before the student can take the exam:
Two mandatory group assignments consisting of technical tasks, summarized in reports (about 10 pages each).