Course detail

Computers and Programming 1

FEKT-KPC1EAcad. year: 2017/2018

Students become familiar with hardware architecture of computers including function of computer subsystems (processor, memory, periphery, and communication interface), computer networks, and university and faculty network. Further, introduction to operating systems and their services including file system are described. The second part of course is focused on task of algorithm development and programming in Matlab and in ANSI C up to building up own libraries and their applications. During computer practices, students will build up simple console applications in C language.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

The graduate is able (1) to describe hardware architectures of computers, (2) to define basic concepts of computer networks, (3) to define principles of operational systems, (4) to build up a simple console application in ANSI C, and (5) to build up an own library of functions in ANSI C.

Prerequisites

The subject knowledge on the secondary school level is required.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods include lectures and computer laboratories. All learning matters are published in open www pages. Students have to do an individual project.

Assesment methods and criteria linked to learning outcomes

Students can obtain 16 points for the activity in computer practices, 24 points for homeworks during the semester, 30 points for the final test, and 30 points (maximally) for an individual project in C.

Course curriculum

1. University information system, student accounts, login to BUT IS, passwords. BUT portal, STUDIS, e-learning system Moodle, Gigadisk. Usage rules and architecture computer network of FEEC. Electronic mail and its services. WiFi nets in FEEC. Department (DREL) information system.
2. Operating systems, UNIX/Linux. Access to server FEST, program PuTTY, basic commands, access privileges, file transfer, program WinSCP. Graphic file manager mc, inserting of own HTML pages to student server FEST. Computer networks, TCP/IP model, address IPv4 and IPv6, protocols TCP, UDP, ports, DNS, HTTP, HTTPS, FTP, anonymous FTP.
3. Architecture of computers, processors, memory and memory space, peripheries, communication interface.
4. Software development, operation code, instructions, assembler, high level programming languages, compilation, linking program. Program structure, algorithm, algorithmic flowchart, variables, data types, numerical formats and their representation in memory, arithmetic and logic operations. Application development using IDE Code::Blocks.
5. Introduction to C language, basic structure of C program, function main(), variables, arrays, expressions, arithmetic conversions, operators in C language, priority of operators, inputs, outputs, simple console application.
6. Statements in C language, branching statements - if, else, switch, case; loop statements - for, while, do-while; statements for program progress - break and continue.
7. Strings in C, library functions for programming with strings "stdio.h" and "string.h". String copying, searching in string, comparing of strings.
8. Pointers and arrays. Relationship of arrays and pointers. Arrays storage in memory. Indexes of array elements.
9. Functions in C language. Headers of functions with parameter, without parameter, parameters calling by value and by reference. Calling of the function, returning value. Recursive function. Building up of own library, linking its to application.
10. Advanced data types. Structures, unions, enumerative types, dynamic variables, allocation and deallocation in memory.
11. Programming with files in C. Library functions for programming with files, reading, writing. Text file processing.
12. Dynamic variables linking. Linear lists, trees. Example for dynamic database.
13. Advanced algorithms. Algorithms for maximum and minimum searching, sorting – selectsort, insertsort, bublesort.

Work placements

Not applicable.

Aims

The course is aimed to familiarize students with architecture of computer systems, with principle of computer subsystems (processor, memory, periphery, communication interface), with fundamental application of computer networks, university and faculty network, with operating systems DOS, Windows and Unix and their services and file system. The course is aimed also to learn students basic task of algorithmic thinking and algorithm programming using C programming language in standard ANSI C up to level, in which students are able to build up own libraries with own functions and to use them, to read from and write to files, to use structures and dynamic variables.m.

Specification of controlled education, way of implementation and compensation for absences

Evaluation of activities is specified by a regulation, which is issued by the lecturer responsible for the course annually.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Pecinovský R, Virius M: Učebnice programování - základy algoritmizace. Grada Publishing, Praha 1997. (CS)
Kabelová, A., Dostálek, L. Velký průvodce protokoly TCP/IP a systémem DNS. Computer Press, 2008. (CS)
Ličev, L., Morkes, D. Procesory - architektura, funkce, použití. Computer Press, ISBN: 80-7226-172-X (CS)
Kernighan, B. W., Ritchie, D. M. Programovací jazyk C. Brno: Computer Press, 2006. (CS)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme EEKR-BK Bachelor's

    branch BK-EST , 1. year of study, winter semester, compulsory

  • Programme EEKR-CZV lifelong learning

    branch ET-CZV , 1. year of study, winter semester, compulsory

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer