Module also offered within study programmes:
General information:
Name:
Methodology and programming techniques 1
Course of study:
2017/2018
Code:
IES-1-101-s
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
First-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
1
Profile of education:
Academic (A)
Lecture language:
English
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr inż. Bułat Jarosław (kwant@agh.edu.pl)
Academic teachers:
dr inż. Bułat Jarosław (kwant@agh.edu.pl)
dr inż. Orzechowski Tomasz Marcin (tomeko@agh.edu.pl)
Module summary

Introduction to Computer Science

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Understands necessity of self-learning (progress) ES1A_K01 Project
Skills
M_U001 Can use simple and structural data types ES1A_U24 Project
M_U002 Can apply problem decomposition ES1A_U24 Project
M_U003 Can solve simple algorithmic tasks ES1A_U24 Project
M_U004 Can code algorithms in procedural programming language ES1A_U24 Project
Knowledge
M_W001 Knows and understands procedure-based programming language ES1A_W07 Examination
M_W002 Knows and understands classical algorithms ES1A_W07 Examination
M_W003 Student knows and understands fundamental definitions and concepts of computer science, knows architecture and operation of a simple computer, knows basic tasks of the operating system ES1A_W07 Examination
M_W004 Knows and understands fundamental rules of algorithm development ES1A_W07 Examination
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Understands necessity of self-learning (progress) + - + - - - - - - - -
Skills
M_U001 Can use simple and structural data types - - + - - - - - - - -
M_U002 Can apply problem decomposition - - + - - - - - - - -
M_U003 Can solve simple algorithmic tasks - - + - - - - - - - -
M_U004 Can code algorithms in procedural programming language - - + - - - - - - - -
Knowledge
M_W001 Knows and understands procedure-based programming language + - - + - - - - - - -
M_W002 Knows and understands classical algorithms + - - + - - - - - - -
M_W003 Student knows and understands fundamental definitions and concepts of computer science, knows architecture and operation of a simple computer, knows basic tasks of the operating system + - - + - - - - - - -
M_W004 Knows and understands fundamental rules of algorithm development + - - + - - - - - - -
Module content
Lectures:

LECTURES (28h)

1. Introduction, rules. Basic concepts: information, representation, numerical systems. Computer Architecture: Von Neumann, processor, memory, I/O devices, CPU – CPU instruction cycle, machine code instructions.
2. Role of the operating system on the example of Linux. Explain basic concepts: multitasking, multiple access, I/O, shell, scripts. Description of the Linux ecosystem: distribution, system components, libraries, Linux programming. Classification of programming languages ​​on the basis of: execution level, execution method, application, programming model. Definition of syntax, semantics.
3. Examples of development environment (IDE). Compilation of source code on example C/C++. Basic data types, projection (conversion) types, I/O operations. Encryption standards (conventions). Algorithm, pseudocode and its implementation. Block diagrams.
4. Code Analysis: Debugging (with the help of IDE). Control instructions, loops, variable life cycle (scope of variables).
5. Complex data structures. Enumeration. Preprocessor instructions.
6. Pointers, dynamic memory management (memory allocation).
7. Upward and downward approach. Functions, passing arguments and results, declaration and definition of functions, scope of variables in function context. Concept of library in C/C++.
8. Object-oriented programming: classes, objects, methods, access operator.
9. Storage. Overloading of functions/methods.
10. Object-oriented programming: inheritance, operator overload.
11. Object-oriented programming: polymorphism, encapsulation, virtualization.
12. Object-oriented programming: templates. Examples of functionality from the STL library.
13. Recursive Functions. Multithreading on the example of pthread Library. Code analysis: profiling for speed.
14. Algorithm for searching binary tree. Code analysis for memory leaks (Valgrind). Refactoring source code. Future of C++. Overview of omitted issues.

Project classes:

Project classes (14h)

During project classes, students design and write on their own program according to specifications.

Laboratory classes:

LABORATORY (14h)

During the course, the students perform in a practical way the material presented during the lecture.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 125 h
Module ECTS credits 5 ECTS
Participation in lectures 28 h
Realization of independently performed tasks 30 h
Participation in laboratory classes 14 h
Preparation of a report, presentation, written work, etc. 32 h
Contact hours 7 h
Participation in project classes 14 h
Additional information
Method of calculating the final grade:

1. Positive final evaluation from, both, laboratory exercises and examination are required.
2. Final mark is calculated as: floor((lab grade + exam grade)/2) ex: {4.5, 4} → 4

Prerequisites and additional requirements:

Elementary/basic knowledge of mathematics (positional systems, combinatorics, logarithms, etc.)

Recommended literature and teaching resources:

1. Bjarne Stroustrup, Język C++, (assume knowledge of C, PL/EN)
2. Jerzy Grębosz, Symfonia C++, (from C to C++, popular)
3. Stephen Prata, Language C++, (PL/EN)
4. https://stackoverflow.com C/C++, algorithms, systems, conf., …
5. https://www.wikibooks.org C/C++ (good PL/EN)

Scientific publications of module course instructors related to the topic of the module:

- Bulat, Jaroslaw, et al. “Data processing tasks in wireless GI endoscopy: Image-based capsule localization & navigation and video compression.” Engineering in Medicine and Biology Society, 2007. EMBS 2007. 29th Annual International Conference of the IEEE. IEEE, 2007.
- Bułat, Jarosław, and Andrzej Głowacz. “Vision-based navigation assistance for visually impaired individuals using general purpose mobile devices.” Signals and Electronic Systems (ICSES), 2016 International Conference on. IEEE, 2016.

Additional information: