Reference no: EM131592348
Assignment - Practical
Please bring your laptop to the one or more of the pracs this week, because this week I will be helping students to set up their working environment with which they will complete their assignments.
The following activities are planned, and we will see how far we can get with the time available to us:-
1. Installation of a virtualbox virtual machine onto your laptop. (Some people will already have their own and wont need this.)
2. We will learn how to use the basic tools for creating, compiling, running and debugging C programs :-
- editor
- compiler
- make
- debugger
- man pages
3. Installation and use of CscNetLib.
Computer Network Programming
Using Git
Using Git for USQ CSC8415
Version Management in General
Software development teams use version management software. It organizes the distribution, editing, and merging of code as programmers develop it. The version management provides the following benefits-
- It provides change history of the code, and the ability to revert back to a version that works.
- It provides storage management so that not much would get lost if a programmer lost his/her laptop or had a hard drive crash.
- It organizes the distribution, editing, and merging of code for programmers of a team, so that their work
- It provides support for merging edited code hock into the main code pool.
What gets stored in the repository
Normally it is only the original source cock that is stored in a repository. Files that are generated from the original source code are not stored. For example, in a C programming project, might have the following types or files as shown in Table
file Type |
File purpose |
Is ft stared? |
Makefile |
Automates the compilation of code into an executable project. |
yes |
*.h |
Header files - tells the rest of the code files about the corresponding .c files |
Yes |
*.c |
The code that gets compiled. |
yes |
*.o |
The compiled code corresponding to each individual .c file. |
no |
Executable |
The code that runs, which is made from the .o files. |
no |
tags |
An index into your code that assists the code editing, created by a program called ctags. |
no |
output data |
Output from the executable program. |
no |
input data |
Test data for resting the executable program |
yes |
Version Management for CSC8415
Students are required to use version management for the development of their assignments. The main benefit to students is that they gain version management skills, which would be useful in any real software development.
Markers in this subject will be able to see whether the student is properly employing the version management software and also how the software was actually developed. This can also help the marker to detect plagiarism.
You will use Git for this course. The information in this document should suffice to complete your assignments, but will not teach you Git in any depth. Here is an on-line book on Cit. and you are strongly encouraged to read it in order to learn inure.
Creating the Git Repository
You should check out your repository before you begin working on your assignment code.
Initially creating the repository here as a USQ student is a little different than it would be outside of USQ. The repository does not actually exist until you create it.
Telling Git about your identity
Now need to configure Git, if you have not already done so. Assuming that your name was John Doe, then you might type the following.
$ git config user-name "John Doe"
$ git config user.email johndoeeexample.com
$ git config http.sslVerify false
Adding directories and files to the repository
You should have created a mostly empty directory called "Project-. You should immediately create three directories within this directory:-
$ mkdir Ass0 Ass1 Ass2
These files are for each of your assignments:-
- "Ass0". This is where your marker will expect to find the code for your assignment 0.
- "Ass1.". This is where your marker will expect to find the code for your assignment 1.
- "Ass2. This is where your marker will expect to find the code for your assignment 2.
Sady, git ignore; empty directories, so you need to place something in each directory:-
$ touch Ass0/temp1.txt Assl/temp1.txt Ass2/temp1.txt
Now you need to add these new directories to the repository:-
$ git add Ass0 Ass1 Ass2
Whenever you create a file that should go into the repository. then you should immediately add it in. e.g.
$ cd Ass0
$ touch makefile guestion2.c
$ git add makefile question2.c
Remember to only add in the source files, and not film that are generated from them. Please refer to table 1.
Moving, copying or deleting files.
$ git my oldName newName
$ git cp oldFile newPile
$ git rm oldFile
Committing to the local repository on your computer
Do this often while you are working on your assignment:- $ git commit -a -m 'My commit message'
Please replate 'My commit message' With a meaningful message stating what you have done since your last commit.this often while you are
working on your assignment
Pushing changes back into the repository on Tau
The marker cannot see what is on your local bard drive. You need to push your work back up to Tau.
The first time that you push, you may need to tell Gil what branch to commit:-
$ git push origin master
On subsequent pushes, the following should suffice:-
$ git push
csc_abc_prepare( ....
csc_abc_doIT( ...
exit (0);
}
Questions
1. What would be the first argument of csc_abc_prepare() and what would be the first argument of csc_abc_dolt() ?
2. Testing reveals that the program is leaking memory. What is missing from the program? Provide the missing line of code and indicate
where it goes in the program.
3. The name of each library routine each has 3 parts, explain the purpose of each of the three parts of the routine name.
4. The hypothetical code will later be modified to call the routine csc_abcgetStr(), which returns a string, and has the return type "const char *". What does the "const" mean?
Should the programmer explicitly free the string after using it?
5. Why do servers require configuration and logging?