CSC231 Syllabus 2010

From dftwiki3
Jump to: navigation, search

<meta name="keywords" content="computer science, assembly language, pentium, linux, programming" /> <meta name="description" content="Dominique Thiebaut's Web Page" /> <meta name="title" content="Dominique Thiebaut -- Computer Science" /> <meta name="abstract" content="Dominique Thiebaut's Computer Science Web pages" /> <meta name="author" content="thiebaut at cs.smith.edu" /> <meta name="distribution" content="Global" /> <meta name="revisit-after" content="10 days" /> <meta name="copyright" content="(c) D. Thiebaut 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,2008,2009,2010" /> <meta name="robots" content="FOLLOW,INDEX" />

Back to CSC231 Main Page



Microcomputers and Assembly Language

CSC 231, Fall 2010



Course Description & Syllabus
(http://cs.smith.edu/dftwiki/index.php/CSC231_Syllabus_2010)



Prof

Dominique Thiébaut
Ford Hall, 356.
Telephone: 3854
Office hours M 3:00-5:00 p.m. & W 3:00-4:00 p.m., and by appointment


Go to the class Class Homepage for exercices, demo programs, and misc. information.

Introduction

CSC231, Microcomputers and Assembly Language, is a 4-credit course required for the major. It is usually offered in the fall, and is the third computer course most CS majors will select, after having taken CSC111 and CSC112, both prerequisites for CSC231.
Similarly to CSC111 and CSC112, Micro and Assembly Language is a programming intensive class, where students learn how the high-level constructs of C, C++, or Python programs are executed by the computer: procedure calls and parameter passing, stack use and recursion. The class is also an introduction to the organization of the Intel 80X86/Pentium family of processors, and to the architecture of the IBM PC. Students write programs that directly control the microprocessor and the different hardware components inside the computer. The programming environment is Linux, and we use the NetWide Assembler (NASM) to assemble programs. Working on homework assignments will require using computers in one of several ways:

  • Using a Windows or Mac computer and connecting to the main Linux computers of the CS department (grendel.csc.smith.edu, or beowulf.csc.smith.edu) as was done for the CSC111 or CSC112 classes.
  • Using one of the PCs in the Science Center, restarting it and selecting Linux as the operating system, and using the NASM assembler directly.
  • Installing Linux on your own PC, then installing NASM on it.

In short, any PC compatible in Ford Hall, or connected to one of the Novell networks on campus can be used to access our Unix environment and work on CSC231 assignments.

We will also use the DDD debugger, the emacs editor (or your favorite editor) and various other unix utilities.

Prerequisites

CSC111, Introduction to computer science, and CSC212, Data structures. Students should also have a good understanding of the binary and hexadecimal systems, which will be reviewed briefly during class.


Schedule and Covered Material

The class meets 3 times a week, and programming assignments are given regularly. Approximately 12 homework assignments can be expected this semester. There will be an in-class midterm exam and a final take-home exam.

The course covers the following topics:

  • The 80X86/Pentium family of processors.
  • Data manipulation instructions.
  • Binary arithmetic.
  • Introduction to system calls. Input/output operations.
  • Procedure calls.
  • Stack operations and parameter passing.
  • Arrays.
  • String operations.
  • Dynamic memory allocation and pointers.
  • Unix internals. More system calls.
  • Hardware interrupts and device drivers.

Class Time

Lectures: Monday, Wednesday, Friday 11:00 - 12:10 p.m., FH 342


TextBook

There are no textbooks to buy for for the class. Instead we will rely on on-line documents:

Other Sources

Check the Class Homepage for details.


Assignments and Lateness Policy

No late assignments will be accepted (except in case of documented illness or personal difficulties). The assignments are tentatively scheduled to be due every Wednesday evening at midnight.

One assignment can be dropped during the semester without penalty.

Three unsubmitted assignments will result in an E for the course.

Grading Policy

  • Homework assignments 60%, Midterm 15%, Final Exam 25%.


Class Wiki

  • During the semester, students may create Wiki pages relating to different projects. The wiki pages can be found here.

Teaching Assistants

Alex Cheng (Roving TA)
AlexCheng.jpg
Julia Burch (jburch-at-smith.edu)
JuliaBurch.jpg


Check for Alex and Julia's schedule here.






Back to CSC231 Main Page