IAG0581 - Programming I (2015)
Contents
Links
Materials
Vladimir Viies - http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581,IAG0582,PROGRAMMEERIMINE/PR1/
Risto Heinsar - http://www.blue.pri.ee/ttu/programming-i/
Moodle materials
Self-registration from https://moodle.e-ope.ee/
General information
Points system
- 15p - I test
- 15p - II test
- 15p - I homework
- 15p - II homework
- 40p - Labwork
- 10p - Bonus
Grade
- < 50p - 0
- 50p - 1
- 60p - 2
- 70p - 3
- 80p - 4
- 90p - 5
Lectures
Date | Topic | Deadlines |
---|---|---|
01.09.2015 | Introduction to Git, concept of the algorithm | |
15.09.2015 | Numeral systems, extremes and bubblesort, calendar | Possibility to write pre-exam |
29.09.2015 | UML, Shell sort. | |
13.10.2015 | Writing test I (only algorithm) | I test |
27.10.2015 | C language, the basic language phrases, dialogue program | I homework (algoritm + programmikood) |
10.11.2015 | Sorting algorithm realization, subroutines | |
24.11.2015 | Writing test II (writing code) | II test and II homework |
08.12.2015 | Final test(if necessary) |
I homework task
http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581,IAG0582,PROGRAMMEERIMINE/PR1/progr_I__eng/Homework%20I.pdf Formatting guidelines
Lab computers
Labs are taking place in ICT-502.
It is possible to connect remotely to ICT-502 linux computers through SSH. Remote SSH tutorial
ICT-502 computers have both Windows 7 and OpenSUSE 13.1 Linux operating system installed. For this course Linux will be used. If the computer is in Windows, restart it and choose OpenSUSE 13.1 from the boot menu.
Logging in to Linux
When presented with the login screen,
- Choose the domain INTRA
- Insert your Uni-ID username. If you do not have it, you can get one from ICT-410 or with ID-card/residence permit from the website https://pass.ttu.ee.
- Insert password and press enter
Beginning your work
Most of the time you will be needing terminal. The quickest way to open it is to right click on desktop and choose Open in Terminal.
First thing you should type in is the command
cad
This will prepare the environment for work, so that the following commands for opening software will work later on.
Basic linux bash commands
ls #outputs the files in the current directory
ls -l #outputs the contents of the current directory as a list with additional information, like permissions and date modified.
ls -a #outputs all of the files in the current directory, including dot files.
ls -la #outputs the contents of the current directory, combining the preferences from two last commands
cd new #changing directory to folder named ''new'' that resides in the current directory
cd .. #changes directory to parent directory
cd ../new #changes directory to folder named ''new'' which resides in the parent directory
mkdir newfolder #creates new folder with name ''newfolder''
cp main.c main2.c #copies the file ''main.c'' to ''main2.c''
mv main.c main2.c #moves the file ''main.c'' to ''main2.c''
man <command> #displays information about the specified command
For opening a program in the background, so you can continue using terminal, you can use ampersand (&). For example:
firefox&
Network drives
Every student should have multiple network drives that they can access.
- P drive - For personal files. Limit 200MB
- W drive - Personal web directory. You can access this through web by going to http://www.tud.ttu.ee/web/<UNI-ID USER>. Limit 50MB.
- M drive - Materials
Software
Compilation from terminal
For compiling code in terminal, there's a command gcc. For example when you have saved your source code into file hello.c, then to compile it, insert:
gcc -o hello hello.c
This will create a compiled, binary file named "hello". To make sure it really did so, we can check by inserting command ls, which will show the contents of the current directory.
Next, we can execute by typing
./hello
Compilation under windows
For compiling C under Windows, you will need to download either one of the following, which includes gcc compiler:
- MinGW - http://www.mingw.org/
- Cygwin - http://www.cygwin.com/
C/C++ Integrated Development Environments (IDE)
- Code::Blocks - http://www.codeblocks.org/ (Windows, Linux, Mac OS)
To open in lab computers, use command codeblocks
- Geany - http://www.geany.org/ (Windows, Linux)
To open in lab computers, use command geany
- Orwell Dev-C++ - http://sourceforge.net/projects/orwelldevcpp/ (Windows)
Text editors with syntax highlight
- SciTE - http://www.scintilla.org/SciTE.html (Windows, Linux, Mac OS)
To open in lab computers, use command SciTE
- Notepad++ - http://notepad-plus-plus.org/ (Windows)
Diagram drawing tools
- ArgoUML - http://argouml.tigris.org/ (Windows, Linux)
To open in lab computers, use command argouml
- Astah Community - http://astah.net/download#community (Windows, Linux, Mac OS)
To open in lab computers, use command astah-com
- yEd - http://www.yworks.com/en/products_yed_about.html. (Windows, Linux, Mac OS)
To open in lab computers, use command yEd
- Jackson System Programming (JSP) Editor - http://www.his.se/english/university/contact/staff/henrik-engstrom/jsp-editor/ (Windows, Linux, Mac OS)
To open in lab computers, use command jsp