Podstawy programowania komputerów



Pobieranie 77.92 Kb.
Data02.05.2016
Rozmiar77.92 Kb.

Podstawy programowania komputerów

4,5 ECTS

Computer Programming Basics

dzienne magisterskie


Koszalin

Kod przedmiotu

Imię i Nazwisko organizującego

AOZI1000WSUPPRO

Walery Susłow

Liczba godzin

w

c

Kurs egzaminacyjny

Zaliczenie kursu na ocenę

2

1

14 tygodni zajęć




Kursy poprzedzające

program szkoły ponadgimnazjalnej

Słowa kluczowe

komputer, programowanie, język C




Program szczegółowy

Cele kursu.

Opis kursu – cele i procedury ich osiągania:

Na bazie wiedzy szkoły średniej uzyskanej w ramach przedmiotu „Technologie informatyczne” student nabywa wiedzę i umiejętności w zakresie programowania komputerów, które są konieczne do opanowania kolejnych kursów, wykorzystujących technologie informatyczne, oraz studiowania przedmiotów kierunkowych informatyki.



Cel poznawczy:

Poszerzenie wiedzy o technologii i językach programowania komputerów oraz dokładne opanowanie wiadomości dot. techniki programowania strukturalnego.



Cel kształcący:

Kształtowanie umiejętności samodzielnego planowania, pisania, testowania i konserwacji kodów aplikacji komputerowych w stylu strukturalnym w języku programowania ANSI C w stopniu pozwalającym przejść do dalszego studiowania współczesnych technologii programowania obiektowego.



Cel praktyczny:

Kształtowanie umiejętności przygotowania, kompilacji, debagowania i testowania kodów aplikacji strukturalnych w środowisku Borland C i C++ Builder.



Umiejętności wynikowe kursu i ich ewaluacja:

Wykonywanie podstawowych działań związanych z przygotowaniem algorytmu, napisaniem kodu i testowaniem aplikacji w języku ANSI C. Oceniane są umiejętności posługiwania się podstawowymi technikami programowania strukturalnego, w tym budowania aplikacji jako kompletu funkcji, wykorzystania własnych typów danych strukturalnych (tablic, struktur, unii), planowania obciążenia pamięci komputera.



Wymagania podstawowe (stopnie dostateczne)

Wykonuje poprawnie proste algorytmy liniowe w oparciu o podstawowe typy danych.

Potrafi obsługiwać operacje wejścia/wyjścia, w tym potrafi programować akcje na konsoli oraz komunikować się z przestrzenią dyskową komputera za pomocą standardowych bibliotek ANSI C.

Poprawnie kompiluje, uruchamia i debaguje nieduże aplikacje (do 100 linii kodu), potrafi analizować listingi tego rozmiaru.



Wymagania rozszerzone (stopnie dobre)

Wykonuje poprawnie złożone algorytmy gałęziowe i cykliczne, potrafi wykorzystać dane niestandardowe, definiowane przez użytkownika.

Używa niestandardowe biblioteki języka C, wykorzystuje rekursie, makrodefinicje, wskaźniki, zmienne rejestrowe, dynamiczną alokację pamięci.

Potrafi optymalizować złożone algorytmy, pracuje samodzielnie z listingiem powyżej 200 linii kodu.



  1. 2 godz.

Ogólne zasady programowania.

Zagadnienia: Proces powstawania oprogramowania. Potrzeby użytkownika oraz ich analiza, formułowanie zadania technicznego. Pojęcie algorytmu, podstawowe sposoby algorytmizacji zadań.

Przegląd współczesnych języków programowania.



  1. 2 godz.

Elementarz ANSI C.

Zagadnienia: Elementy języka ANSI C: użytkowane symbole, identyfikatory, zastrzeżone słowa kluczowe. Elementy programu C (dyrektywy preprocesora, komentarze, deklaracje, instrukcje).

