Module also offered within study programmes:
General information:
Name:
Fundamentals of Computer Science
Course of study:
2018/2019
Code:
JIS-1-105-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
1
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr inż. Krupińska Grażyna (grazyna@fis.agh.edu.pl)
Academic teachers:
dr inż. Krupińska Grażyna (grazyna@fis.agh.edu.pl)
dr inż. Strzałka Elżbieta (Elzbieta.Strzalka@fis.agh.edu.pl)
Module summary

Podstawy algorytmiki, reprezentacja liczb w systemach komputerowych, podstawy architektury komputerów oraz systemów operacyjnych. Wstęp do programowania w języku C.

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 Student potrafi samodzielnie zdobyć odpowiednią wiedzę i umiejętności, niezbędne do realizacji jego zadania. IS1A_K01 Execution of laboratory classes
M_K002 Student potrafi w sposób przejrzysty zaprezentować rozwiązanie problemu programistycznego IS1A_K01 Execution of exercises,
Participation in a discussion,
Activity during classes
Skills
M_U001 Student potrafi pisać proste programy w pseudokodzie IS1A_U03, IS1A_U06, IS1A_U05, IS1A_U01, IS1A_U04 Activity during classes
M_U002 Student potrafi stworzyć model maszyny Turinga rozwiązujący prosty problem algorytmiczny IS1A_U03, IS1A_U06, IS1A_U05, IS1A_U01, IS1A_U04 Activity during classes
M_U003 Student potrafi stworzyć prosty algorytm wykorzystujący odpowiednie struktury danych i zapisać go za pomocą schematu blokowego IS1A_U03, IS1A_U06, IS1A_U05, IS1A_U01, IS1A_U04 Execution of exercises
M_U004 Student potrafi tworzyć zmienne proste IS1A_U06, IS1A_U04 Execution of exercises,
Participation in a discussion,
Test,
Activity during classes
M_U005 Student potrafi przeliczać liczby zapisane w różnych systemach liczbowych IS1A_U03, IS1A_U06, IS1A_U05, IS1A_U01, IS1A_U04 Execution of exercises
M_U006 Student potrafi rozwiązać prosty problem programistyczny korzystając z instrukcji języka C IS1A_U06, IS1A_U04 Execution of exercises,
Test,
Activity during classes
Knowledge
M_W001 Student zna i rozumie podstawowe* pojęcia i terminologię używaną w informatyce - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu IS1A_W03, IS1A_W02 Activity during classes,
Participation in a discussion,
Execution of laboratory classes
M_W002 Student zna i rozumie podstawowe* pojęcia i metody obliczania reprezentacji liczb w różnych systemach pozycyjnych. - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu IS1A_W02 Activity during classes,
Participation in a discussion,
Execution of laboratory classes
M_W003 Student zna i rozumie podstawowe* pojęcia z zakresu architektury komputerów, systemów operacyjnych, struktur danych oraz algorytmiki - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu IS1A_W03, IS1A_W02 Activity during classes,
Participation in a discussion,
Execution of laboratory classes
M_W004 Student zna i rozumie zasady tworzenia oprogramowania z wykorzystaniem proceduralnego języka C. IS1A_W03, IS1A_W02 Activity during classes
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 Student potrafi samodzielnie zdobyć odpowiednią wiedzę i umiejętności, niezbędne do realizacji jego zadania. - + - - - - - - - - -
M_K002 Student potrafi w sposób przejrzysty zaprezentować rozwiązanie problemu programistycznego - - + - - - - - - - -
Skills
M_U001 Student potrafi pisać proste programy w pseudokodzie - + - - - - - - - - -
M_U002 Student potrafi stworzyć model maszyny Turinga rozwiązujący prosty problem algorytmiczny - + - - - - - - - - -
M_U003 Student potrafi stworzyć prosty algorytm wykorzystujący odpowiednie struktury danych i zapisać go za pomocą schematu blokowego - + - - - - - - - - -
M_U004 Student potrafi tworzyć zmienne proste - - + - - - - - - - -
M_U005 Student potrafi przeliczać liczby zapisane w różnych systemach liczbowych - + - - - - - - - - -
M_U006 Student potrafi rozwiązać prosty problem programistyczny korzystając z instrukcji języka C - - + - - - - - - - -
Knowledge
M_W001 Student zna i rozumie podstawowe* pojęcia i terminologię używaną w informatyce - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu + - - - - - - - - - -
M_W002 Student zna i rozumie podstawowe* pojęcia i metody obliczania reprezentacji liczb w różnych systemach pozycyjnych. - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu + - - - - - - - - - -
M_W003 Student zna i rozumie podstawowe* pojęcia z zakresu architektury komputerów, systemów operacyjnych, struktur danych oraz algorytmiki - pod pojęciem "podstawowe" należy rozumieć wszystkie pojęcia omawiane w ramach wykładu + - - - - - - - - - -
M_W004 Student zna i rozumie zasady tworzenia oprogramowania z wykorzystaniem proceduralnego języka C. + - + - - - - - - - -
Module content
Lectures:

