arrowThe Left Navigation Bar:
Links to class syllabus, assignments, projects, examples,
web tools, downloads, & more (possibly useful) information.
Note: Links are specific to course.


Welcome to CS 301, Computer Organization!

This course is an introduction to representation of data, machine arithmetic, processor and memory organizations, instruction execution, assembly and machine languages, addressing mechanisms, and implementation of high level language constructs.

Students will gain a vision of levels of abstraction in hardware and software, the nature of the Von Neumann machine and the nature of high level languages.

Course Prerequisites: CS-200 and CS-201 with a minimum grade of C

 

blocks

 

Required Textbook:
 
Digital Design, 6th Ed.,
M. Morris Mano and Michael D. Ciletti,
ISBN: 978-0-13-454989-7
We will be using portions of this textbook in the first half of the class.
We will not be covering all the topics nor will we dive completely into all the material in the chapters that will be used.
It is the best textbook for the material that we will cover and you should plan to keep this textbook for future reference in other courses.

 

There is a copy of the course textbook on reserve at the library. You may use it in the library if you do not have a copy of the book.

 

blocks

Computer Science Tutors:

TBA

Student Center for Science Engagement (SCSE)Computer Science Tutor Information:
https://www.neiu.edu/academics/our-centers-and-programs/student-center-science-engagement
(the link to tutoring is on the right side near the bottom of the page)

blocks

 

Web site content is subject to change, consider checking this page at least twice weekly or read the Course discussion space for Update notifications.

blocks

Weekly Schedule: reading assignments,written assignments,virtual assignments...

The sign of a prepared student, textbook at hand, along with materials for note-taking, ready at the first class.

Quick Links to:

Week 01 :: Week 02 :: Week 03 :: Week 04 :: Week 05

Week 06 :: Week 07 :: Week 08 :: Week 09 :: Week 10

Week 11 :: Week 12 :: Week 13 :: Week 14 :: Week 15


Week # 1 - (8.25.25 - 8.31.25)

Content to discover/learn for this week...

Welcome!

This week the plan is to get aquainted with our online environment for this course.
Please watch the video tour of our learning environment.

This course is broken into Weekly Modules.
The modules start on Mondays and conclude on the following Sunday by 11:59 p.m.

Note: This video is from Fall 2021.
All the information on how to navigate this course is the same,
only the dates have changed, including office hours.
Also, if you are reading this, you have FOUND the location for the course home page for this semester.

Read the syllabus

A link to the syllabus is located in the navigation bar located on the left side of this page.

The syllabus contains the plan for the course.
Here is a "short list" of some of the key details that you will find in the syllabus:

Explore the course home page

Time to check out this place!
← View the links in the navigation bar on the left side of the page - click on them - and check out the content.
Try out the quick links at the top of the page.
Then, LOOK AHEAD at the plan for Week 2.

Complete the exploration assignment

Assignments are marked in the shaded boxes.
Read them carefully each week (as the directions for what you are to submit and how you are to submit it will vary from week to week), then follow the directions for submitting your work.

Assignment: 01 > DUE: Sunday, 8.31.25 by 11:59 p.m.

Complete this Google Form: Welcome to CS 301 Online! after reviewing the Week 1 content listed above.(3 pts.)

 

 


Week # 2 - (9.3.25 - 9.7.25)

 

9.3.25 - Labor Day Holiday! - University Closed/No Classes

Content to discover/learn for this week...

Read: Chapter 1 (1.1 - 1.4) in the text

Introduction to the von Neumann Architecture (the components of the computer and how they interact)

simple line drawing of Von Neumann Architecture
  1. Who is John von Neumann? And What is von Neumann architecture? (16:19)
  2. Von Neumann Architecture (simple explanation)
  3. Von Neumann Architecture (more details)
  4. Von Neumann Architecture mapped to computer hardware (3:15)
  5. Explaining Desktop PC Hardware (in a modern PC)
  6. A look inside the computer - By: Prof. Khan(4:21)
  7. See How a CPU works (19:59)
  8. Machine Code and High level Languages Using Interpreters and Compilers (8:47)

