University of San Francisco, Department of Computer Science

CS 210 - Assembly Language and Systems Programming

http://www.cs.usfca.edu/~afedosov/cs210


Lecture: Mon and Wed 3:15pm - 5:00pm (Harney 512)

Staff


Instructor: 		 Alex Fedosov 

Email: fedosov@usfca.edu
Phone: (415) 422-5185
Office: Harney 539
Office hours: MW 2:00 pm - 3:00 pm, or by appointment.

TA: JJ Co
Email: johnsten_co@hotmail.com
Office: Harney 235
Office Hours: TR 1:00 pm - 3:00 pm

TA: Ivana Naeymi-Rad
Email: ivanaN9@hotmail.com
Office: Harney 235
Office Hours: R 5:00 pm - 8:00 pm
Office Hours: Sunday 3:00 pm - 10:00 pm

Course Objectives and Topics

This course introduces students to programming in assembly language for the IA-32 (x86) platform and to the underlying concepts of systems programming, such as hardware management, device access, and system services. Primary emphasis will be on Intel x86 machines running DOS/Windows and Linux operating systems. A tentative list of topics includes:

Prerequisites

Some familiarity with a C-like language is assumed. We will go through a review of the C language and perhaps cover some new material, so you need not be a C expert. But please see me if you have any questions or concerns about the prerequisites.

Course Materials

Assignments and Exams

There will be a total of five programming projects (tentatively), both in x86 assembly and C. There will also be several (exact number to be determined) homework assignments. There will be two midterms and a final. The purpose of the exams will be to assess your understanding of assembly language and systems programming concepts and your ability to put them into practice. Most of the material covered on the exam will be based on information presented in lecture and assigned readings. In addition, some exam questions will be based on the programming projects.

Grading

Breakdown


Assignments: 		 40% 

Midterm I: 15%
Midterm II: 15%
Final: 30%

Policies

All assignments and exams will be divided into 100 points. Grading will be done on an absolute scale:


A 		 90% - 100% 

B 80% - 89%
C 70% - 79%
D 60% - 69%

As such, you are guaranteed an A- if you score 90% or higher. For some assignments and exams, the minimum percentage values may be adjusted according to the level of difficulty. In that case, however, the values can only be lowered, never raised.

Due Dates and Lateness

Projects must be turned in on time to receive credit. Late assignments will not be accepted, except in the most extreme situations. Likewise, makeup exams will not be given. If you must miss an exam in an extreme situation, please contact the instructor or the CS Office before the exam. We realize that most of you have very demanding schedules and some of you must work to support yourselves. However, please do not ask us to accept either of these as excuses for late assignments or diminished performance.

Class Attendance

Although attendance is not part of the grade, you are encouraged to attend all class meetings. As such, you are responsible for all the materials covered in lecture, handouts, and assignments. If you miss a class, please consult one of your classmates for notes & announcements. I will be more than happy to provide you with materials handed out but do not expect me to go through the lecture you missed during office hours.

Cheating and Plagiarism

Each student is required to do his or her own work. It is fine to discuss a problem and general approaches to solving it with others but each student should develop his or her own solution; collaborative efforts are not allowed. In addition, using a solution from any other source (online, past courses, recycle bin) is forbidden. Turn in only your original work. Any instance of suspected cheating or plagiarism will be referred to the Committee on Student Academic Honesty. For more information, see the Policy and Procedures described in detail in the USF General Catalog 2000-2002 starting on page 53. Consult the instructor if you have any questions.

Computer Usage

We will be using both DOS and Linux in this course. All the projects will involve writing programs that run under one of these operating systems. The computer labs on the 5th floor of Harney (530 and 535) have PCs running both operating systems. All of your programs will be expected to run on these PCs.

If you decide to use your home machine for development, any configuration and compatibility problems are your responsibility and cannot be used as an excuse for lateness. Furthermore, be sure to test your code on the lab PCs. Also, be very careful about saving your work. Losing your work is NOT an acceptable excuse for program lateness.



Alex Fedosov 2002-10-02