King Fahd University of Petroleum & Minerals

College of Computer Science and Engineering

Information and Computer Science Department

Syllabus for ICS 201 - Introduction to Computer Science

Second Semester 2001 (002)

 


Instructor: Bashir M. Ghandi,          Room No: 22/124-9,                 Phone No: 4016

E-mail:  bmghandi@ccse.kfupm.edu.sa           Home Page:  http://www.ccse.kfupm.edu.sa/~bmghandi

Office Hours:       SMT:10.00 – 11.50        (E-mail me for an appointment outside these hours.)

 

Text Book:  “Computing Concepts with Java 2 Essentials”,  Cay Horstmann, John Wiley, 2nd Edition, 2000.

 

Catalog Course Description:

Advanced Java programming concepts. Introduction to vomputer graphics, Simple graphical user interfaces. Basic data structures. Searching and sorting techniques. Survey of computer science areas. Case studies and practice in developing small scale programs.

 

Grade Distribution:

 

Activity

Weight

Labs (12 x 0.75%)

9%

Lab Tests (1% + 1% + 2% + 2%)

6%

Lab Homeworks (4 x 1.2%)

5%

Project

5%

 

Important Notes:


Lecture & Lab Schedule

 

Lecture

Topic

Book Section

Lab Activity

1

Review of ICS102 Programming Fundamentals

9.1 – 9.5, 9.1

No Lab

2

Java Packages & Program Documentation

9.10 + Notes

3

Literate Programming using Java and XML

Notes

4

Further OO Concepts I

9.6-9.10 + Notes

Lab 0: Literate Programming using Java and HTML/XML

5

Further OO Concepts II

6

Introduction to Computer Graphics

7

Simple Applications of Computer Graphics

Notes

Lab 1: Experience with Further OO Concepts

8

Operations on Graphics Objects

9

Abstract Classes

10

Interfaces

9.7 + Notes

Lab 2: Practice with Drawing and Manipulating Graphics Shapes

Lab Test# 1

11

Role of Interfaces in Large-Scale Applications

12

Introduction to GUIs

13

Layout Management & Layout Managers in Java

12.1 – 12.6 + Notes

Lab 3: Practice with Abstract Classes and Interfaces

HW# 1

14

Simple Examples using Swing GUI Components

15

Introduction to Threads and Concurrency

16

Review of Major Examination I

Notes

Lab 4: Developing Simple GUIs using Swing Components

17

Access Control and Threads Synchronization

18

Developing a Multi-Threaded Application

19

Introduction to Software Engineering

Notes + 15.6-15.9

Lab 5: Developing Simple Multi-Threaded Applications

HW# 2.

20

Introduction to CASE Tools

21

Searching: Linear & Binary Search

22

Sorting: Insertion & Selection Sort

15.1-15.3

Lab 6: Experience with UML – CRC, Interaction diagrams.

Lab Test# 2

23

Sorting: Quick Sort

24

Recursion & Basic Data Structures

25

Design Alternatives for Implementing Stacks, Queues, Lists

Notes + 16.1-16.3

Lab 7: Searching and Sorting.

26

Stacks, Queues & Lists: Implementation & Assessment

27

Introduction to Databases

28

Operations on Databases

Notes

Lab 8: Applications of Stack, Queues and Lists

HW# 3

29

Introduction to Data Communication Systems

30

Transmission Media & Their Characteristics

31

Data Encoding using Huffman Coding Algorithm

Notes

Lab 9: Databases

Lab Test# 3

32

Introduction to the OSI Model & Standards

33

Introduction to IP Addressing and Routing

34

Review of Major Examination II

Notes

Lab 10: Data Communications and Networking

HW# 4

35

Introduction to Programming Languages

36

Language Descriptors and Generators

37

Introduction to Artificial Intelligence (AI)

Notes

Lab 11: Practice with Language Descriptors and Generators using Applets

38

Overview of Main Branches of AI

39

Introduction to Operating Systems I

40

Introduction to Operating Systems II

Notes

Lab 12: AI using Applets

Lab Test# 4

41

Review for Final Examination

 

Project Presentation