Course syllabus

EDA452/DIT792 Introduction to Computer Science lp2 HT25 (7.5 credits)

The course is given by the Department of Computer Science and Engineering

 

Contact

Examiner: Rhouma Rhouma   rhouma@chalmers.se                   Lectures 1-8

Lecturers : Sergei Dytkov       sergei.dytckov@chalmers.se        Lectures 9-10, Demos 5-6

                  Elias Hallqvist        elias.hallqvist@chalmers.se          Lectures 11-16, Demos 7

                  Andreas Wieden    andreas.wieden@chalmers.se     Demos 1-4

Lab Admin : Roman Melnik     melnik@chalmers.se                    Labs 1-4

TAs: to be added

 

Course Purpose

The course will provide basic knowledge in the design of digital circuits and an understanding of how such circuits can be used to build a simple computer. The course also provides an introduction to programming in assembly language and machine language. The different parts of the course together provide a very good theoretical and practical basis for further studies in both computer technology and programming technology courses.

Schema

Link to TimeEdit

 

Course literature

Structure of the course

The teaching consists of lectures, demonstrations, group exercises and four compulsory laboratory sessions. Lectures and demonstrations are devoted to theory and review of exercise examples. Group exercises are mainly devoted to preparation for the laboratory work, as well as preparation for the exam. The laboratory sessions are carried out in the department's course laboratory in groups of two students. Each laboratory session is normally performed during a 4-hour scheduled laboratory session. In order to start a laboratory session, well-executed laboratory preparations are required, which must be presented and approved by a supervisor during the group exercise that precedes each laboratory session.

Initially, various basic digital circuits called logic gates are described. These realize various logic functions such as AND, OR and NOT. The logic gates are used to construct digital building blocks that are then used to build a simple computer. The computer and its building blocks are developed and tested step by step during the first three laboratory sessions. The course ends with a laboratory session where the student writes programs for the simple computer in assembler and in machine language.

 

 

Intended learning outcomes

Knowledge and understanding:

  • describe binary codes such as NBCD code, alphanumeric codes, Excess-n codes and Gray code
  • describe addition and subtraction with 2-complementary arithmetic.
  • describe the structure and function of the computer, show how the control unit, data path, registry file, arithmetic and logic unit (ALU) are connected in a central unit at block level
  • describe and analyze the function and structure of the automatic control unit and explain how instructions are built up from control sequences
  • explain the principle of the stored program
  • describe a programmer's image of a processor, (instruction set and method of addressing)
  • describe elementary exception handling in computer systems.
  • describe different types of memory technologies such as ROM, PROM, FLASH, static RAM and dynamic RAM.
  • explain the concept of memory hierarchy.
  • describe synchronous and asynchronous bus protocols and multiplex technology.

Skills and abilities:

  • describe and use binary codes for arithmetic.
  • perform conversion of numbers between decimal, binary, and hexadecimal representation.
  • perform addition and subtraction with binary integers without characters.
  • perform addition and subtraction with binary numbers with 2-complementary arithmetic.
  • using Boolean algebra, describe, analyze, and construct combinatorial networks (such as selectors, distributors, he-ladders, shift registers, etc.) typically used to build a computer's central unit
  • using Boolean algebra, describe and analyze sequence networks (memory elements and counters) that are typically used to build a computer's central processing unit.
  • analyze/construct a simple ALU and design Control signal sequences for basic ALU operations
  • analyze a simple data path, as well as construct and design control signal sequences for transmissions between registers, ALUs and memory.
  • describe, analyze and construct simple assembly programs, organized in subroutines.
  • Translating code between machine and assembly programs (assemble, disassemble)
  • describe and analyze decoding logic for primary memory with digital components.
  • describe and analyze simple memory-addressed IO with digital components
  • describe and explain the most common primary memory technologies (static/dynamic RAM, ROM and FLASH memory).
Judgement and approach:
  • have the ability to understand the interaction between hardware and software.
  • have insights into how basic knowledge in computer technology is a prerequisite for understanding and working with issues related to computer performance, energy consumption, environmental impact, real-time properties, reliability and vulnerability to data breaches.
  • analyze and construct control signal sequences based on the semantics of instructions.
  • construct sequence grids (memory elements and counters) typically used to build a computer's central unit using Boolean algebra.
  • construct primary memory decoding logic with digital components.
  • Construct simple memory-addressed IO with digital components.

Examination

Written exams will be given on 17 January 2025, 08 April 2025 and 20 August 2025

Approved laboratory sessions (4 pieces).

The final grade is determined by the exam result.

Grade limits Chalmers: 3, 4, 5

Link to the syllabus in the Study Portal Introduction to computer engineering

Link to syllabus in university of Gotenburg Kursguide - Course Syllabus

Course summary:

Course Summary
Date Details Due