Course detail
Computers and Programming 1
FEKT-KPC1AAcad. year: 2017/2018
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
Number of ECTS credits
Mode of study
Guarantor
Learning outcomes of the course unit
- 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
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
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
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
Basic literature
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
Classification of course in study plans