Technologia tworzenia programu, testowanie i konserwacja, dokumentowanie programów. Pakiety programistyczne, charakterystyka pakietu Borland Builder. Pierwszy program w C.



  1. 2 godz.

Dane w ANSI C.

Zagadnienia: Dane: stałe i zmienne. Typy danych. Inicjalizacja danych. Deklaracja zmiennych. Wyświetlanie danych na ekranie. Standardowe funkcje i operatory do wprowadzania i wyprowadzania danych. Wzorce konwersji oraz sekwencje ucieczki. Przykładowe programy wykorzystujące wymianę danych z konsoli.

  1. 2 godz.

Instrukcje w ANSI C.

Zagadnienia: Operatory i wyrażenia arytmetyczne i logiczne. Stałe symboliczne i makrodefinicje.

Instrukcje: przypisania, sterujące, skoku, warunkowe, wyboru i pętli. Instrukcja złożona.

Przykładowe programy wykorzystujące instrukcje złożone.


  1. 2 godz.

Funkcje i makroinstrukcje w ANSI C.

Zagadnienia: Funkcje, nagłówek i ciało funkcji, funkcja main. Argumenty funkcji z wartościami domyślnymi. Zmienne lokalne, zewnętrzne, statyczne i rejestrowe. Zakres i widoczność zmiennej. Definiowanie zmiennych lokalnych, użycie stosu.

Makroinstrukcje (makrodefinicje). Przykład programu z wykorzystaniem makrodefinicji.



  1. 2 godz.

Tablice, wskaźniki i macierze.

Zagadnienia: Wskaźniki, operatory adresowania i wyłuskiwania. Działania na wskaźnikach. Tablice liczbowe i znakowe. Użycie tablic w programie. Wskaźniki do tablic. Zakres tablicy. Przykładowe programy wykonujące działania na tablicach i wskaźnikach.

  1. 2 godz.

Struktury i unie.

Zagadnienia: Struktury: inicjalizacja, działania na polach. Zmienne typu strukturalnego. Struktury zagnieżdżone. Dostęp do pól struktury, operacje przypisania. Struktura a funkcja, struktura a wskaźnik. Tablice i pliki struktur. Unie.

Przykład wykorzystania struktury w prostej bazie danych.



  1. 2 godz.

Rekurencja.

Zagadnienia: Definicja rekurencji. Przykład rekurencji w definicji funkcji silni. Szereg Fibonacciego. Problemy rekurencji. Rekurencja a grafika.

Przykładowe programy do obliczeń rekurencyjnych.



  1. 2 godz.

Operacje na plikach w ANSI C.

Zagadnienia: Operacje na plikach: otwieranie, odczyt-zapis, zamykanie, dostęp niskopoziomowy (systemowy). Pojęcie strumienia danych. Buforowanie wejścia/wyjścia. Wskaźniki typu FILE. Otwieranie/zamykanie pliku. Odczyt i zapis plików z poziomu programu C.

Przykład programu wykonującego operacje na plikach.



  1. 2 godz.

Sterowanie pamięcią w C.

Zagadnienia: Pamięć na stosie i na stercie. Pamięć a system operacyjny. Przydział pamięci w ruchu programu. Tablicy statyczne i dynamiczne. Zwalnianie pamięci. Niepowodzenie w alokacji pamięci.

Przykład programu z wykorzystaniem „ręcznej” alokacji pamięci.



  1. 2 godz.

Pola bitowe.

Zagadnienia: Sterowanie bitami. Dane typu „pola bitowe”. Ograniczenia pól bitowych. Operatory bitowe w C. Istotne możliwości bitowej reprezentacji danych.

Zaawansowana reprezentacja danych. Wybór reprezentacji danych. Tablica struktur. Tablica wskaźników. Listy łączone. Abstrakcyjne typy danych. Kolejka jako abstrakcyjny typ danych. Reprezentacja czasu w programie poprzez zdefiniowane typy. Biblioteka time.h.



  1. 2 godz.

