[ Department of Physics ] [ Dr. Tay's Homepage ] [ Faculty of Science ] [ NUS Home ]

CP2315 Advanced Scientific Programming in C


Preface

Advanced Scientific Programming in C focuses on Advanced C Language and its applications on controlling peripheral devices. Students will master the programming skills used for low-level processing. The computer hardware knowledge will also be taught so that you will be more confident when you write C program to control the computer. As you have already known, learning to write a computer program requires you to dirty your hands. You must be willing to put in effort to debug your work. I would encourage you to use debugger frequently so that you can better feel the logic used.

Syllabus

Advanced C features used to control I/O devices, bit manipulation, memory management, records, file management, handling direct access files, interrupt processing.

Practical Work

  1. Command Line
  2. Bit Interleaving
  3. Computer Game
  4. Musical Production
  5. Data Compression
  6. Mouse Pointer

Lecture Contents

  1. Passing Argument to main Function from command Line
  2. Bit Operations
  3. Bit Manipulation
  4. Direct Screen I/O technique for PC
  5. Interconnection Structure
  6. File Operations
  7. Dynamic Memory Allocation
  8. Computer Functions
  9. Accessing the BIOS

Text and Reference

  1. Introducing Computers, Concepts, System and Applications, Robert H. Blissmer, John Wiley and Sch, Inc, 1993-94 Edition, ISBN 0-471-58145-3.
  2. Computer Organization and Architecture, William Stallings, Macmillan Publishing Company, 1987, ISBN 0-02-415480-6.
  3. Advanced C, Peter D. Hipson, SAM Publishing, ISBN 0-672-30168-7.
  4. C - An Introduction with Advanced Applications, Prentic Hall, ISBN 0-13-480781-2.

Teaching Plan

Week
No.
Week
Starting
Lecture Practical Tutorial
1 19/7/99 Mon,Thur    
2 26/7/99 Mon,Thur    
3 2/8/99 Mon,Thur Command-Line  
4 9/8/99 Thur   Set 1
5 16/8/99 Mon,Thur Bit-Interleaving  
6 23/8/99 Mon,Thur   Set 2
7 30/8/99 Mon,Thur Computer Game  
8 6/9/99   Recess  
9 13/9/99 Mon,Thur   Set 3
10 20/9/99 Mon,Thur Muscial Production  
11 27/9/99 Mon,Thur   Set 4
12 4/10/99 Mon,Thur Data Compression  
13 11/10/99 Mon,Thur   Set 5
14 18/10/99 Mon,Thur Mouse Pointer  

Lectures on Monday and Thursday, 1:00 to 1:45 pm, LT-32.

Tutorial Options:  Tuesday 12 nn to 1pm, Wednesday 2 pm to 3 pm.
Practical Options: Tuesday 12 nn to 2pm, Wednesday 2 pm to 4 pm.

Make-up lectures will be conducted for the skipped lectures due to national day.

A quiz will be given on week-6 in LT, and a programming test will be given on week-10 in Lab. The common free time will be determined later

Words of Advice

Each assignment is individual. While I always encourage students to help each other, all students should ultimately submit their own program. Students may discuss the assignments among themselves or in our discussion group, but they should not collaborate while writing the final program. After all, please remember that you still have to solve the test and examination questions all by yourself.

You are encouraged to discuss your problems with me. The surest way leading to a fruitful discussion is to prepare yourself before you come. I would like to see you with a list of questions written on a piece of paper, and I will answer them one by one. Appointments may be made by voice mails or electronic mails. You can consult me at any time and any where, except in the deep pool (because I will sink if I get distracted).

Discussion Group: forum.class.cp2315
http://ivle.nus.edu.sg/ivle/default.html

Files to be downloaded for Practical 1, Practical 2, Practical 3 , Practical 4, Practical 5, Practical 6, Examples

Back to the Top