Setting up of virtual machine and software for practical exercises

  1. In the navigation bar on the left (tutorials section), view BOTH (text and appropriate video) tutorials on installing Ubuntu on the Oracle VirtualBox.
  2. In the navigation bar on the left (download section), download and install VirtualBox.
  3. In the navigation bar on the left (download section), download and install Linux: Ubuntu.

Positional Number Systems: Binary, Octal, and Hexadecimal Numbers

For your interest, to better understand how number systems have evolved, and to prepare you for this week's content
(and Google Form assignment):

  1. Tally Marks
  2. Roman Numerals
  3. Rules for Roman Numerals
  4. Hindu-Arabic Numeral System
    (my personal favorite)
  5. The Hindu-Arabic Numerals
    (the history of numbers)
  6. Side note: Fibonacci Sequence
    (interesting history)
  7. A quick history up to Modern Number Systems
    (This is why you are going to learn about binary and hexadecimal numbers this week!)
  8. Summing up why binary numbers are used to represent how the computer works including ASCII representations
    (You need only watch the first 11 minutes, but you may choose to watch the entire video as a refresher of other CS topics.)

Course specific content:

  1. Watch the show: Positional Number Systems > Binary, Octal, and Hexadecimal Numbers
  2. Worksheet to complete:Positional Number Systems Decimal Equivalent
  3. Worksheet to complete:Bit String Pattern And Conversion To Hex Or Octal Through Binary

What did you learn this week...

Week 02 Review

Assignment: 02 > DUE: Sunday, 9.7.25 by 11:59 p.m.

Install the Ubuntu Linux Virtual Machine on Virtual Box
(Print the instructions to follow them as you do this task, noting that it is a just guide to the steps and some of versions/screens have been updated. Also, if you have a newer computer you may skip Step 1.)
Important! We will use it later in the course, but I want to make sure you can install it now.
See Tutorials section of the navigation bar on the left for 2 other tutorials (one is a video) on how to do this task if you have trouble.
Send a screen shot of the completed installation on your computer via email to: f-porps@neiu.edu, subject line of the email: CS 301 > Assignment 2 (3 pts.).

Upon successful completion of this module, you have met the course objective(s):
 
Understand the basic blocks of a computer system and
understand the relationship between hardware and software

 

 


Week # 3 - (1.29.24 - 2.4.24)

Content to discover/learn for this week...