Łańcuchy znakowe.

Zagadnienia: Stała łańcuchowa. Inicjalizacja łańcucha. Wczytywanie łańcuchów. Wyświetlanie łańcuchów. Funkcje łańcuchowe. Badanie długości łańcuchów. Działania na łańcuchach.

Przykładowe programy wykonujące operacje na łańcuchach.



  1. 2 godz.

Typ wyliczeniowy. Programowanie niestrukturalne.

Zagadnienia: Wyliczenia. zmienne typu wyliczeniowego. Instrukcje na zmiennych enum. Określenie wartości stałych wyliczenia. Wprowadzenie i wyświetlenie łańcuchów za pomocą wyliczenia.

Instrukcje niestrukturalne: break, continue, goto, return, switch. Opcja „jump optimization” kompilatora. Przykład programu niestrukturalnego.



  1. 2 godz.

Programowanie współbieżne w C.

Zagadnienia: Pseudo-współbieżne wykonywanie funkcji w C. Funkcje setjmp i longjmp. Przełączanie zadań. Sekwencje przełączające. Przykład programowania współbieżnego.




Plany wynikowe ćwiczeń1
  1. 2 godz.


zapoznanie się ze środowiskiem programowym.

Opis ćwiczenia – cele i procedury ich osiągania:

Kompilacja i konsolidacja prostego programu, dopasowanie środowiska programowego do potrzeb użytkownika, ustawienie i zapisanie konfiguracji, wyjaśnienie podstawowych konstrukcji programu ANSI C. Proste programy, wprowadzanie danych liczbowych, działania arytmetyczne na danych i wyprowadzanie wyników na ekran.



Umiejętności wynikowe i ich ewaluacja

Opanowanie podstawowych trybów pracy w środowisku programowym



Wymagania podstawowe

Samodzielne wprowadzenie kodu, kompilacja, uruchomienie i poprawienie błędów w bardzo prostych programach.



Wymagania rozszerzone (stopnie dobre)

Sprawne kojarzenie ustawień konfiguracyjnych środowiska. Samodzielna celowa zmiana kodu bardzo prostych programów.


  1. 2 godz.


Typy danych języka C.

Opis ćwiczenia – cele i procedury ich osiągania:

Podstawowe typy danych. Stałe liczbowe i tekstowe (string). Typy pochodne. Zakresy ważności i zasłanianie nazw. Modyfikator const i #define.



Umiejętności wynikowe i ich ewaluacja: Kształtowanie umiejętności deklaracji i wykorzystania danych w programie.

Wymagania podstawowe: Samodzielne dobieranie i deklaracja odpowiednich typów danych.

Wymagania rozszerzone (stopnie dobre): Optymalne wykorzystanie typów danych w kontekście programu.
  1. 2 godz.


Instrukcje proste i złożone.

Opis ćwiczenia – cele i procedury ich osiągania:

Instrukcja warunkowa if. Instrukcje pętli. Budowanie instrukcji złożonych z wykorzystaniem switch.



Umiejętności wynikowe i ich ewaluacja: Opanowanie standardowych konstrukcji gałęziowych i cyklicznych w kodzie C.

Wymagania podstawowe: Umiejętność zapisania kodu instrukcji złożonej w oparciu o gotowy algorytm.

Wymagania rozszerzone (stopnie dobre): Umiejętność zapisania instrukcji złożonej w kilku wariantach konstrukcji kodu.
  1. 2 godz.


Funkcje podstawowym modułem programu C.

Opis ćwiczenia – cele i procedury ich osiągania:

Programy zawierające funkcje. Zwracanie rezultatu przez funkcję. Funkcje inline (otwarte). Funkcje biblioteczne.



Umiejętności wynikowe i ich ewaluacja: Potrafi napisać program składający się minimum z trzech funkcji.

Wymagania podstawowe: Poprawnie deklaruje i definiuje funkcje użytkownika, potrafi zakodować wzajemne wywołanie funkcji.

