Introduction to Computer Science (CSI106)
Vietnamese title: Nhập môn khoa học máy tính
Credits: 3

Description:
This course provides an overview of computer fundamentals. Topics cover all areas of computer science in breadth such as computer organization, network, operating system, data structure , file structure, social and ethical issues.
Major Instructional Areas
- Introduction to Von Neumann Model and computer components
- Numbering system & data representation
- Different data types and operations on data
- The concepts of computer networking and internet
- Operating system
- Introduction to basic algorithms and algorithms representation
- Introduction to Data structure and File structure
- The concepts of database
- Software engineering
- Computing Security & Ethics
- Introduction to Artificial Intelligence (Additional Learning)

Learning outcomes:
Understand the subsystems of a computer and describe the role of these components
Distinguish between text file and binary file and access methods
Describe and explain operations within a relational database
Descibe security goals and discuss ethical issues
Describe artificial intelligence and its basic concepts
Know how to convert a number from one base to other base( decimal, binary, octal and hexadecimal)
Describe how different data type is stored inside a computer as bit patterns and operations on data
Describe the layers in netwoking and their relationship
Undestand the role of OS in a computer system
Define a algorithm and describe tools used to develop algorithms
Explain how a program in a high-level language is translated into machine language
Describe the software lifecycle
Discuss some data structures: Array, Records, Linked list

Student tasks:
- Students must attend at least 80% of contact sessions in order to be accepted to the final examination.
- Students are responsible to do all exercises, assignments and labs given by instructor in class or at home and submit on time
- Use laptop in class only for learning purpose
- Complete Additional Learning (AI For Everyone course in Coursera) and achieve the certificate
- Promptly access to the https://flm.fpt.edu.vn for up-to-date course information

Tools:

Materials:
description: Foundations Of Computer Science
author: Behrouz Forouzan
publisher: Cengage
published_date: 2017
edition: 4th
isbn: 978-1-4737-5104-0
description: Fundamentals of Information Systems Security
publisher: Jones & Bartlett
published_date: 2016
edition: 3rd
description: Computer architecture : A quantitative approach
author: John L. Hennessy, David A Patterson
publisher: Morgan Kaufmann
published_date: 2011
edition: 5th
description: AI For Everyone" course in Coursera
https://www.coursera.org/learn/ai-for-everyone/
author: Andrew Ng
publisher: DeepLearning.AI
note: Additional Learning