1.Historia rozwoju informatyki i główne kierunki jej rozwoju.
Rozwój nauk informatycznych. Zasady tworzenia systemów informatycznych . Główne kierunki rozwoju informatyki.

2. Reprezentacja liczb w systemach komputerowych.
Algebry Boole’a. Systemy pozycyjne. Zapis oraz arytmetyka na liczbach liczb stało- i zmiennopozycyjnych.

3. Algorytmy i programy.
Pojęcie algorytmu. Notacja blokowa. Rodzaje algorytmów. Notacja Backusa-Naura. Proces tworzenia programu.

4. Potencjał maszyn algorytmicznych.
Maszyna Turinga. Teza Churcha-Turinga. Miara złożoności obliczeniowej. Klasy złożoności obliczeniowej.

5 – 10. Wprowadzenie do programowania proceduralnego w języku C – Struktura programu, typy danych, stałe, zmienne . Tablice jednowymiarowe, podstawowe konstrukcje językowe – pętle sterujące, wyrażenia.

11. Architektura i organizacja komputera.
Architektura komputerów. Działanie komputera. Cykl rozkazowy procesora. Format rozkazów i tryb adresowania. Obsługa przerwań. Pamięć. Zwiększenie efektywności procesora.

12. Systemy operacyjne.
Zadania i struktura systemów operacyjnych. Zarządzanie procesami. Synchronizacja procesów – problem zakleszczeń.

13. Systemy operacyjne
Zarządzanie pamięcią – pojęcie przestrzeni adresowej, pamięć wirtualna, stronicowanie i segmentacja pamięci. System plików.

14. Kolokwium zaliczeniowe

Auditorium classes:

W ramach ćwiczeń wykonywane będą zadania z zakresu:

  • arytmetyki binarnej;
  • działania pętli sterujących i podstawowych instrukcji wykorzystywanych w językach programowania;
  • schematów blokowych;
  • tworzenia maszyny Turinga rozwiązującej proste zagadnienia algorytmiczne;

Laboratory classes:

Tworzenie programów wykorzystujących:

  • proste zmienne rożnego typu (całkowite, rzeczywiste, i znakowe);
  • tworzenie wyrażeń z wykorzystaniem operatorów arytmetycznych, logicznych oraz relacyjnych;
  • tablice jednowymiarowe zmiennych całkowitych, rzeczywistych i znakowych;
  • instrukcje sterujące wykorzystujące złożone wyrażenia logiczne;

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 90 h
Module ECTS credits 3 ECTS
Participation in lectures 30 h
Realization of independently performed tasks 10 h
Participation in auditorium classes 15 h
Preparation for classes 20 h
Participation in laboratory classes 15 h
Additional information
Method of calculating the final grade:

Zaliczenie ćwiczeń uzyskuje się na podstawie wyników uzyskanych w trakcie zajęć (odpowiedzi przy tablicy, programy wykonywane w ramach zajęć laboratoryjnych) oraz kolokwium zaliczeniowego.

Wykład zaliczany jest na podstawie odrębnego kolokwium.

Ocena końcowa z modułu obliczana jest jako średnia ważona z powyższych ocen, przy czym ocena z ćwiczeń wchodzi do oceny końcowej z wagą 60%, a ocena z zaliczenia wykładu z wagą 40%.

Prerequisites and additional requirements:

Nieobecność na zajęciach obowiązkowych wymaga od studenta samodzielnego opanowania przerabianego na tych zajęciach materiału.

Recommended literature and teaching resources:

• D. Harel „Rzecz o istocie informatyki, algorytmika”, WNT 1992;
• J. G. Brookshear „Computer Science: An Overview”, Addison-Wesley Longman 1997;
• N. Wirth, „Algorytmy + struktury danych =Programy”, WNT 1989;
• A. Silberschatz „Podstawy Systemów Operacyjnych”, WNT 2005;
• A. Tanenbaum „Systemy operacyjne”, Helion 2010;

• S. Prata “Język C. Szkoła programowania”, ISBN 83-87150-06-1;
• H. Schildt “Programowanie C”, ISBN 83-7243-258-9;
• K. Loudon “Algorytmy w C”, ISBN 83-7197 –912-6;
• B. Kernighan, D. Ritchie “Język ANSI C”, ISBN 83-204-1693-0;

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

Additional scientific publications not specified

Additional information:

Sposób i tryb wyrównania zaległości powstałych wskutek nieobecności studenta na zajęciach:
Nieobecność na jednych ćwiczeniach/laboratorium wymaga od studenta samodzielnego opanowania przerabianego na tych zajęciach materiału.
Student który bez usprawiedliwienia opuścił więcej niż dwa ćwiczenia/laboratoria i jego cząstkowe wyniki w nauce były negatywne, może zostać pozbawiony, przez prowadzącego zajęcia, możliwości poprawkowego zaliczania zajęć.Od takiej decyzji prowadzącego zajęcia student może się odwołać do prowadzącego przedmiot (moduł) lub Dziekana.

Obecność na wykładzie: zgodnie z Regulaminem Studiów AGH.