5010.14 - Introduction to Computer Science
Introduction to Computer Science
Upper Secondary School with B-level in mathematics.
The objective of this course is to give a broad introduction to computer science with basic concepts about software languages and software construction, computer hardware and operating systems, software algorithms, software engineering, networks and databases.
Bytes, logical algebra, binary and hexadecimal number systems. Operating systems and processes, computer systems (CPU, RAM, bus), machine code and execution of programs. Client-server,computer networks and protocols, the OSI-protocol model, internet (addresses, email, www), hardware and data storage (RAM, HD, CD, Tape). Algorithms, searching and sorting. Software languages (machine-, assembler- and high-level languages), programming paradigms, traditional programming: variables, data types, data structures, functions and subrutines. From code to machine code (lexical analysis, parsing, code generation). Software development, software life cycles, steps in software development (Analysis - design - implementation - testing). Modules, connection and cohesion, top down - bottom up. Data structures: pointers, arrays, lists, threads, stacks, queues, self-developed data types. File structures: sequential files, text files, index files. Databases: relational databases, SQL.
Learning and teaching approaches
Lectures, problem solving and exercises.
By the end of the course the student is expected to be able to: Demonstrate a basic understanding of: data representation, storage and manipulation; computer architecture, machine languages and operating systems; networking and the internet. Describe the concept of algorithms. Analyze problems and design simple executable algorithms (programs) in Python code. Describe traditional programming concepts and languages; Software Engineering concepts and methodologies; data abstractions; database systems and SQL.
Four-hour written examination. Textbook permitted (without computer).