Course detail

Computers and Programming 1

FEKT-KPC1AAcad. year: 2018/2019

The first part of course familiarizes students with faculty and university information systems, foundations of informatics as numeral systems, binary arithmetic, decimal numbers representation, characters coding, Von Neumann principles and concept of the computer, foundations of the operating systems (OS), OS UNIX/Linux employing and foundations of computer networks. The second part is focused on algorithms development and foundations of C language programming. The students should learn to use C language variables, assignment commands, arithmetic, bitwise, logical and relation operators, branch statements, programming of loops and to employ functions.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Graduate should be able to:
- use FEKT/BUT information systems and network,
- express the number in the various numeral systems,
- express decimal number by IEEE 754 standard,
- describe basic and structured C language data types,
- apply C language statements and operators,
- design simple algorithm and create C programs for it,
- describe use of IP, TCP, UDP, HTTP, HTTPS, FTP a NTP protocol,
- describe function of DNS and DNSSEC.

Prerequisites

Without prerequisites.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Techning methods include lectures, computer laboratories. Students have to create six assignments during the course.

Assesment methods and criteria linked to learning outcomes

Up to 10 points for the programming of the assignments during the exercises, up to 90 points for the homeworks during semester.

Course curriculum

1. FEKT/BUT information systems, user accounts. FEKT/BUT Computer Network Operating Regulations. Access to the faculty email, www interface Horde. Email attachment filtering.
2. Email clients configuration. Email redirection. Wifi networks VUT and EDUROAM. VPN. Numeral systems, translation between numeral systems, binary arithmetic operations.
3. Negative numbers representation. Decimal numbers representation, IEEE 754 standard. Fractional representation of numbers, rounding.
4. Coding of the characters: ASCII, ISO-8859-2, UNICODE, UTF8. Von Neumann principles and concept. Machine instructions. Operating system (OS), role of OS, abstractions provided by OS.
5. OS UNIX/Linux. Shells. Base commands (pwd, cd, ls, cd, mkdir, rmdir, rm, du, df, ps, tar), filesystem access rights, chmod. File transfer by SCP and SFTP protocols, program WinScp. Graphical file manager mc, text editors pico and vi.
6. Algorithm, flow charts. Programming and markup languages. Structural and object programming. C language history and standards (K&R C, ANSI C (C89), C90, C99, C1X).
7. Base C program structure. Variables, variable identifiers. Definition and initialization of variables. Global and local variables, stack. Constants, constant variables, const modifier.
8. Assignment statements, L-value, R-value. Arithmetic and binary operators. Increment and decrement operators. Relational operators and logical operators. Priority of operators. Type conversion. Branch statements (if, else, switch, case).
9. One dimensional arrays. Strings. Loops implementation. Functions. Standard C library functions. I/O functions: scanf(), printf().
10. Recursive function calling. Structure variable, access to the members of the structure, reference operator. More dimensional arrays. Structure and array initialization. Enum type.
11. TCP/IP model, link layer addresses, types of IP addresses, IPv4 and IPv6 addresses, IPv6 interface identifiers. ARP protocol. IPv6 neighbor discovery.
12. TCP and UDP protocol, ports. DNS, DNSSEC. HTTP, HTTPS protocols, certificates, certificate authorities. How to create own WWW pages at student server FEST. Telnet program and test TCP connection by Telnet. FTP protocol, anonymous FTP. Time synchronization, NTP protocol.
13. Advance UNIX utilizing: ?,*, [] marks, standard I/O, error output, I/O redirection. Shell scripts. Regular expressions, grep and find programs.

Work placements

Not applicable.

Aims

The aim of the course is to familiar students with faculty and university information systems and computer network and to introduce them to the information science, algorithm development and C language programming.

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

Extent and forms are specified by guarantor’s regulation updated for every academic year.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Herout,P.: Učebnice jazyka C. Kopp. ISBN: 978-80-7232-383-8. (CS)
Kadlec,V.: Učíme se programovat v jazyce C. Computer Press, Praha, 2002. ISBN 80-7226-715-9 (CS)
Kernigham, B.W. Richie, D.M (Virius,M.): Programovací jazyk C. Brno. Computer Press, 2006. ISBN 80-251-0897-X. (CS)
Petrlík, L.: Jemný úvod do systému UNIX. Koop. České Budějovice 2000. ISBN 80-85828-24-6. (CS)
Prokop, J.: Algoritmy v jazyku C a C++. Praha. Grada Publishing, 2009. ISBN 978-80-247-2751-6 (CS)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme EECC Bc. Bachelor's

    branch BK-AMT , 1 year of study, winter semester, compulsory

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Exercise in computer lab

26 hod., compulsory

Teacher / Lecturer