Winter Semester 2008/09
Winter Semester 2009/10
Winter Semester 2010/11
Winter Semester 2011/12
Winter Semester 2012/13
Winter Semester 2013/14
Introduction to Computer Science IN081106
Course content:
Computer organization and architecture. Von Neumann conception. Princeton and Harvard architectures. Multiple processor organizations. Clusters and supercomputers. Computer evolution and performance. Moore’s law.
Hardware components of computer (processor, memory, I/O modules). Computer memory system. Memory hierarchy. Random access memory (DRAM and SRAM). Cache memory organization. Computer bus interconnection. Processor structure and functions. Machine instruction set. Instruction formats. Addressing modes. Reduced and complex instruction set computers (RISC and CISC). Register organization. Stack memory. Procedure calls. Interrupt processing. Instruction cycle. Instruction pipelining. Instruction-level parallelism (superscalar architectures, hyper-threading, multi-core).
Computer system data representation. Integer representation (sign-magnitude, one-complement, two-complement, biased). Integer arithmetic on numbers in two-complement representation. Floating-point representation. IEEE 754 standard. Floating-point arithmetic. Floating-point unit architecture. Error detection and correction codes. CRC, ECC, Hamming code. Boolean algebra in digital circuit design. Simplification of logic circuits.
Software design. Software development and maintenance process. Software design patterns. Design principles and concepts. Unified Modeling Language (UML). UML modeling and diagrams. Software engineering management (planning, coordinating, measuring, monitoring, controlling, and reporting).
Learning outcomes:
Understanding of representation of numbers in computers. Knowlege of data encoding. Knowlege of two's-complement and floating point arithmetic. Knowlege of processor unit organization.
(in Polish) Rodzaj przedmiotu
Course coordinators
Learning outcomes
Student explains the basic principles of computer organization and architecture, describes the major components of computer system and how these components interact.
Student describes and explains organization and functions of basic processor components, identifies the elements of processor instruction set architecture, explains the details of program execution at the machine level.
Student describes the details of data representation, including integer and floating-point formats, interprets the contents of machine word in accordance with the applied data representation.
Student explains in detail the operation of the arithmetic unit, including the algorithms of two-complement and floating-point operations.
Student uses the two-element Boolean algebra to describe and simplify digital circuits.
Student identifies and describes methods, concepts and techniques of the software engineering approach to producing quality software.
Student describes approaches and efficient techniques for managing and optimizing the software development process.
Bibliography
a) basic references:
1. S. Gryś, Arytmetyka komputerów, PWN, Warszawa, 2007.
2. J. Ogrodzki, Wstęp do systemów komputerowych, Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, 2005.
3. B. Pochopień, Arytmetyka systemów cyfrowych, Wydawnictwo Politechniki Śląskiej, Gliwice, 2003.
4. W. Kwiatkowski, Wprowadzenie do kodowania, BELStudio, Warszawa, 2010.
5. J.G. Brookshear, Informatyka w ogólnym zarysie, WNT, Warszawa, 2003.
6. A. Skorupski, Podstawy budowy i działania komputerów, WKŁ, Warszawa, 2003.
b) supplementary references:
1. W. Stallings, Organizacja i architektura systemu komputerowego. Projektowanie systemu a jego wydajność, WNT, Warszawa, 2004.
2. J. Biernat, Architektura komputerów, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław, 2005.
3. A.S. Tanenbaum, Strukturalna organizacja systemów komputerowych, Helion, Gliwice, 2006.