ºÚ¹Ï³ÔÁÏÍø

Internal

CS1FC16 - Fundamentals of Computer Science

ºÚ¹Ï³ÔÁÏÍø

CS1FC16-Fundamentals of Computer Science

Module Provider: Computer Science
Number of credits: 20 [10 ECTS credits]
Level:4
Terms in which taught: Autumn / Spring / Summer module
Pre-requisites:
Non-modular pre-requisites:
Co-requisites:
Modules excluded:
Current from: 2021/2

Module Convenor: Dr Hong Wei
Email: h.wei@reading.ac.uk

Type of module:

Summary module description:
This module introduces the essential concept of computer systems in the autumn term, and the foundations of data structures and algorithms in the spring term.

Aims:

The module aims to establish a foundation for computer science students with the main features of computer systems and algorithms, from which students can appreciate the relevance and interrelationships of further studies in the discipline.



This module also encourages students to develop a set of professional skills, such as problem solving, creativity, and numeracy.


Assessable learning outcomes:

Students completing this module should be able to:




  • describe the structure of computer systems and the interaction between software and hardware;

  • use binary code for information representation

  • articulate data manipulation inside a computer system through a machine language (instructions) and relevant operations

  • explain the role of computer networking in computer communication, including internet and its applicatio ns

  • appreciate the importance of information security in computer design and usages

  • explain the role of designing algorithms, as distinct from designing programs

  • describe and use various data structures in computer programs

  • analyse an algorithm and assess its efficiency

  • construct pseudo-code algorithms from problem specifications

  • appreciate efficiency of different programming languages.

  • Perform simple computations involving relations, orders and power sets

  • Suggest a suitable encoding for a data structure and write code to process it

  • Compare and contrast different machine arithmetics, such as fixed point and floating point

  • Explain why and when two expressions are equivalent for real numbers, one might be preferred over the other for machine arithmetic


Additional outcomes:

Programming skills are enhanced in solving real world problems.


Outline content:

General introduction to computer systems and hardware/software interaction;




  • Information representation: binary representation of text, integer, and floating points;

  • Data manipulation: the role of computer architecture, instructions and program execution;

  • Operating systems: components and their functions;

  • Computer networking: network classification, protocols, internet architecture and applications;

  • Information security: threats and protections, good practices;
  • Data structure: graphs, trees, lists, stacks, queues;

  • Algorithms: the art of problem solving, searching and sorting, time order;

  • Relations (reflexive, symmetric and transitive), orders (partial and total) and power sets.

  • Encoding of strings, vectors and matrices.

  • Comparison of different machine arithmetics.


Brief description of teaching and learning methods:

The module comprises 2 lectures per week, associated with laboratory practicals and tutorials. Coursework assignments are used to reinforce the relevant lectures.


Contact hours:
Ìý Autumn Spring Summer
Lectures 20 20 2