Studies in Open University in English
Subject studies in English
Rest of subject studies courses are available in Finnish.
The student learns to
- summarize the key services of an operating system (OS) and their operation
- describe the essential structures of an OS together with their interfaces
- describe the position of OS in modern data processing environment
- describe the structure and the functionalities of operating systems
- describe the control systems and process and thread management
- describe different methods to protect processes and the use of different processor states (user/privileged) for that purpose
- describe different types of thread execution (user-level, kernel-level)
- describe basic process scheduling techniques in uniprocessor, multiprocessor, and real-time systems
- compare the suitability of different scheduling algorithms on different work loads
- choose (and justify the choice) the most practical way to execute threads for given software system
- explain how shared memory and other methods are used for process and thread communication
- explain the need for concurrency using examples illustrating concurrent operations of hardware and software level
- explain the importance of different scenarios when examining the execution of concurrent programs
- provide examples of common problems that may results in an incorrect concurrent solution
- explain the nondeterministic nature of process execution and its implications
- explain the advantages, disadvantages, implementation levels, and methods of concurrency
- explain the requirements for concurrency solutions (e.g., in terms of correctness in all scenarios) and finding a scenario leading to failed outcome
- explain the basic concepts of concurrent execution: atomicity, critical section, synchronization, communication, deadlock
- explain the basic concurrency problems: critical section problem, turn ticket, readers-writers, producer-consumer, client-server, and boom synchronization
- describe the occurrence of a deadlock and explain necessary and sufficient conditions for a deadlock to occur
- design a solution to critical section problem using the most appropriate method, e.g., interrupt disabling, busy-wait, semaphore, monitor, messages
- explain the semaphore and monitor structures, and use them correctly in problem solving
- apply concurrency handling mechanisms to solve practical problems
- explain how deadlock can be detected using DDA-algorithm, how to recover from deadlock, and how a deadlock can be prevented using, e.g., banker's algorithm
- describe the general principles of implementing virtual memory (VM) together with the key concepts (paging, page table, address translation, translation lookaside buffer, page faults)
- describe multi-level paged VM operation
- simulate at algorithm level the address translation in (multi-level) paged VM system
- analyze the effect of page size in process operation and page table size, and justify a choice made for a certain page size
- describe the advantages and disadvantages of (multilevel) paging and segmentation methods
- describe at algorithm level the VM implementation: page fetch and replacement policies, resident set size management policies, multiprogramming level policies
- describe the basic structure of the file system and its components
- explain the communication between peripheral devices and operating system
- explain the basic scheduling algorithms for hard disks
- explain the basic idea of RAID, and explain different RAID implementations comparing their features
- explain different file organization types and when they should be used (pile, sequential, indexed sequential, indexed, hashed)
- explain the use of B-trees for index implementation for files
- explain basic OS security threats and the methods to secure the operating system against them
- describe access control mechanism in operating systems
Computer Organization I or equivalent knowledge
Cloud based web applications
This free course series offers you basic skills of modern web application development. It is well suited to both computer science professionals and students alike. The prerequisites of the course series are basic studies in computer science.
1-3 credits depending on course exercise completion.
1. credit: Student has learned what docker is and knows how to use it in different scenarios.
2. credit: Student has general understanding of docker-compose and is able to implement advanced docker configurations.
3. credit: Student has deeper understanding of docker ecosystem and its use cases.
Student needs to have good CLI skills and a general understanding of software development.
Artificial intelligence and Data science
In this free and open online course series you will learn the basics about artificial intelligence and machine learning. There are no prerequisite of prior programming skills. The more advanced courses of the module provide techniques for implementing AI systems.
The course can be completed on three difficulty levels. The following learning objectives are achieved after completing the course on the advanced level. On the intermediate level, the same objectives are partially achieved. After the course, the student is able to:
- describe different types of AI such as optimization, reasoning, and learning
- choose a suitable AI approach to solve simple tasks such as route planning, probabilistic inference, and pattern recognition
- implement a straightforward brute-force optimization algorithm
- implement simple probabilistic inference based on statistical data using the Bayes rule
- build linear regression models from data, and use the models to predict variables of interest, such as apartment prices
- use the nearest neighbor method to predict variables of interest
- use cross-validation to avoid under- and overfitting
- build and apply logistic regression and simple neural network models for prediction
The programming exercises require beginner level familiarity with the Python programming language. No other prerequisites exist.
- Can confidently write basic level Python programs without constantly consulting language/library documentation.
- Can apply efficient and elegant Pythonic idioms to solve problems
- Knows the different phases of data analysis pipeline
- Knows the fundamental data types array, Series and DataFrame
- Can clean data to form consistent Series and DataFrames without anomalies
- Can select subsets, transform, reshape and combine data
- Can extract summary statistics from data (min, max, mean, median, standard deviation)
- Knows the main types of machine learning (supervised learning: regression and classification, unsupervised learning: clustering, dimensionality reduction, (density estimation))
- Knows the estimator API of Scikit-Learn (choose model class, choose hyperparameters, form feature matrix and target vector, fit model, transform data or predict labels or responses)
- Can form feature matrix and target vector suitable for Scikit-Learn's model fitting algorithms
- Can visualize data as simple plots or histograms
- Can apply basic data analysis skills to a simple project on an application field
Programming skills and basic knowledge of probability calculus and linear algebra.
The compulsory basic level courses in Bachelor's Programme in Science form a sufficient background.
This course focuses on big data platforms and on key algorithmic ideas and methods used to implement them. After completing this course you are able to list many of the key technologies used in big data processing and to select suitable methods for solving challenging big data processing tasks using cloud computing technologies. You will also be able to compare the scalability and fault tolerance implications of using the selected methodologies.
The student must have basic programming skills, skills to work with command line tools in Linux, and basic knowledge in database systems.
Cyber Security Base
Cyber Security Base with F-Secure is a free course series by University of Helsinki in collaboration with F-Secure Cyber Security Academy that focuses on building core knowledge and abilities related to the work of a cyber security professional.