Computers and Programming 1
FEKT-BPC1AAcad. year: 2016/2017
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.
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.
Recommended optional programme components
Recommended or required reading
Petrlík, L.: Jemný úvod do systému UNIX. Koop. České Budějovice 2000. ISBN 80-85828-24-6. (CS)
Lasser, J. Rozumíme Unixu. Computer Press, 2002. ISBN: 80-7226-706-X (CS)
Kabelová, A., Dostálek, L. Velký průvodce protokoly TCP/IP a systémem DNS. Computer Press, 2008. (CS)
Herout,P.: Učebnice jazyka C. Kopp. ISBN: 978-80-7232-383-8 (CS)
Kernigham, B.W. Richie, D.M (Virius,M.): Programovací jazyk C. Brno. Computer Press, 2006. ISBN 80-251-0897-X. (CS)
Kadlec,V.: Učíme se programovat v jazyce C. Computer Press, Praha, 2002. ISBN 80-7226-715-9 (CS)
Prokop, J.: Algoritmy v jazyku C a C++. Praha. Grada Publishing, 2009. ISBN 978-80-247-2751-6 (CS)
Planned learning activities and teaching methods
Techning methods include lectures, computer laboratories. Students have to create five 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 60 points for the tests during semester, up to 30 points for the final test.
Language of instruction
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.
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
The computer exercises is compulsory, the properly excused missed computer exercises can be compensate.