Read: Chapter 1 (1.5 - 2's complement and Subtraction with Complements, 1.6, 1.7 ASCII Character Code,1.8, and 1.9) in the text

Computers work with machine language, zeros and ones, so we need a way to convert everything we do to binary.
Read about: Unicode
then look at the code (click on any one from the list),
finally, check out the American Standard Code for Information Interchange (ASCII), a subset of Unicode
(find the link on the Unicode website under "Other").

Binary numbers, Octal, and Hexadecimal number conversions (review)

Practice your binary/hexadecimal skills: Play FLippy Bit (desktop version)
or for android
or for iOS

Signed number arithmetic

1. Basic addition in any base of a positional number system

2. Computers store numbers in registers.
Registers are of a fixed size, thus contain a fixed range of values.
See: Java Primitive Data Types table

3. Worksheet to complete: "The 2's Complement Method"
(or how to create/store negative numbers)
and BONUS: MORE INFORMATION ON REGISTERS!

4. Working with a computer register to add,
subtract utilizing "The 2's Complement Method" (actually adding using the negative represtentation of the value),
sign bit errors, and
overflow

5. How does the computer multiply (<<) or divide (>>)?
Read: Left Shift and Right Shift Operators in C/C++
Note: this works with unsigned values and you can run the C code samples on Ubuntu, after you learn how to code, compile and run "Hello World" below.

Watch this presentation (and the included videos)
IEEE format for float (single precision) data type

Boolean algebra and logic functions

1. See: C Operator Precedence table and Bitwise Operators: (8,9,10)

1.(a) See: How bitwise Operators Work

2. Review Boolean Algebra and Logic Functions (a topic from Discrete Structures)
Use this worksheet with the video below.

3. Try this to practice logic gates: Logic Gate Simulator

Try out your NEW Ubuntu O/S! (with some C language code)*

*Bonus Activity!
Programming C in Linux - Hello World Try it to make sure your Ubuntu O/S is working properly before you need it in the latter portion of the class.
If it is not working properly - please visit during office hours or see a CS tutor for help with the installation and running this program.

What did you learn this week...

Week 03 Review

See: Hardware Review (below).

 

Assignment: 03 > Complete: Week 03 Assignment > DUE: Sunday, 9.14.25 by 11:59 p.m.

Click on the blue text link above (↑) for the assignment document.

Email the file as .pdf or .docx - if you take pictures of your work, paste them into a word.docx, save them as .pdf . Then send them via email to: f-porps@neiu.edu, subject line of the email: CS 301 > Assignment 3 (3 pts.).

If you do not have MS Office products on your home computer - download free office products.
(see my home page for links to Open Office and Libre Office)

 

 

If you would like to create an alternate final activity, replacing the D2L final test, plan to stop by during any of my office hours BEFORE Week 5 to set up the contract for your work.

 

 


Week # 4 - (9.15.25 - 9.21.25)

Quiz 01
Located: in CS 301 D2L Course Shell
Available: 9.15.25 at 12:01 a.m.
Due: 9.16.25 by 11:59 p.m.
Allowed time: 60 minutes once started
Content: based primarily on Week 02 & Week 03 materials
Format: multiple choice, T/F, short answer, math showing calculation steps

Content to discover/learn for this week...

Read: Chapter 2 in the text

Boolean algebra and logic functions - continued

1. For your interest, learn about George Boole and more about George Boole as the inventor of Boolean Logic.

2. View the Huntington Postulates:

3. View a brief explanation of Duality:

4. Review this complete list of Boolean Indentities and Operator Precedence (including notation used).

Why? They will be used as the tool for minimizing expressions, the next topic this week.

5. View a summary of Boolean Algebra so far...

6. Did you try this last week to practice logic gates? Logic Gate Simulator

7. Here is a more advanced logic gate simulator that will produce a truth table with function values: logic.ly Gate Simulator

Minimization techniques

1. See an example of How to write a Boolean Expression for Logic Gate Simplification

2. Use a truth table to prove that the Boolean Expressions are logically equivalent.
Use this worksheet with the video below.

3. Canonical Forms: minterms
Use this worksheet with the video below.

4. Canonical Forms: maxterms
Use this worksheet with the video below.

What did you learn this week...

Week 04 Review

Assignment: 04 > Complete 2.18 (a-e) on page 78 in the text > DUE: Sunday, 9.21.25 by 11:59 p.m.

Email the file as .pdf or .docx - if you take pictures of your work, paste them into a word.docx and save as .pdf. Please make sure that your images are right side up, and not sideways or upside down. They will be returned to you for resubmission if they are not readable without turning my monitor sideways or upside down;-)
Send them via email to: f-porps@neiu.edu, subject line of the email: CS 301 > Assignment 4 (3 pts.).

If you do not have MS Office products on your home computer - download free office products.
(see my home page for links to Open Office and Libre Office)

BONUS: Handy Blank Boolean Truth Tables - just waiting to be filled in by you!

 

 


Week # 5 - (9.22.25 - 9.28.25)

Quiz 02
Located: in CS 301 D2L Course Shell
Available: 9.22.25 at 12:01 a.m.
Due: 9.23.25 by 11:59 p.m.
Allowed time: 60 minutes once started
Content: Primarily all concepts related to Boolean Algebra and Logic Gates
but, any concepts prior to Week 5 may be included.
Format: multiple choice, T/F, short answer, math showing calculation steps

Content to discover/learn for this week...

Read: Chapter 3 (3.1-3.4)

Karnaugh maps

1. Use this K-Map Grids worksheet with the videos below, and to work on other sample problems.

2. Watch this: Introduction to Karnaugh Maps (K maps)

3. Print this K-Map Rules Summary to work on other sample problems.

4. Discover how easy it is to take a SOP (minterms) expression, determine its function output using a truth table, and then minimize it using a K-Map. Watch the video below.

5. Practice what you learned!
Try the following problems from the text: 3.3, 3.6, 3.7, and 3.8

