next up previous
Next: Graduate Courses Up: Course Descriptions Previous: Course Descriptions

Undergraduate Courses

Introduction to Computing (2 cu) Introduction to computers and data processing. Algorithm. Computer hardware. Operating systems. Applications software. Programming languages. Database systems. Communication networks. System analysis and design.

Programming (Pascal) (4 cu) The course provides the student with the knowledge of the principles of an algorithmic language. The student will be able to program in Pascal and implement those programs in a microcomputer environment.

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) Data systems and systems development. Data flow techniques. Conceptual Modelling. Transaction Analysis. Data base design. Relational data model. SQL. User Interfaces. CASE tools.

Programming Project (2 cu) The student designs, documents and programs a complete, nearly 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 in Pascal. Memory management.

Concurrent Systems (4 cu) Basic concepts and problems in concurrent systems. Operating system concepts. Device, memory, file and process management. Single concurrent actions. Synchronization. Process communication. Deadlock and deadlock avoidance.

Database Systems I (4 cu) File structures. Databases and database management systems. Relational data bases. Relational algebra, calculus and query languages. Relational database processing. Database application development. Database design. Functional dependencies and normalization. Network database principles.

Theory of Computation (5 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 (3 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. Algorithm, 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.

Artificial Intelligence (4 cu) General owerview of the potential of AI in various kinds of problem solving is given. Main results in AI research and applications are presented. Also basic readiness to construct AI based software is provided. The course consists of overview, search and game playing, knowledge representation and reasoning, planning, probabililistic reasoning, rational decisions. Prerequisites: Basic ability to program in LISP.

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. 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.

Principles of Programming Languages (4 cu) History. Basic concepts of Ada. Type systems (Algol68, Pascal, Ada). Blocks, subroutines and parameter passing. Modules (Clu, Modula-2, Euclid, Ada). Classes and objects (Simula, C++, Smalltalk, Oberon). Exception handling (PL/I, Clu, Ada). Concurrency (Concurrent Pascal, Ada). Generics. Programming environments.

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 (3 cu) Language definition. Programming tools. General programming principles.

Software Engineering (8 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. 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 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) Programming interface to Unix system: system calls and library functions for process control, memory management, file systems and peripherals, tools for interprocess communication.

UNIX Networking (4 cu) Data communication protocols typically used in a UNIX environment are discussed including networking services provided to application programs, as well as design and implementation principles of these protocols. The focus is in the practical aspects of designing and implementing distributed applications using these protocols.

Social Role of Automatic Data Processing (2 cu) Information society. Information technology policy of Finland. Economic effects. Effects on employment. Quality of work. Educational impacts. Privacy legislation and other juridical issues. Effects of new telecommunication services.

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. Three individual survey writing exercises.



next up previous
Next: Graduate Courses Up: Course Descriptions Previous: Course Descriptions