Assessments:
category: Group presentation
type: on-going
weight: 10.0
duration: Option 1: 30'/group Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: Presentation1. One or many of CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7, CLO8, CLO9, CLO10
Presentation2. CLO13
no_question: Option 1: .ppt and oral presentation
Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: N/A Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: one of the appendices
note: Each group selects one topic ralated to Addional Learning ( (AI For Everyone course in Coursera) to present and has at least two weeks to prepare the presentation

Presentation 2:
- .ppt and oral presentation
- Topics related to Additional Learning (Chapter 18 in Textbook, Deep Learning in Object Detection and Recognition, Speech Emotion Recognition, Traffic Sign Recognition, Federated Learning,…)
category: Lab
type: on-going
weight: 20.0
duration: Option 1: 60-90'/each Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: Lab1. CLO2

Lab2. One or many of CLO6, CLO7
no_question: Option 1: practical exercises Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: N/A Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: technical aspect of studied topics
note: Guided by instructor
- Labs are arranged relevant to the chapter theory
- Student must finish labs and submit the results to the lecturer in class.
category: Progress Test
type: on-going
weight: 30.0
duration: Option 1: 30'/each Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: Test1. CLO1, CLO2, CLO3, CLO4, CLO5

Test2. CLO6, CLO7, CLO8, CLO9
Test3. CLO10, CLO11, CLO12, CLO13
no_question: Option 1: MC or suitable format Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: 30 Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Test 1: Chapters 1, 2, 3, 4, 5 , 6, 7
Test 2: Chapters 8, 9, 10, 11, 12
Test 3: Chapters 13, 14, 16, 18, 20
note: in class, by instructor
category: Final exam
type: Final exam
weight: 40.0
duration: 60'
question_type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7, CLO8, CLO9, CLO10, CLO11, CLO12
no_question: Multiple choices
Marked by Computer
knowledge_and_skill: 60
grading_guide: concepts, algorithms; all studied Chapters
.
note: by exam board,
using computer

Schedule:
session: Introduction to the Course
1.Computer Organization
1.1 Von Neumann model
learning_outcomes: IT
materials: CSI106
session: 1.2 Computer generations
learning_outcomes: TU
materials: CSI106
session: 1.3 Subsystems and the role of subsystems
learning_outcomes: TU
session: 1.4 Central Processing Unit
learning_outcomes: TU
session: 1.5 Memory: main memory
learning_outcomes: TU
session: 1.6 Input/Output subsystems
learning_outcomes: TU
session: 1.7 Different architectures
learning_outcomes: TU
session: 2. Numbering systems
2.1 Introduction
2.2 Positional Number Systems
learning_outcomes: TU
session: 2. Numbering systems
2.3 Conversion
learning_outcomes: TU
session: Lab 1: Guide
learning_outcomes: TU
session: Lab 1: Guide
learning_outcomes: TU
session: Introduction to presentation 1
learning_outcomes: TU
session: 3.Data storage and Operations on Data
3.1 Storing Numbers
learning_outcomes: TU
session: 3.Data storage and Operations on Data
3.2 Storing Text, Media, Image, Video
learning_outcomes: TU
session: 3.3 Logic operations
learning_outcomes: TU
session: 3.3 Shift, Arithmetic operations
learning_outcomes: TU
session: 4. Computer Networks and Internet
4.1 Overview
4.1.1 LAN & WAN
4.1.2 TCP/IP protocol
learning_outcomes: TU
session: 4. Computer Networks and Internet
4.2 layers in netwoking
learning_outcomes: TU
session: Progress test 1
learning_outcomes: TU
session: 5. Operating System
5.1 Introduction
5.2 Evolution
learning_outcomes: TU
session: 5. Operating System
5.3 Components of OS: UI, memory manager
learning_outcomes: TU
session: 5. Operating System
5.3 Components of OS: file manager
learning_outcomes: TU
session: 5. Operating System
5.3 Components of OS: device manager
learning_outcomes: TU
session: 6. Algorithms
6.1 Concepts: input, output, processing
6.2 Three basic constructs
learning_outcomes: TU
session: 6. Algorithms
6.1 Concepts: input, output, processing
6.2 Three basic constructs
learning_outcomes: TU
session: 6.3 Algorithm representation
6.4 Search Algorithms: linear, binary
learning_outcomes: TU
session: 6.3 Algorithm representation
6.4 Search Algorithms: linear, binary
learning_outcomes: TU
session: Presentations 1
learning_outcomes: TU
session: Presentations 1
learning_outcomes: TU
session: Introduction to Additional Learning: "AI For Everyone" course in Coursera
Introduction to presentation 2
(Students have to complete Additional Learning and achieve the certificate before Presentation 2)
learning_outcomes: TU
session: 7. Programming
7.1 translation
learning_outcomes: TU
session: 7. Programming
7.2 programming paradigms
learning_outcomes: TU
session: Lab2: Guide
learning_outcomes: TU
session: Lab2: Guide
learning_outcomes: TU
session: 8.Software engineering
8.1 The software lifecycle
8.2 Analysis phase
learning_outcomes: TU
session: 8.Software engineering
8.1 The software lifecycle
8.2 Analysis phase
8.3 Design phase
learning_outcomes: TU
session: 8.4 Implementation phase
learning_outcomes: TU
session: 8.5 Testing phase
learning_outcomes: TU
session: 9. Data structures
9.1 Arrays
9.2 Records
learning_outcomes: TU
session: 9. Data structures
9.3 Linked List
learning_outcomes: TU
session: 9.4 Introduction: Stack, Queue, Tree, graph
learning_outcomes: TU
session: Progress test 2
learning_outcomes: TU
session: 10.File structure
10.1 Text versus Binary
learning_outcomes: TU
session: 10.File structure
10.2 Access methods
learning_outcomes: TU
session: 11. Database
11.1 Introduction
learning_outcomes: TU
session: 11. Database
11.2 Database architecture
learning_outcomes: TU
session: 11.3 Database model
11.4 The relationship database model
learning_outcomes: TU
session: 11.5 Database design
learning_outcomes: TU
session: 11.6 Guide do practice set (database)
learning_outcomes: TU
session: 12. Security and Ethical Issues
12.1 Introduction
12.2 Confidentiality
learning_outcomes: TU
session: 12. Security and Ethical Issues
12.3 Ethical Principles
learning_outcomes: TU
session: 12.4 Privacy
learning_outcomes: TU
session: 12.5 Hackers
learning_outcomes: TU
session: Presentation 2
learning_outcomes: TU
session: Presentation 2
learning_outcomes: TU
session: Review Additional Learning (AI For Everyone course)
learning_outcomes: TU
session: Progress test 3
learning_outcomes: TU
session: Review
learning_outcomes: TU
session: Review
learning_outcomes: TU
session: Review
learning_outcomes: TU