6. Try this one, too - from the text p.93 Practice Exercise 3.6, (hint: 4 corners can be connected too to make a group of 4.) then see Practice Exercise 3.6 Solution (SOP) (to understand the book's notation)

7. Just one more example - from the text p.98 goes over (POS) see PRODUCT-OF-MAXTERMS using a k-map

What did you learn this week...

Week 05 Review

Assignment: 05 > Complete 3.4 (g) on page 141 in the text, then check your work using a truth table showing initial function values and minimized function, and finally, draw the corresponding logic gate diagram > DUE: Sunday, 9.28.25 by 11:59 p.m.

Email the file as .pdf or .docx - if you take pictures of your work, paste them into a word.docx and save as .pdf. Please make sure that your images are right side up, and not sideways or upside down. They will be returned to you for resubmission if they are not readable without turning my monitor sideways or upside down;-) Then send your work via email to: f-porps@neiu.edu, subject line of the email: CS 301 > Assignment 5 (3 pts.).

If you do not have MS Office products on your home computer - download free office products.
(see my home page for links to Open Office and Libre Office)

 

 


Week # 6 - (9.29.25 - 10.5.25)

Quiz 03
Located: in CS 301 D2L Course Shell
quiz file to complete will be found in the course ANNOUCEMENTS
then complete Quiz 03 based on your answers in the quiz file
Available: 9.29.25 at 12:01 a.m.
Due: 9.30.25 by 11:59 p.m.
Allowed time: 60 minutes once started
Content: Primarily all concepts related to Canonical Forms (minterms and maxterms) and Karnaugh Maps
but, any concepts prior to Week 6 may be included.
br/> Format: multiple choice, T/F, short answer, math showing calculation steps

Content to discover/learn for this week...

Read: Chapter 4 (4.1-4.5) in the text

Before you start this week's topic: Combinational Circuits, you may find it helpful to understand how they differ from Sequential Circuits as they will be the next topic.

Read the difference between combinational and sequential circuits to have a general overview of these two types of circuits,
and watch: Combinational vs. Sequential Logic.

Combinational circuits – Half Adder, Full Adder, Implementation of a Binary Adder

1. Use this: Half-Adder, Full-Adder worksheet with the videos below.

2. Watch this: What is a Half Adder?

3. Watch this: What is a Full Adder?

4. Watch this: Implementing a full adder using 2 half adders

5. Watch this: Building a half adder circuit on a bread board (see how a logic diagram becomes a real circuit)

6. Watch this: Building a wet (water) computer (see how a logic diagram becomes a real "wet" circuit)

What did you learn this week...

Week 06 Review

Assignment: 06 > Complete 4.1 (a,b,c) on page 236 in the text > DUE: Sunday 10.5.25 by 11:59 p.m.

Email the file as .pdf or .docx - if you take pictures of your work, paste them into a word.docx and save as .pdf. Please make sure that your images are right side up, and not sideways or upside down. They will be returned to you for resubmission if they are not readable without turning my monitor sideways or upside down;-) Then send your work via email to: f-porps@neiu.edu, subject line of the email: CS 301 > Assignment 6 (3 pts.).

If you do not have MS Office products on your home computer - download free MS Office 365.
(see my home page for link to Office 365 Free for Students)

Helpful Hint! Working with a 16 row truth table:

 

 

If you have made plans with me for an alternate final activity, replacing the D2L final test, your contract is due: 10.5.25 by 11:59 p.m.

 

 


Week # 7 - (10.6.25 - 10.12.25)

Quiz 04
Located: in CS 301 D2L Course Shell
Available: 10.6.25 at 12:01 a.m.
Due: 10.7.25 by 11:59 p.m.
Allowed time: 60 minutes once started
Content: based primarily on Week 05 & Week 06 materials
but, any concepts prior to Week 7 may be included. Format: multiple choice, T/F, short answer, fill-in-the-blank

Content to discover/learn for this week...

Read: Continue Chapter 4 in the text (see specific pages below)

 

Combinational circuits – Binary Subtractor

1. Read pages: 165-166 in the text

2. Review your notes on the 2's complement method for signed integer registers (see Week 2)

OverFlow

1. Read pages: 167-168 in the text

2. Run this Java code to see overflow in action: Byte Overflow example

Combinational circuits – Binary Multiplier

1. Read pages: 170 -172 in the text

2. Watch this: 2-Bit Multiplier (9:48)

3. Read more: Binary Multipliers

Combinational circuits – Decoders and Encoders