Wymagania rozszerzone (stopnie dobre): Dokonuje optymalnego podziału zadania na moduły, które potrafi zakodować jako odrębne funkcje.
  1. 2 godz.


Dane rozbudowane: tablice i wskaźniki.

Opis ćwiczenia – cele i procedury ich osiągania:

Tablice - wprowadzenie. Tablice znakowe. Tablice wielowymiarowe. Wskaźniki - wstęp. Zastosowanie wskaźników w argumentach funkcji i wobec tablic.



Umiejętności wynikowe i ich ewaluacja: Opanowanie techniki organizacji danych jednorodnych w postaci tablic i techniki odwołania się do danych poprzez wskaźniki.

Wymagania podstawowe: Poprawnie deklaruje i wykorzystuje tablicy i wskaźniki w przypadku danych prostych.

Wymagania rozszerzone (stopnie dobre) Optymalnie dobiera tablicową organizację danych do zadania, umie wykorzystać wskaźniki na danych złożonych.
  1. 2 godz.


Dane rozbudowane: struktury i pliki.

Opis ćwiczenia – cele i procedury ich osiągania:

Struktury. Pliki. Zapis struktury do pliku. Odczytanie struktury z pliku.



Umiejętności wynikowe i ich ewaluacja: Opanowanie umiejętności obsługi plików i struktur w C.

Wymagania podstawowe: Potrafi zakodować procedury obsługi plików w oparciu o standardowe funkcje biblioteczne. Umie zadeklarować i wykorzystać proste struktury.

Wymagania rozszerzone (stopnie dobre): Wybiera sposób obsługi plików odpowiedni do zadania, umie obsłużyć struktury złożone.
  1. 2 godz.


Indywidualny projekt zaliczeniowy.

Opis ćwiczenia – cele i procedury ich osiągania: Przykładowa tematyka zadań do wykonania z zakresu:

  1. Operacje na typach liczbowych prostych:

obliczanie pierwiastków równania;

obliczanie punktów przecięcia dwóch krzywych, zadanych wzorem;

obliczanie n pierwszych wyrazów ciągu harmonicznego;

obliczanie silni oraz dwumianu Newtona;

znajdowanie w ciągu liczb wprowadzonych przez użytkownika minimum, maksimum;

obliczanie wartości funkcji y=f(x) dla kilku wartości x.



  1. Operacje na tablicach i ciągach znaków:

posortowanie rosnąco ciągu liczb wprowadzonych przez użytkownika;

określenie ilości wystąpień poszczególnych liter we wprowadzonym ciągu znaków;

posortowanie malejąco liter we wprowadzonym ciągu znaków z uwzględnieniem kolejności polskich znaków w alfabecie;

zastąpienie w ciągu znaków jednego wyrażenia przez inne z uwzględnieniem możliwości użycia i zastępowania znaków końca linii, tabulacji itp.



  1. Operacje z grafiką:

rysowanie wykresu funkcji i nałożenia na niego aproksymacji;

rysowanie prostej animacji;

rozwiązanie zadania „Wieże Hanoi” dla n klocków;


  1. Program złożony z modułów:

wykonywanie działań na macierzach;

obliczenie średniej ważonej dla n podanych liczb, z odpowiadającymi im wagami;

horoskop - podajemy datę urodzenia i imię, otrzymując znak zodiaku + znak horoskopu chińskiego + krótki opis osoby spod danego znaku.


  1. Operacje na złożonych strukturach danych:

adresownik - lista nazwisk, imion, adresów, numerów telefonów osób z możliwością dodania, edycji, usuwania, porządkowania (np. po nazwisku, mieście, imionach), wyszukiwania, zapisu i odczytu z pliku;

rozkład jazdy autobusów - lista miejscowości docelowych i tranzytowych wraz z godzinami odjazdu autobusów, z możliwością dodania, edycji, usuwania, porządkowania po miejscowości docelowej, godzinie przyjazdu, godzinie wyjazdu, oraz wyszukiwania, zapisu i odczytu z pliku.



