Computer Architecture and System Programming Laboratory
System Programming Laboratory ("SP lab")This is a joint web page for all the above three courses. "Computer Architecture and SP Lab" is a 4-credit course, which in certain special cases can be taken in parts: "Computer Architecure" (2.5 credits), and "SP Lab" (1.5 credits). Course description is here, with pointers to syllabus.
Please make sure that you read the course rules (this web page) carefully, especially the final comments on cheating, and that you understand the course requirements.
See announcements on mandatory talks for SP lab as well as architecture and SP lab, starting on the first "extended" week of the semester, March 13-16 and March 19, 2017.
Students in the "SPlab" course and the "Computer Architecture and SPlab" course must attend labs, even if not yet registered to the course! (and also !!!!! just to make sure. You have been told, so "I didn't know" will not be a valid excuse!)
ExamsFinal exam (All courses: "Architecture", "SPlab", and "Architecture and SPlab"):
- "MOED A": Monday, July 10, at 9AM.
- "MOED B": Monday, July 31, at 9 AM.
- Splab: all issues covered in the 3 SPlab lectures, and all 9 labs. Exam type similar to last year. Estimated exam duration: 2 hours.
- Architecture and SPlab: all SPlab material, plus all material from lectures and practical sessions on architecture. Exam type similar to previous two years. Estimated exam duration: 3 hours.
- Architecture without SPlab: all material from lectures and practical sessions on architecture. Exam type similar to previous two years. Estimated exam duration: 2.5 hours.
This is an "open book" exam and it therefore highly recommended that you bring all relevant material with you, including manuals. Especially important are documentation on the ELF format, and standard things like the ASCII table. Also, you need to know all system calls and assembly language constructs used in labs and assignments, or at least have their documentation. Calculators (simple ones, as allowed by BGU rules) are allowed and recommended if you have difficulty in doing simple math or base conversion manually.
Please observe that, you must obtain a passing grade in the final exam to pass the course. You must also obtain a passing grade in at least 7 labs in order to pass the course. Nevertheless, labs where you fail will still be a component of the final grade. (Except for the "architecture only" course, which has no labs.)
Lab Instructions:0) Students in the "SPlab" course and the "Computer Architecture and SPlab" course must attend labs, even if not yet registered to the course.
1) Arrive ONLY at labs to which you are registered. The only exception is for people who due to some reason are not yet registered to the course at the beginning of the semester, and even then you should have written approval (e.g. by e-mail) of the TA in charge of the lab or you may be turned away.
2) The lab sessions are done using Linux. No other operating system is permitted. Make sure your CS department Linux account works well BEFORE Lab 1, or you will get an automatic grade reduction in the lab.
3) Compile only through a makefile using command line console or terminal (not through Eclipse or any other environment).
4) Try to retain knowledge gathered in labs, as this course is not based on "do and forget". Rather, advanced labs rely very heavily on both code and knowledge from previous labs. Obviously, keep your code for future labs.
5) Before every lab session, make sure you read and understand the reading material, and do Task 0.
6) Apart from Task 0, and unless mentioned otherwise, all the other tasks must be done DURING the lab, and not at home before the lab!!! This means, if you happened for some reason to do them at home, you must do them again from scratch in the lab.
7) Completion labs will be initiated in order to finish the lab work. Dates will be announced on the "lab completions" tab in the course web-page.
8) The purpose of the lab apart from class material, is to teach you how work by yourself (industry mode). Hence, read the appropriate Linux "man". Try to find the solutions on your own.
9) When calling the instructor, please focus your bug list. Saying " is not working, I don't know why ." is not likely to be helpful to either of you.
10) Arrive on time! The first 5-10 minutes of every lab contain important information for the rest of the lab. Missing this information will cause unnecessary time waste during the lab, thus also delaying the other students, and also earning you an automatic grade reduction.
11) Grading Policy: 30% of the grades are for: Coming prepared to lab, doing task0, arriving on time. Another 40-60% are for completing the mandatory tasks at the lab, and general work at the lab itself. The rest is given for completing the final tasks (during lab hours, possibly in a completion lab).
12) Make sure you know the identity of your lab TA, including the TA in any completion lab you attend. If you don't know the identity of the TA, any grade appeals (grades you don't like, lost grades, etc.) will be summarily rejected.
13) Cheating will not be tolerated!!! If you wish to confirm this, you are welcome to ask several people who were convicted of cheating, and as a result had to take the course again. Regretfully, this year we will be forced to check for cheating starting with lab 1.
14) At the end of the lab or immediately afterwards, you will have to submit all your code on the submission system, and state that the submitted code was written by you. Any code that is too obviously similar to other existing code will make you a suspect in cheating, and will earn you a disciplinary committee hearing. You may state in your submission that some specific lines of code are copied from elsewhere, which may reduce your grade but avoid disciplinary charges (if statement is truthful and complete).