1. Read pages: 175 -182 in the text

2. Watch this: Binary Decoder: 3 to 8 (3:17)

3. Read this: Binary Encoders (see short embedded breadboard video, too)

4. Watch this: Octal to Binary Encoder (4:55)

5. Read this: Applications of Encoders and Decoders (see last portion of article)

n.b. for more information read this: Encoders and Decoders

Combinational circuits – Multiplexer

Read pages: 182 189 in the text

1. Watch this: Digital Logic - Multiplexers (7:59)

2. Read this: Multiplexing: Types and Uses

What did you learn this week...

Week 07 Review

 

Assignment: 07 > Week 07 Assignment > DUE: Sunday, 10.12.25 by 11:59 p.m.

Click on the blue text link above (↑) for the assignment document.

Email the file as .pdf or .docx - if you take pictures of your work, paste them into a word.docx and save as .pdf. Please make sure that your images are right side up, and not sideways or upside down. They will be returned to you for resubmission if they are not readable without turning my monitor sideways or upside down;-) Then send your work via email to: f-porps@neiu.edu, subject line of the email: CS 301 > Assignment 7 (3 pts.).

If you do not have MS Office products on your home computer - download free MS Office 365.
(see my home page for link to Office 365 Free for Students)

 

 


Week # 8 - (10.13.25 - 10.19.25)

Quiz 05
Located: in CS 301 D2L Course Shell
Available: 10.13.25 at 12:01 a.m.
Due: 10.14.25 by 11:59 p.m.
Allowed time: 60 minutes once started
Content: based on Week 7 materials
and including any concepts prior to Week 8
to serve as a review of the first half of the course.
Format: multiple choice, T/F, short answer, fill-in-the-blank

Content to discover/learn for this week...

Read: Chapter 5 (5.1 - 5.5) in the text

 

Introduction to Sequential circuits

1. Read this: What are the different types of sequential circuits?

2. Watch this: Introduction to Sequential Circuits (20:36)

Sequential circuits – Latches and Flip Flops

1. Watch this: S-R Latch (12:58)

2. Watch this: S-R Latch on a Bread Board (Including a Gated S-R Latch) (5:21)

3. Watch this: D Latch (9:15)

4. Watch this: How Flip Flops work (9:02)

5. Watch this: D Flip Flop (16:00)

6. Watch this: JK Flip Flop (an improvement on the SR Flip Flop) (10:02)

Sequential circuits - used as registers and memory devices

1. Read this: Sequential Logic Circuits Tutorial (You may read the whole article or skip to registers and memory.)

2. Watch this: D Flip Flop used as 4 bit register (7:18)

What did you learn this week...

Week 08 Review

 

Assignment: 08 > DUE: Sunday, 10.19.25 by 11:59 p.m.

The course has just passed the half way point.
At this time, please reflect upon what you have learned thus far.
After reviewing your notes, describe in detail three (3) concepts that you feel very confident that you understand well, i.e. "explain the material back to me using your own words."
Number each concept (i.e. 1, 2, 3)
Write 1 paragraph (4-6 sentences) for each concept and include screen shots of the notes you took on the concept as well.
Your notes are part of the work to submit, without them your work will receive only half credit.
Submit your work as .pdf or .docx file. Then send your work via email to: f-porps@neiu.edu, subject line of the email: CS 301 > Assignment 8 (3 pts.).

If you do not have MS Office products on your home computer - download free MS Office 365.
(see my home page for link to Office 365 Free for Students)

Upon successful completion of this module, you have met the course objective(s):
 
Understand the design and operation of the basic components of a computer block

 

 


Week # 9 - (10.20.25 - 10.26.25)

Content to discover/learn for this week...

Progress Check

Please check in with me on your progress thus far in the course, during office hours or via email. (+3 pts. extra credit - see syllabus for form to complete and bring with you :-)

Design of primitive computer: understanding registers, counters, memory, and Programmable Logic

Read: Chapters 6 6.1 - 6.5 (skipping BCD) AND Chapter 7 in the text

Connecting concepts: From circuits(weeks 6, 7 and 8) to Coding in Assembly Language

Watch this: What is a register? Using flip flops to build one, illustrating parellel load and modular design.

Watch this: Registers and RAM

