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

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 five assignments during the course.

Assesment methods and criteria linked to learning outcomes

Up to 90 points for for the tests during semester, up to 10 points for activity during the exercises.

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

The computer exercises is compulsory, the properly excused missed computer exercises can be compensate.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Petrlík, L.: Jemný úvod do systému UNIX. Koop. České Budějovice 2000. ISBN 80-85828-24-6. (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)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme EECC Bc. Bachelor's

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

  • Programme EEKR-CZV lifelong learning

    branch EE-FLE , 1 year of study, winter semester, compulsory

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

Architecture of computers - von Neumann architecture, controller, operating memory, instruction, representation of numbers and characters, information coding, coding pages
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

26 hod., compulsory

Teacher / Lecturer

Syllabus

Introduction - introduction to computer lab and directive "Rules of computer lab operation at BUT", how to log on, operational systems Novell and Windows - description of environment, basic services and applications
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