Course detail

Computers and Programming 1

FEKT-BPC1TAcad. year: 2017/2018

In this course, students learn about computer network solutions and the potentials of university and faculty networks. Part of the course is to introduce the basics of operating systems, their services, and file systems. The course focuses on practical skills of algorithm development and programming in the C language according to the ANSI standard, to the level of preparation of customized functions and their use.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Students will be able to:
- use the University Information System and the Moodle learning system
- configure an e-mail client
- connect a device to the BUT Wi-Fi network,
- control the development environment Microsoft Visual Studio,
- program basic tasks in the C language according to the ANSI standard, compile program and use proper functions
- debug programs in the C language and look for errors,
- design the structure of the program.

Prerequisites

The subject knowledge on the secondary school level is required.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Techning methods include lectures and computer laboratories. Course is taking advantage of e-learning (Moodle) system. Students have to write a single project during the course.

Assesment methods and criteria linked to learning outcomes

Requirements for successful course completion are specified by the guarantor’s regulation updated for every academic year.

Course curriculum

1. Faculty computer network, faculty UNIX server, E-mail, Wi-Fi.
2. Properties of algorithms, notations algorithms.
3. Design and implementation of algorithms. Introduction to the development environment MS Visual Studio 2012.
4. Principles of high level programming languages. Basic building blocks of program.
5. Simple data types in C. One-dimensional and multi-dimensional arrays of variables. Expressions and statements.
6. Pointer type.
7. Functions, function parameters in the C language. Passing values by reference, passing by value.
8. Management structure. The block structure of program, the scope of validity of identifiers.
9. Structured data types. Enums.
10. Text files, standard input/output. Interaction of the program with the user.
11. Dynamic variables. Linked structures.
12. Numerical methods in programming. Recursion. Sorting algorithms.

Work placements

Not applicable.

Aims

To acquaint students with the basics of computer networks, the architecture of a university and faculty network inclusive of services, and operating systems such as DOS, Windows and Unix and their services, and file systems. To acquaint students with the basics of programming and algorithmization, using the ANSI C language and development tool Visual Studio.

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

Pecinovský R, Virius M: Učebnice programování - základy algoritmizace. Grada Publishing, Praha 1997. (CS)
Kabelová, A., Dostálek, L. Velký průvodce protokoly TCP/IP a systémem DNS. Computer Press, 2008. (CS)
Lasser, J. Rozumíme Unixu. Computer Press, 2002. ISBN: 80-7226-706-X (CS)
Kernighan, B. W., Ritchie, D. M. Programovací jazyk C. Brno: Computer Press, 2006. (CS)
Prokop, J. Algoritmy v jazyku C a C++. Praha: Grada Publishing, 2008 (CS)
Raida, Z., Fiala, P. Počítače a programování 2. Brno: FEKT VUT v Brně, 2002. (CS)
Virius, M. Jazyky C a C++. Komplexní kapesní průvodce. Praha: Grada Publishing, 2005 (CS)
Kernighan, B. W., Ritchie D. M. The C Programming Language Second Edition, Prentice Hall PTR, 1988

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme EECC Bc. Bachelor's

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

  • Programme AUDIO-J Bachelor's

    branch J-AUD , 1 year of study, winter semester, compulsory

  • Programme IBEP-T Bachelor's

    branch T-IBP , 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

1. Three independent systems on BUT/FEEC and corresponding user accounts: BUT Information System, UNIX, Novell. Rules of BUT computer network. Who to contact in case of problems, web page with instructions and information about the FEEC network. Introduction to the BUT information system, access to electronic texts, signing up for an exam, sending BUT messages. The Moodle learning system, submitting projects electronically. The system for transferring large files – Gigadisk.
2. Faculty UNIX server: access via ssh client (PuTTY), password change, file transfer via scp or sftp (WinSCP program) respectively. E-mail: access via the Horde web interface, configuration of e-mail client, protocols: IMAP, POP3, SMTP. What types of file attachment are filtered (removed), the maximum size of attachments. The possibility of e-mail forwarding, student problems and duties involved. BUT Wifi network, eduroam network, connecting devices to a wired network.
3. Properties of algorithms, notations algorithms. Introduction to the development environment MS Visual Studio 2012. The development of C programs in Visual Studio. Editing programs. Compilation of programs. Help. The matter discussed here serves as a framework for further interpretation to allow the audience to write simple programs from the beginning. Everything will be discussed later in detail.
4. Problem solving techniques. Design and implementation of algorithms. Subroutine, the division of the program into several files. Stepping through the program, setting the breakpoints, viewing the values of variables. Graphical form of algorithm writing.
5. Principles of high level programming languages. Symbols, separators, constants, identifiers, variables, representation of numbers, labels, strings. Writing numeric, character and string constants. Valid identifiers in the program and their priorities.
6. The concept of data. Simple data types in C: boolean, byte, short, integer, long, float, double, .... One-dimensional and multi-dimensional arrays of variables. Expressions and statements.
7. Management structure. The block structure of program, the scope of validity of identifiers.
8. Functions, function parameters in the C language. Passing values by reference, passing by value.
9. Text files, standard input/output. Interaction of the program with the user.
10. Structured data types. They conversion to the array of bytes and back (suitable for transmission over the network).
11. Numerical methods in programming. Recursion. Sorting algorithms.
12. Pointers and dynamic variables. Linked structures.
13. Program verification and documentation. The Doxygen tool for automatic documentation of created programs. Creation of unit tests and their significance in terms of program administration. Software development methodologies - test-driven development.