Computer Laboratory
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Arquitechture |
Instance: 2010/2011 - 1S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
MIEIC |
119 |
Syllabus since 2009/2010 |
2 |
- |
6 |
70 |
162 |
Teaching language
Suitable for English-speaking students
Objectives
This course unit aims to endow students with the knowledge and the skills required to:
- use hardware interface of the most common computer peripherals;
- develop low level software and embedded software;
- program in the C language (using C++ as a reference);
- use various tools of software development.
Students, who successfully complete this course unit, should understand the main models of hardware access and be able to apply them in the development of relatively large programs.
Program
Input/Output peripherals and their operation
Direct mapping in a process address space
Access to peripherals in polled mode and by interrupt
Processor interrupts in the IA-32 architecture and the interrupt controller. Writing interrupt service routines in Assembly and in C
Study of some typical personal computer peripherals, such as keyboard, mouse, graphics card, real time clock, timer, loudspeaker and serial port.
Programming in the C programming language: main differences with respect to C++ language; structured programming in C.
Memory layout of a process. Function calls: mechanisms, parameter passing, storage of local variables and return values.
Combined programming in C and the IA-32 processor family assembly.
Creation and use of libraries. Static linking of object code.
Use of software development tools: gcc, make, gdb, ar, prof, diff, patch and SVN.
Complementary Bibliography
Muhammad Ali Mazidi; 80X86 IBM PC and Compatible Computers: Assembly Language, Design, and Interfacing Volumes I & II, Prentice Hall, 2003. ISBN: 0-13-061775-X
Teaching methods and learning activities
A "learn by doing" approach will be used. In each of the first 7 weeks, students will have a lab assignment about one PC peripheral. In the remaining weeks, students will develop a small integration project using several peripherals and the techniques previously studied.
Lecture classes will be used to present the concepts, taking into account their application, and to discuss the details of the lab assignments and the projects.
Software
DJGPP: Plataforma de programação GNU para DOS e MS-Windows
SVN: Sistema de controlo de versões
NASM: "Assembler" para a arquitectura IA-32
keywords
Physical sciences > Computer science > Computer architecture
Physical sciences > Computer science > Programming
Evaluation Type
Distributed evaluation without final exam
Assessment Components
Description |
Type |
Time (hours) |
Weight (%) |
End date |
Attendance (estimated) |
Participação presencial |
58,00 |
|
|
Code development for lab assignments |
Trabalho escrito |
28,00 |
|
2010-11-17 |
Project |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
40,00 |
|
2010-12-17 |
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
Description |
Type |
Time (hours) |
End date |
Understanding of concepts and APIs |
Estudo autónomo |
36 |
2010-11-24 |
|
Total: |
36,00 |
|
Eligibility for exams
Students have to do and present the final project and they cannot miss more than 4 classes.
Calculation formula of final grade
Sum_i(0,05 * Lab_Grade_i ) + 0,35 * Project + 0,10 * Global Evaluation
Examinations or Special Assignments
An individual lab assignment may take place at the end of the semester, if there is any doubt regarding students’ grade.
Special assessment (TE, DA, ...)
Students association leaders will be assessed as ordinary students
Working students have to do the project and four lab assignments(1 every other week, in the first 8 weeks), and present them to the instructor.
Classification improvement
Students have to do a project and lab assignments in the following year.
Observations
Prerequisites: Students should have completed the following course units: Programming, and Microprocessors and Personal Computers.
In extraordinary situations (such as registration of students who do not know Portuguese), classes can be given in English.