Watch this: How do Computers Work? Exploring Computer Main Memory

 

What did you learn this week...

There is no review document this week. Why? You will be creating your own for assignment 09.

Assignment: 09 > DUE: Sunday, 10.26.25 by 11:59 p.m.

Create a detailed list of 10 concepts that you learned from the reading this week.
A detailed list is a numbered list that includes a brief description describing the list item (3 - 4 sentences from your notes).
Submit your work as .pdf or .docx file.
Then send your work via email to: f-porps@neiu.edu,
subject line of the email: CS 301 > Assignment 9 (3 pts.).

If you do not have MS Office products on your home computer - download free MS Office 365.
(see my home page for link to Office 365 Free for Students)

Upon successful completion of this module, you have met the course objective(s):
 
Understand the processor and memory organizations

 

 


Week # 10 - (10.27.25 - 11.2.25)

Content to discover/learn for this week...

Introduction to Assembly Language

We will be using the GNU Assembly Language (GAS) for the remainder of the course, but this first video will introduce you to Assembly Language.

Start here! Print this:
GNU Assembly Language Introduction Worksheet .docx
or
GNU Assembly Language Introduction Worksheet .pdf
Completing this worksheet will help you to answer the questions in the assignment for Week 8.

1. Read this: Assembly Language Definition

2. Watch this: What Is Assembly Language? (24:55)

3. Watch this: GNU Assembly Tutorial 1 (9:13)
Methods/functions return a value to the caller. The caller may be your main method, or it may be the Operating System (O/S) that invoked the program to run. In this tutorial (near the end of the video), you will see how the eax register is used to return a value to the caller. A return value of zero (0) in most cases signals to the O/S that the program completed successfully. You can create other return values to handle when a program does not terminate successfully. Although in Java, you probably only used the return statement when your method's return type was not void, the return statement could be used, without a value (or when it is excluded entirely) the default return value is zero (0).

4. Watch this: Shift Right and Left Instrictions SHL, SHR, SAL and SAR (12:56) focus on the how the register values are shifted

5. Watch this: Rotate Instructions: rol, ror, rcl, and rcr (13:30) focus on the how the register values are shifted

What did you learn this week...

Week 10 Review

 

Assignment: 10 > DUE: Sunday, 11.2.25 by 11:59 p.m.

Choose any six (6) of the questions/concepts listed on the "Week 10 Review" web page, paste them into a .docx file, then provide detailed answers specific to the GAS assembly language. Include an example GAS assembly language statement example for each of the 6 questions that you choose to answer. The example for each is required in order to receive full credit for your work.

If you take pictures of your work, paste them into a word.docx and send them. Please make sure that your images are right side up, and not sideways or upside down. They will be returned to you for resubmission if they are not readable without turning my monitor sideways or upside down;-)
Submit your work as .pdf or .docx file.
Then send your work via email to: f-porps@neiu.edu,
subject line of the email: CS 301 > Assignment 10 (3 pts.).

If you do not have MS Office products on your home computer - download free MS Office 365.
(see my home page for link to Office 365 Free for Students)

Upon successful completion of this module, you have met the course objective(s):
 
Understand the relationship between machine language, assembly language and high level language

 

 


 

 

If you choose to terminate participation in a class, and wish to receive a grade of withdrawn (W), the deadline to drop a course is 11.3.25 by 11:59 p.m., via NEIUport. If you do not officially withdraw from a class, you will still receive the grade for the course. Please email me or stop by during office hours to discuss your performance in class before making this decision.

 

 


Week # 11 - (11.3.25 - 11.9.25)

Quiz 06
Located: in CS 301 D2L Course Shell
Available: 11.3.25 at 12:01 a.m. 🦉
Due: 11.4.25 by 11:59 p.m.
Allowed time: 60 minutes once started
Content: based primarily on Weeks 9 and 10 material
Format: multiple choice, T/F, short answer, fill-in-the-blank
 
Review this: sample problems to prepare for quiz
(This document also includes the solutions to the sample problems.)
 
as well as the Week 10 review

Content to discover/learn for this week...

Before you get started...

Review how to use the Linux VM terminal prompt and text editor:

Did you run the code from last week's worksheet?
If not, now is the time to try it!
Here is some help :-)

