Laboratórios de Computadores: Apresentação Computer Labs...
Transcript of Laboratórios de Computadores: Apresentação Computer Labs...
Laboratórios de Computadores:Apresentação
Computer Labs: Introduction2o MIEIC
Pedro F. Souto ([email protected])
September 20, 2015
Staff
I Hélder Castro([email protected])I Mário Cordeiro([email protected])I Tiago Boldt([email protected])I Pedro Ferreira do Souto ([email protected])
Objectives
Upon successful completion of this class you shouldbe able to:
1. Program at the HW interface level of the mostcommon PC I/O Devices
2. Develop system-level programs3. Use software tools typical of large programming
projects
Prerequisites
I ProgramaçãoI You’ll program a lot, mostly in C
I Microprocessadores e Computadores PessoaisI but also in assemblyI ... for the IA-32 architecture
I Arquitectura de ComputadoresI If you have not completed any of the first two courses,
you should consider to drop LCOM
Syllabus
I/O devicesC programming with assemblyProgramming tools
MethodLearn by doing
“I hear, I forget. I see, I remember. I do, I understand”Several short lab assignments
I Each focusing on one I/O deviceI Some of them take only one lab class, others take two
lab classesI Requiring a preparation of about 5 hours per lab class
(excluding classes)One integration project
I Must use at least 3 different I/O devicesI Must use interruptsI Should use both C and assemblyI Should require about 9 hours per week (during 5 weeks)
Note: Both lab assignments and project should be done ingroups of 2 students.
Last Year Changes Still in Place
What? There are no lab classes on the RTC or on the serialport (UART)
I However, we will still talk about them in the lecturesI Students wishing to get a grade of 16 or better, are
expected to use these devices anywayI Must use all other I/O devices
Why?I Have more lab classes for the other I/O devices
I Most of them now have 2 lab classesI Remove some pressure out of the graded lab
assignmentsExpected results (and fulfilled)
I Less cheatingI Higher passing rate
Work Load
I LCOM has 6 ECTS, i.e. about 160 hoursI Assuming 1 ECTS equal to 27 hours
I Check out the European Credit Transfer and AccumulationSystem (ECTS)
I If you share the load with your team-mate, this should notbe a problem.
Unit Hours/Week No. Weeks TotalLectures 2 13 26Labs. 3 12 36Prep. L0+L1 2 5 10Prep L2-L5 8 5 40Proj. 5 9 45Slack 5Total 162
Bibliography and Other Resources
I PC HW is well documented on several books and onlineresources
I Book mentioned in SIFEUPMazidi, Muhammad, The 80x86 IBM PC andCompatible Computers: Assembly Language,Design and Interfacing, 4th Ed., Prentice-Hal
Note that it does not cover all the subjects, and that, on theother hand, it has a lot more material than needed for thisclass.
Grading (1/2)1. Four lab assignments are graded.
I You must submit your code via SVN at the end of the lastclass of every lab;
I Grading will be done off-line on code retrieved from theSVN repository
2. We will also grade your participation in the class, i.e.whether you have prepared the lab, whether youparticipate actively and your contribution to the work ofyour team
3. The final project must be demonstrated in January (from6th to 8th)
Formula∑
ci ∗ 0.15 + 0.45 FP + 0.1 CP
where ci is the grade of 3 graded-labs (out of 4) of your choiceBUT for a final grade of 19 or 20,you must "choose" the mouse lab
I.e., we’ll use the best 3 grades of the 4 graded labassignments, except for final grades higher than 18.
Grading (2/2)I All grades are individual
I Even though labs and projects should be done in groupsI Lab/project grades are normalized for groups of 2I The grade of each group member is obtained by applying a
factor to the group’s gradeI The factor depends on the member’s
contribution mostlyparticipation alsoto the final result
I We will use a piecewise linear function to determine thevalue of the factor
I Likely "breakpoints" are: (0,0), (0.33,0.8), (0.5,1), (0.8, 1.1)and (1, 1.1)
I Each member of the group must submit a file with its ownself-assessment (contribution and participation) with eachof the labs/projects submitted
I Failure to comply, results in a penalty of 10% in the grade
Final Project Grading (1/2)Execution: 40% + 10%
I 10% for demo in the last lab classCode: 20%
I Structure and ModularityI Documentation (use Doxygen)I Readability
I Nsames and commentsI Indentation
I Compilation warningsFinal Report: 20%
I Summary of what is and what is not implemented;I Usage instructions (with images)I Description of the program’s architectureI Relevant aspects about the implementationI Function call diagram
Tools: 5% (SVN) (We expect you to commit to the SVNrepository at least once a week, and to log messages then)
Project Specification: 5%
Final Project Grading (2/2)
I To the grade obtained by applying the above criteria, we’ll apply:Difficulty Factor
I number and type of I/O devicesI features used of the I/O devicesI I/O techniques used (interrupt vs. polling)I use and extent of assembly programming
Originality FactorTeam Management Factor
I load share among group members
Marketing BonusI of 1 valor for the participation in the Semana Profissão
Engenheiro (SPE), sometime in March 2016I in recent years, we have selected about 3 projects per year
Final Project MilestonesProject proposal: Beginning of the 8th lab (week starting 16th
November)I Half to one page description of the functionalities
desired, of the devices used and their role in theprogram
I Must be rewritten in class, if the instructor does notaccept it
Project specification: Beginning of 9th lab classI Refinement of the proposal, identifying the modules to
implement, their functionality and API.I Should include planning of the projectI Must be rewritten in class, if the instructor does not
accept itFirst demo: At the last lab class of the semester.Project submission: January 4th, 14:00Project presentation: January: 6th to 8th
Project Examples
I Games (video, timer, keyboard and mouse)I Two user games (video, timer, keyboard and serial port)I Electronic calendar (video, keyboard, mouse, RTC and
timer)I Music composer/player (video, keyboard, mouse and timer)I Text editor (video, keyboard, mouse, timer and RTC)I Typing tutor (video, keyboard, mouse, timer)I File transfer between PCs (video, keyboard, serial port)I Chat between PCs (video, keyboard, serial port)I Video player (video, keyboard, mouse, timer and RTC)I Drawing/painting program (video, keyboard, mouse, timer,
RTC and serial port)
TEs Grading
Labs 3 of the 4 graded labs, each with a weight of 15%I Presentation/discussion in the week of that lab class
I Student must get in touch with me ([email protected]) to arrange foran hour, at least 7 calendar days in advance
I Submission at the end of presentation/discussionProject Similar to that of the other students, but with a weight of 55%.
I Presentation/discussion of proposal and specification in thesame week as that of the other students
I Student must get in touch with me ([email protected]) to arrange fora date and hour, at least 7 calendar days in advance
I Submission by the same deadline as other studentsI Presentation/discussion in the same period as for other
students (in January 6th through 8th).IMPORTANT Students wishing to be assessed as TE’s must send me
([email protected]) email until the 25th of SeptemberI If I do not reply in 24 hours, please resend your email
Grading in “Época Especial”
Project Similar to that of the other students, but with a weight of100%
I Presentation/discussion of proposal and specificationI Student must get in touch with me ([email protected]) to arrange for
a date and hour, at least 7 days in advanceI Submission and presentation/discussion within 7 days of
approval of the specification
Academic IntegrityI The UP and we take this issue very seriously
I Check the Despacho do Reitor No 08/09/2011I We believe that the majority of you follow the rules
I You are allowed to discuss the labsI For each lab and for the project, there will be a discussion
forum on MoodleI However, all code submitted should be either:
I Developed by the group membersI Provided by me
I We will use tools to automatically detect common codeI All groups with common code will be penalizedI You may help your colleagues, but cannot not share code
The lab assignments are identical to those of last year, butthis is no excuse
I The penalty may range:From a zero in that lab and a penalty of “2 valores” in your
final grade;To failing the course (especially, in case of reincidence or
of the project)
Important Dates
LabsLab Week Topic CommentsLab 0 21-09 Redmine, SVN and shell Not gradedLab 1 28-09 Video (text) SVN submission checked (5%)Lab 2 05-10 Timer Two classesLab 3 19-10 Keyboard Two classesLab 4 09-11 Mouse One class, plus Semana da FEUPLab 5 16-11 Video (graphics) Two classes
ProjectWhat Week CommentsProposal 16-11 8th lab classSpecification 23-11 9th lab classFirst demo 14-12 Last lab classSubmission 4-01 @ 14:00Presentation 6, 7 and 8 January, 2015 Afternoon
I Three lab classes (but Tuesday section will have only two)
Lab SectionsRegistered S1 S2 S3 S4 S5/S7 S6/S816th Sept. @ 14:55 24 23 23 23 24 2517th Sept. @ 17:52 19 26 24 26 28 27
I I’ve instructed the secretariat not to accept any more registrations(or changes)
I At this point, I’ll handle them myselfI If you want:
I Either, to change to another lab sectionI Or, to register for the first time to a lab section
Then, please send me an email, with:I Your name, student id and email addressI Your current lab section (if any)I The lab sections of your choice (in order of preference)
I Don’t be silly: do not choose both S5 and S7, or both S6 and S8I Justification: Why do you want to change to/register in the section
until Tuesday, 22ndI Next week, students will be allowed to join only groups in
their sections
Acknowledgments
I Prof. António Miguel Pimenta Monteiro (who designed thecourse)
I Prof. João Cardoso (who perfected it)I The lab technicians:
I Rui Fernandes (from previous years)I Nuno Sousa (from previous years)
Thank You!
Questions?
Platform
MINIX 3Unix-like operating system that allows privileged userprocesses to:
I Access every memory addressI Access directly I/O devicesI Process interrupts
LinuxI MINIX 3 is installed in a VMware Player VM
I Can be used for development and testing
Software
I Eclipse with the Remote System Explorer pluginI GNU C compiler and assemblerI Other SW development tools
I makeI SVNI doxygenI arI diff/patch
Announcements
ClassesI Start 10 minutes after the hour, i.e. 11:10.I We’ll make a 5/10 minutes break around 12:00.
I As long as you do not abuseI Otherwise, we’ll skip the break, and hopefully finish before
13:00
LabsI Start next week, i.e. September 21
I All sections will have 12 lab classes, except those onTuesday, which will have only 11 lab classes
I May not be possible to make up for the Dec. 8th lab class:you may have to work as if it were not holidays
Advice
For Lecture Preparation
I Read the material before the lecture:I In each lecture before a lab assignment, I’ll present:
I The concepts and the information required to complete thatlab class
I Provide hints to address the key issues of the labI The lecture slides will be available since the day before at:
http://web.fe.up.pt/ pfs/aulas/lcom2015/I The lab handout will be also available at about the same
time via the same URLso that you can:
I Understand better the lectureI Participate more actively in the lectureI Get your questions answered before the lab class
I If I’m late and you cannot wait, check last year’s materialavailable at http://web.fe.up.pt/ pfs/aulas/lcom2014/