Umiejętności wynikowe i ich ewaluacja: Umiejętność wykonania zakończonego projektu w postaci aplikacji komputerowej, która rozwiązuje konkretne zadanie i jest przygotowana w języku C z wykorzystaniem stylu programowania strukturalnego.

Wymagania podstawowe: Potrafi wytłumaczyć strukturę aplikacji oraz objaśnić działanie wszystkich fragmentów kodu we własnym projekcie.

Wymagania rozszerzone (stopnie dobre): Umie wprowadzić na bieżąco zmiany do własnego projektu, które by poprawili zauważone przez prowadzącego mankamenty aplikacji.




Opis rygorów pośrednich



Instrukcje proste i złożone.

Opis kolokwium : 15-minutowa praca z wykorzystaniem przez studenta dowolnych materiałów własnych nad zapisaniem kodu w języku C na zadany temat.

Sposób oceniania: Analiza poprawności przedstawionego kodu

Wymagania podstawowe: Popełnione błędy łatwo mogą być poprawione podczas kompilacji.

Wymagania rozszerzone (stopnie dobre): Kod dokładnie odpowiada zadaniu, wykorzystano nie standardowe, autorskie pomysły.



Reprezentacja danych rozbudowanych.

Opis kolokwium : 15-minutowa praca z wykorzystaniem przez studenta dowolnych materiałów własnych nad zapisaniem kodu w języku C na zadany temat.

Sposób oceniania: Analiza poprawności przedstawionego kodu

Wymagania podstawowe: Popełnione błędy łatwo mogą być poprawione podczas kompilacji.

Wymagania rozszerzone (stopnie dobre): Kod dokładnie odpowiada zadaniu, wykorzystano nie standardowe, autorskie pomysły.



Operacje na plikach i sterowanie pamięcią.

Opis kolokwium : 15-minutowa praca z wykorzystaniem przez studenta dowolnych materiałów własnych nad zapisaniem kodu w języku C na zadany temat.

Sposób oceniania: Analiza poprawności przedstawionego kodu

Wymagania podstawowe: Popełnione błędy łatwo mogą być poprawione podczas kompilacji.

Wymagania rozszerzone (stopnie dobre): Kod dokładnie odpowiada zadaniu, wykorzystano nie standardowe, autorskie pomysły.







Opis rygoru zasadniczego (zaliczenie).

Opis ogólny rygoru zasadniczego

Warunki zaliczenia: zaliczenie minimum dwóch kolokwium na oceną pozytywną oraz zaliczenie laboratorium na podstawie punktów za zajęcia, kartkówki oraz projekt.



Wymagania podstawowe

Wymagania rozszerzone (stopnie dobre)




Wykaz źródeł (podręczników i skryptów)

  1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C. – WNT, 2001.

  2. Tony Zhang, Poznaj C w 24 godziny. – Wyd. Infoland, 2001.

  3. Stephen Prata, Język C. Szkoła Programowania. – Wyd. Robomatic, Wrocław, 1999.

  4. Marek Kotowski, Wysokie C. – Lupus, 1998.

  5. Steven S. Skiena, Miguel A. Revilla, Wyzwania Programistyczne. – Wyd. Szkolne i Pedagogiczne, Warszawa, 2004.




1 Prowadzący zajęcia laboratoryjne są zobligowani do opracowania tematów o różnym stopniu trudności tak, by początkujący mogli zdobywać punkty ćwicząc rzeczy elementarne (dla nich wykonalne), a zaawansowani mogli zdobywać punkty poszerzając swoją wiedzę przez poznanie i praktyczne zastosowanie ciekawych algorytmów z innych pokrewnych dziedzin np. z metod numerycznych, badań operacyjnych, metod optymalizacji itp.








©absta.pl 2019
wyślij wiadomość

    Strona główna