Course detail
Computers and Programming 1
FEKT-BPC1AAcad. 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
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
Operational systems I - proces, running a proces, types of operational systems, multitasking, virtual computer
Operational systems II - Operational system MS Windows and UNIX, basic characteristics, pros and cons, comparison
Information transfer, computer networks - LAN, WAN, Intranet, Internet, Ethernet, topologies of local networks, technique of transfer, packet, datagram, datagram service, virtual connection, packet confirmation
Communication protocols, Internet - data transfer in Internet, protocol layers, IP protocol, TCP protocol, history of Internet, European networks TEN-34, TEN-155
Internet services, HTML language - basic services in Internet: ping, telnet, ftp, e-mail, news, web
Hypertext languages, HTML language
Introduction to programming I - basic data types, data types in C language
Introduction to programming II - algorithmization
Introduction to programming III - program structure, basic statements of C
Database systems - the use of databases, basic operations with a database, database control system, structure of a modern database system, data abstraction, types of database systems
PC hardware I - buses, procesors, operating memory, cache memory, CMOS memory, floppy drives
PC hardware II - hard drives, hard drive interfaces, CD-ROMs, extension cards
Exercise in computer lab
Teacher / Lecturer
Syllabus
E-mail - a system of mail delivery, redirection of E-mails, E-mail program Outlook Express
Library lesson - infomation sources, typology of dokuments, bibliographical record, anotation, abstract, information sorting, selection, search strategies, databases on CD-ROM
Internet I - the use of ping (connection verification), telnet (work on standalone computer), ftp (data transfer)
Internet II - search in Internet
Web I - web design in HTML
Web II - web design in HTML
Introduction to programming I - C compiler, compilation of a demonstration program, linker, running
Introduction to programming II - development of a program, inputs and outputs
Introduction to programming III - debugging of a program, verification
Introduction to programming IV - debugging of a program, verification
Hardware - demonstration: PC structure
Evaluation of tasks, discussion