IAG0582 - Programming II
Contents
General Information
How to access your P drive from home and how to remotely compile code in school computers
Your username is your UNI-ID without the domain (@ttu.ee or @taltech.ee etc). Your password is invisible, just write it and press ENTER.
Results
Programming resources
Test 2 Zoom room, reopened.
Test 2, will be uploaded at 11:30
Exam - please register only when you have submited both homeworks
HW2 version is chosen by the last digit in your student code
Link to homework2
E-studies
All homeworks are individual works and while learning programming in groups is allowed, sending 2 identical works is not allowed
Exercise for 17.03.2020 lesson
Short explanation 24.03
Exercise for 24.03 lesson
Introduction to HomeWork II
Exercise 31.03
How to access school computer remotely and how to do homework 3
Homework 3
21.04.2020 12.00 Test 2 Overview
Tests with incorrectly chosen versions will not be graded.
Exercise 28.04
Slide show about debugging and exceptions
Zoom for 05.05, opens 12:00
All codes have to be sent to trkal@ati.ttu.ee and vladimir.viies@gmail.com
Tests
I test | 5. week | files and structs | 20 points |
II test | 12. week | dynamic memory allocation | 20 points |
Homeworks
I homework | files and structs | 15 points |
II homework | dynamic memory allocation | 15 points |
III homework | optional | 10 points |
Database task | ||
Microcontroller task |
First two homeworks must be done before thursday of 16. week. Third homework's deadline is until the end of the semester.
If there is a suspicion of plagiarism for any submitted work of student, the grade for that submission will be 0 points. To improve the score, the submission must be defended.
Practice classes
It is possible to gather up to 36 points from practice classes
- 1p for participation (total can be maximum of 14p)
- practice class tasks up to 22, from which 4p will be from guest practice classes:
- Database task 2p
- Microcontroller task 2p
More information about the practice classes can be found on your practice class teacher's homepage
- Margit Aarna and Risto Heinsar http://blue.pri.ee/ttu
Requirements for exam
- Pre-exam requirement is 61p before the start of exam session
- Exam requirement is 50p ( practice + test I + test 2 + bonus )
Exam
Exam's grade is the result of the following points:
Homework I + homework II + homework III + written examination (max 65p)
3. Homework
Database homework
- There has been given a PostgreSQL database, which consists of a simple student information system data.
- To take the task, you first have to register with your student code. This is necessary for creating an user for you and an user specific database, which has been filled with sample structure and data. You will have rights to insert, modify and delete rows in your database and feel free to do so.
Registration
- Connection parameters:
Host: ewis.pld.ttu.ee Database: <student code> Port: 5432 User: <student code> Password: <password you chose during registration>
- For managing the database, you can use some of postgre database clients, like:
- PgAdmin III (Windows, Linux, Mac OS)
- MyWebSQL (web client)
- phpPgAdmin (web client)
- Data structure has been given with the image
- If there is a need to reset the initial database, you can use the following SQL statements for that - Link
Tasks
Create a text based user interface program, that would have the following functionality:
- Adding a student. User will be asked: first name, last name, date of birth. Program has to generate unique student code for each student. (2p)
- Modifying and deleting a student. (2p)
- Adding, modifying and deleting a course. (2p)
- Giving grade for a student for a specific course. When inserting a grade, the average grade should also be updated taking account the credit points. (2p)
- Searching students based on their weighted average grade. (2p) For example, if we want to find the best students we could specify condition 'avg > 4.6'
Program has to communicate with the given database and use it for reading and storing data.
Finished homework should be sent to raiko.keinanen@gmail.com
Compiling code with PostgreSQL library
To connect the PostgreSQL database within your C code, you have to have the connector libraries installed and the compiler has to know where to find them.
The easiest way to compile your program is using TUT's lab computers, where PostgreSQL is previously installed and the library can be easily included. Guide for connecting to lab computers over SSH
It is of course possible to install the PostgreSQL C libraries also on your own computer independent of your OS, but this can be time consuming on the first try.
For more information about setting it up yourself, you can see PostgreSQL setup
When compiling, you should include the header file in your C code:
#include <pgsql/libpg-fe.h>
Keep in mind that the location could be different if you choose to compile it from your own computer.
While compiling you should also give the linker argument -lpq. For example gcc -o program main.c -lpq.
Helping materials
C sample
Sample - Creates a connection with a database and queries 10 first rows.