1. Print this: terminal commands cheat sheet for as (built-in) compiling, loading, and running assembly language program on x86_64 GNU/Linux

2. Practice a system call to exit process:

3. Practice using an array and while (pre-test) type loop to find the max value in an integer list:

Print this: x64 Assembly Language Cheat Sheet to refer to as you read and code in assembly.

Bookmark this: gdb Debugger Tutorial to disassemble and "see" assembly code made from the c code file.

4. Watch this - how to save, compile, and run a c program file. Then, disassemble it to see the assembly language code:

Read about assembler directives:LibreTexts: 2.3 Assembler Directives

Bookmark this: Assembler Directives to understand directives (.) found in the disassembled code.
Directives are commands that are part of the assembler syntax but are not related to the x86 processor instruction set.

Bookmark this too: More directives

5. Watch this - another way to disassemble a c program file:

Bookmark this: Example C to Assembly Translations with gcc another way to "see" the assembly language file.

if/else

C code to view: if/else example to trace for understanding
then disassemble it to see the assembly language code.

while

C code to view: while example to trace for understanding
then disassemble it to see the assembly language code.

do/while

C code to view: do/while example to trace for understanding
then disassemble it to see the assembly language code.


Optional Learning experience with nasm assembler...

1. When using the Linux VM you can install the nasm assembler.
It is an open source assembler, but note that the syntax is not exactly the same as the code for the GNU assembler (as) that was provided with your installation. You will notice the assignment of values is from right to left in nasm, as in the as it is left to right.
Read more about nasm: Netwide Assembler.
Watch this:x86_64 Linux Assembly #1 - Hello, World! and complete the steps to run the code illustrated.

3. To understand the code you just typed and ran, watch this: Hello, World - code breakdown.

4. Print this: terminal commands cheat sheet for nasm compiling, loading, and running assembly language program on x86_64 GNU/Linux

5. Using rax and rdi registers for system call to exit process:

What did you learn this week...

Week 11 Review

 

Assignment: 11 > DUE: Sunday, 11.9.25 by 11:59 p.m.

Modify the findmax.s file illustrated in the tutorial above (labeled #3 from last week's worksheet code) to find the minimum value in the list.
REQUIRED SPECIFICATIONS:

Submit: screenshot of your .s file in the text editor (you may need multiple screenshots to show entire file)
and screenshot of terminal window showing assembly, loading, executing, and finally exit value proving code works.

Email the file as .pdf or .docx - if you take pictures of your work, paste them into a word.docx and send them. Please make sure that your images are right side up, and not sideways or upside down. They will be returned to you for resubmission if they are not readable without turning my monitor sideways or upside down;-) Then send your work via email to: f-porps@neiu.edu,
subject line of the email: CS 301 > Assignment 11 (3 pts.).

If you do not have MS Office products on your home computer - download free MS Office 365.
(see my home page for link to Office 365 Free for Students)

 

 


Week # 12 - (11.10.25 - 11.16.25)

Quiz 07
Located: in CS 301 D2L Course Shell
Available: 11.10.25 at 12:01 a.m.
Due: 11.11.25 by 11:59 p.m.
Allowed time: 60 minutes once started
Content: based on assembly language materials
Format: written response (code writing), multiple choice, T/F, short answer, fill-in-the-blank
Review this: Week 11 review   to prepare for the quiz.
 
IMPORTANT! The file you will need in order to take the quiz, will be posted in the course D2L announcements at the start time of the quiz. Please read the file for understanding and write notes on it before starting the quiz.

Content to discover/learn for this week...

Assembly Language programming: programming structures continued

Watch this:Assembly Language Code Samples for basic programming constructs and Stack basics to review how to code programming constructs(branching, repetition) in assembly language.

stack of wood blocks

Introduction to the stack

The stack is an abstract data type (ADT) that uses a set of methods to access the data stored within the stack in a particular way. Think of a stack of blocks on your desk...you can put a new block (piece of data) on the top (push) or take a piece off the top (pop), but you cannot take out one from the middle without collapsing the tower.

Read more about the stack data type before proceeding with this week's Assembly code.

1. Read this: Stack (abstract data type)

2. Read this: Stack Methods/functions/behaviors defined and sample stack process

