Microcomputers and Assembly Language
CSC 231, Fall 2013
Judy Franklin of the Computer Science Department at Smith

Course Description & Syllabus

Professor: Judy Franklin
Ford Hall, 355
email: jfrankli   at   smith.edu

Hello World, parts 1 and 2

Office hours Monday 2:30 - 3:30, Wednesday 2:30-3:30 (this time changed) or by appointment (send an email).
I have also been known to do some co-debugging of assembly by email.

Class Times: Lectures: Monday, Wednesday 1:10 - 2:30 p.m., Ford Hall 241


Teaching Assistant: Emily Flynn
Wednesday 7:30-9:30pm and Thursday 7-9pm in Ford Hall 342

Department Master Teaching Assistants

     Gavi Levy Haskell
        Thursday 7:00pm-9:00pm in Ford 241 

    Julia Edwards
        Sunday 7-9 in Ford 241
        Monday 7:30-9:30 in Ford 241

Go to the class Homepage for exercises, demo programs, reading assignments, and misc. information.

For now, view the csc231 video to see a bit or two about this course.

Introduction: CSC231, Microcomputers and Assembly Language, is a 4-credit course required for the Computer Science major and is an elective for Engineering. It is usually offered in the fall, and is the third computer course most CS majors will select, after having taken CSC111 and CSC212, both prerequisites for CSC231.

Like CSC111 and CSC212, Micro and Assembly Language is a programming intensive class, where students learn how the high-level constructs of Python, C, C++, or Java 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:

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

Prerequisites: Students should also have a good understanding of the binary and hexadecimal systems, which will be reviewed briefly during class.

Schedule: The class meets twice a week, and programming assignments are given regularly. About 10 homework assignments can be expected. There will be an in-class midterm exam and a final take-home exam. There will be a final project that involves research into another processor and its intruction set.
The course covers the following topics:


On-line Textbooks and tutorials:

Additional Sources:

Other Sources of Material: Check the Class Homepage for additional links to assembly-related sources.

Lateness Policy: Your grade will decrease by one whole grade for each day your assignment is late (except in case of documented illness or personal difficulties). The assignments are tentatively scheduled to be due every Monday evening at midnight.

Grading: Homework assignments 60%, Midterm 15%, Final 15%, Final Project 10%