next up previous
Next: Graduate Courses 1996-98 Up: Course Descriptions Previous: Course Descriptions

Undergraduate Courses 1996-98

Introduction to Computing (2 cu)

Introduction to computers and data processing. Algorithms. Computer hardware. Operating systems. Applications software. Programming languages. Database systems. Communication networks. System analysis and design.

Introduction to Programming (4 cu)

The course provides the student with the basic principles of programming: algorithms, programming techniques, and object-orientation. Java is the language used, but all of its features are not covered.

Computer Systems Organization (3 cu)

Introduction. Data presentation, error detection and correction. Computer organization. Conventional machine level. Assembly language. Compilation, linking, loading. Input/Output. Secondary storage. Operating system. Data communication equipment and software.

Information Systems (4 cu)

Principles of relational databases, SQL, database programming, application development, databases and the WWW, user interfaces, information system development, object-oriented analysis, use case model, introduction to database design.

Programming Project (2 cu)

The student designs, documents and programs a complete, realistic program. In the course of the development she/he also gives small lectures and demonstrations about the project.

Data Structures (4 cu)

Basic data structures. Applications to algorithms. Analysis of algorithms. Implementations of data structures and algorithms. Memory management.

Concurrent Systems (4 cu)

Structure and implementation of concurrent and distributed systems. The main emphasis is on solving problems in operating systems.

Database Systems I (4 cu)

Databases and database management systems. Relational databases, relational algebra and calculus. File and index structures. Query processing. Transaction processing. Relational database design, functional dependencies and normalization. Object-oriented databases.

Theory of Computation (4 cu)

Finite automata and regular languages. Context-free grammars and languages. Rudiments of parsing theory and attribute grammars. Context-sensitive and type-0 grammars. Turing machines. Recursive and recursively enumerable sets. Computability and computational complexity.

Data Structures Project (2 cu)

A simulator or some other fairly large program is designed, programmed, tested and documented.

Information Systems Project (2 cu)

A small ADP-system is designed and programmed.

Computing Methodologies (3 cu)

A characterization of computer science, its problems, methods and applications by selected examples and discussions. Models as tools. A learning model. Human and scientific information processing: Perspectives on data, information, coding and computing, perception and thinking. Algorithms, why and how. L-systems as models. Iterated function systems. Discrete numerical computing. Pictures and graphics. Individual work.

Languages for Artificial Intelligence (3 cu)

Fundamentals of declarative and symbolic programming. LISP and PROLOG basics. Hands-on experimentations and implementations.

Computer Graphics (4 cu)

Overview of graphics systems. Output primitives and their attributes. Two-dimensional transformations. Windowing and clipping. Segments. Interactive input methods. Three-dimensional concepts, representations, transformations, viewing. Hidden-surface and hidden-line removal. Shading and color models. Modeling methods. Design of the user interface. Individual practical work.

Computer Uses in Education (4 cu)

Fundamentals of computer applications in education. The computer as a tutor, tool, and tutee. Computer assisted instruction (CAI) systems. Courseware design, development, and evaluation. Authoring systems and languages. Multimedia CAI. Intelligent CAI. Applications and research. Practical courseware designing in small groups.

Semantics of Programs (3 cu)

Axiomatic semantics of programs. Weakest precondition calculus for the guarded command language of Dijkstra. Development of small programs based on the programming logic.

Data Communications (4 cu)

The electrical interface. Data transmission. Data link control protocols. Local area networks. High-speed and bridged local area networks. Wide area networks. Internetworking. Transport protocols.

Programming in C (2 cu)

Language definition. Programming tools. General programming principles.

Programming Techniques (C++) (3 cu)

Abstract data types, class libraries, generic programming, object-oriented programming.

Programming Techniques (Ada) (3 cu)

Basic Ada data and control structures, packages, concurrency and object-oriented programming. Applicability of Ada in the implementation of a real-time system.

Software Engineering (4 cu)

Introduction to software engineering as a professional discipline. Models of software engineering. Team work. Project planning and organization. Requirements analysis and engineering. Software design. Implementation techniques. Testing. Debugging and maintenance. Software configuration management. Software quality assurance.

Software Engineering Laboratory (6 cu)

Each student takes part in a project where a group of students analyzes the requirements of a software product, designs, implements, and tests the product, using systematic software engineering methods and tools. The group assignment may also be focused on some sub-phase of the software life-cycle, such as evolution or maintenance of an existing software system.

UNIX Principles (1 cu)

Principles of the UNIX environment for end users, includes principles of file system, shell, wildcards, protection, I/O, text editing, regular expressions, sorting and searching, awk, program development, project maintenance, and networking commands.

UNIX Platform (3 cu)

The programming interface to the UNIX system: system calls and library functions for process control, memory management, file systems and peripherals, tools for interprocess communication.

Network Programming (4 cu)

Internet networking services provided to application programs and TCP/IP protocols, including design and implementation principles of these protocols. The focus is on practical aspects of designing and implementing distributed applications using these protocols.

Wireless Data Communication Networks (1 cu)

Basics of wireless data communication. GSM, wireless LANs, cellular telephone networks, packet radio networks, wireless LANs, satellites and UMTS.

Digital Signal Processing (3 cu)

Basics of digital signal processing. Applications, especially in the area of biological sciences.

Management of Research Data (3 cu)

Metadata. Data presentation and storage: files, trees, databases. Statistical packages. Explorative data analysis. Sampling. Bootstrapping and randomization. Data visualization.

Introduction to Document Preparation (2 cu)

HTML and WWW techniques, document preparation and electronic publishing.

Scientific Writing (4 cu)

Sources of scientific information. Use of libraries and scientific data bases. The structure and details of a scientific publication. Examples of scientific Finnish or Swedish. Three individual survey writing exercises.

Tutoring (1 cu)

In tutoring the second year students are divided into groups of ca. 15 students. Each group is led by a teacher or researcher (tutor) and the group meets monthly during two academic years. In the meetings students introduce matters related to their studies for discussion. In addition each student meets regularly with his/her tutor for private discussions to solve problems in his/her studies. The objective of tutoring is to reduce the number of student dropping out, uncover bottlenecks in the studies, and improve the relationships between students and teachers.



 
next up previous
Next: Graduate Courses 1996-98 Up: Course Descriptions Previous: Course Descriptions