3. Watch this: Subroutines and the stack in assembly language IMPORTANT NOTE! The syntax of the code in this video has the source and destination flipped from the syntax we are using in the course. This video is still worthwhile because you can see the registers and memory.

4. Watch this: GNU Stack Use Example

What did you learn this week...

Week 12 Review

 

Watch this to review last week's quiz code and to understand the task for your Week 12 assignment.

Assignment: 12 > DUE: Sunday, 11.16.254 by 11:59 p.m.

Modify the quiz7code.s file used as part of Quiz 7 to count the numbers less than 20(base 16).
REQUIRED SPECIFICATIONS:

Submit: screenshot of your .s file in the text editor (you may need multiple screenshots to show entire file)
and screenshot of terminal window showing assembly, loading, executing, and finally exit value proving code works.

Email the file as .pdf or .docx - if you take pictures of your work, paste them into a word.docx and send them. Please make sure that your images are right side up, and not sideways or upside down. They will be returned to you for resubmission if they are not readable without turning my monitor sideways or upside down;-) Then send your work via email to: f-porps@neiu.edu,
subject line of the email: CS 301 > Assignment 12 (3 pts.).

If you do not have MS Office products on your home computer - download free MS Office 365.
(see my home page for link to Office 365 Free for Students)

 

 


Week # 13 - (11.17.25 - 11.23.25)

 

Quiz 08
Located: in CS 301 D2L Course Shell
Available: 11.17.25 at 12:01 a.m.
Due: 11.18.25 by 11:59 p.m.
Allowed time: 60 minutes once started
Content: based on assembly language materials (have your completed worksheet available)
Format: written response (code writing), multiple choice, T/F, short answer, fill-in-the-blank
IMPORTANT! The file you will need in order to take the quiz, will be posted in the course D2L announcements at the start time of the quiz. Please read the file for understanding and write notes on it before starting the quiz. Also, there will be a few questions on the stack ADT.

Content to discover/learn for this week...

Assembly Language programming: stack programming continued

Watch this: The Stack (inside a function) to see how the items on the stack are referenced.

Watch this: Call Stacks to see how the stack is used with recursive function calls.

Switch/case example in Assembly Language

Watch this: Switch Statement to see how to code it.

What did you learn this week...

Week 13 Review

Assignment: 13 > DUE: Sunday, 11.23.25 by 11:59 p.m.

See Week 13 Review (link above) for specifications. Go!

Upon successful completion of this module, you have met the course objective(s):
 
Understand how the instructions/programs are executed and
Be able to program in assembly language

 

 


Week # 14 - (11.14.25 - 11.30.25)

Final Test (50 pts.)

Final Test
Located: in CS 301 D2L Course Shell
Available: 11.24.25 at 12:01 a.m.
Due: 11.25.25 by 11:59 p.m.
Allowed time: 120 minutes (2 hours) once started
 
You may use your textbook and notes.
 
If you chose an alternate final activity (contracted with me before Week 5) it is due by 11:59 p.m. 11.25.25.

 

 

Assignment: 14 > DUE: TUESDAY, 11.25.25 by 11:59 p.m.

The assignment points (3 pts.) have been embedded within the final test.

 

 

11.27.25 - 11.30.25: Thanksgiving Holiday - University Closed/No Classes.

 

 


Week # 15 - (12.1.25 - 12.8.25)

Assignment 15

Assignment: 15 > DUE: Sunday, 12.7.25 by 11:59 p.m.

The course is now complete.
At this time, please reflect upon what you have learned this semester.
Describe in detail (i.e. as if the concept were a question asked of you on a job interview)
three (3) concepts that you feel very confident that you understand well.
Format: Number each question and response (i.e. 1, 2, 3)
Write an "Interview type" question. Then, write 1 paragraph (4-6 sentences) detailed response using your own words as I will be reading to hear "your voice" in the answer, not a canned AI response.
Submit your work as .pdf or .docx file.Then send your work via email to: f-porps@neiu.edu,
subject line of the email: CS 301 > Assignment 15 (3 pts.).

If you do not have MS Office products on your home computer - download free MS Office 365.
(see my home page for link to Office 365 Free for Students)

 

 


NEIU Home :: NEIUport

web page updated: 8.29.25 🐝