SYLLABUS

CSCI 250 Assembly Language
School of Electrical Engineering and Computer Science, University of North Dakota
Fall 2026

Class times & room: 10:10am – 11:00am, MoWeFr; Harrington 108
Credit hours: 3
Prerequisites: CSCI 160
Class pages: https://undcemcs01.und.edu/~wen.chen.hu/course/250/
 
Instructor: Wen-Chen Hu   (my teaching philosophy)
Email: wenchen@cs.und.edu
Office: Upson II 366K
Office hours: 12:30pm – 02:00pm, MoWeFr
Zoom ID: https://und.zoom.us/j/2489867333


Synchronous Class Delivery
The class lectures will be delivered synchronously via https://und.zoom.us/j/2489867333, and the Zoom video will be posted on the Blackboard afterwards. Students can watch the video clips anytime they want.

Textbook (recommended)
Assembly Language for x86 Processors, 8th ed., Kip Irvine, Pearson, ISBN: 978-0135381656

Lecture Notes
Other than the textbook, award-winning, interactive, complementary, and abridged lecture notes (based on the textbook and other online documents and user manuals) and detailed and precise class instructions will be provided. Collectively, the lecture notes and instructions are more like a small book, which supplies much more information than regular notes do and makes the subject studies much easier. Students will not have problem learning the subjects or taking the exams after studying them and doing the homeworks and programming exercises.

Course Description
This course gives a study of assembly language programming and Intel processors will be used. The following topics are covered: computer architecture, hardware and software components, data representation, instruction sets, addressing modes, high-level language interface, assembly language programming including data transfers, procedures, conditional processing, and strings and arrays, and some other special topics.

An assemble-link-execute cycle —


A system structure of basic computer systems —


Objectives
After taking this course, students are able to achieve the following goals, but not limited to:
  • Knowledge of MASM assembly language principles,
  • Analyzing a complex computing problem and applying principles of computing and other relevant disciplines to identify solutions.
  • An ability to apply computer science principles in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
  • Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
Evaluations
    Two programming exercises  ——  20% each
    Two exams                  ——  20% each
    Final exam                 ——  20%

Tentative Schedule
    Weeks  1 &  2  ——  Introduction
    Week        3  ——  MASM assembly language programming exercises
    Week        4  ——  Computer data representation
    Weeks  5 &  6  ——  Fundamental MASM assembly instructions
    Weeks  7 &  8  ——  Arithmetic 
    Weeks  9 & 10  ——  MASM miscellaneous instructions 
    Weeks 11 & 12  ——  Conditional processing
    Week       13  ——  High-level language interface  
    Weeks 14 & 15  ——  Procedures
    Week       16  ——  Shift and rotate


Instructor’s Qualification
The instructor has been teaching assembly languages for more than 20 years, so he is well familiar with the topics. In addition, he designed and implemented a POPLOG virtual machine for which both LISP and PROLOG compilers generate code.

Dishonesty
Under no circumstances will acts of academic dishonesty be tolerated. Any suspected incidents of dishonesty will be promptly referred to the Assistant Dean of Students. Refer to the Code of Student Life, Appendix B: Acts of Dishonesty.

Disability
Students who need special accommodations for learning or who have special needs are invited to share these concerns or requests with the instructor as soon as possible.