The following outline presents the topics that are covered, in the approximate order and time frame
in which they will be discussed. Weeks that have passed will be grayed out.
The upcoming or current week will be green. Click on each title to expand it
and see the topics for that week. Click on the Expand All or Collapse All buttons to do
the appropriate action for all weeks.
Explanation of the nasm programming language example
Thursday/Friday: In-class Exercise: Compiler/assembler installation and checkout
[Note that this is actually homework 01…]
Week 02 — Basics of a Computer System
Announcements
Homework 02 due Friday
Computer Systems Organization
Von Neumann Architecture
Processor Parts and Organization
Layers of Organization
Assembly Language
Topics in Computer Systems
Computer Systems in Popular Culture
Beginning Analysis of Number Systems
Thursday/Friday: In-class Exercise:
Week 03 — Ways of Representing Information: Number Encoding
Announcements
Homework 03 due next week
Information Representation
Symbols and Alphabets
Encoding Schemes
Bit String Encoding
Functions
Function Machines
Programming as Machine Creation
Historical Number Encoding Schemes
Encoding Integers
Encoding Real Numbers
Encoding Floating Point Numbers
Saturated and Modular Arithmetic
Thursday/Friday: In-class Exercise:
Week 04 — Character Encoding
Announcements
Homework 03 due Wednesday/Thursday
Quiz next week
Check to make sure everyone can use Microsoft Word document
Check to make sure time zones are not an issue
Character Encoding
Character Sets
BCD, EBCDIC, and ASCII
Unicode
Other Character Sets
Ways to Encode Characters
About Strings
More about C
Thursday/Friday: In-class Exercise:
Week 05 — Computer Logic Part One
Announcements
Homework 04 due next week
Logic Components
Gates and Truth Tables
Combining Parts to Make a Machine
Quiz01 on Thursday [section 02] and Friday [section 01]
Week 06 — Computer Logic Part Deux
Announcements
Basic Combinations ~ FlipFlops and Adders
Simple CPU
Parts
Operation
Illustrating What Happens Inside
Fetching and Decoding
Executing the Instruction
Writing Programs
Machine Language
CISC and RISC
Thursday/Friday: In-class Exercise:
Week 07 — What Do You C??
Announcements
Homework 04 due Thursday/Friday
REAL Language Representations
Top-down or Bottom-up?
Functions and Pointers and Strings ~ OH MY!
Compiling and Linking
Header files and prototypes
Multiple File Modules in a Program
C Input/Output Specifications
Thursday/Friday: In-class Exercise:
Week 08 — Take A Break……
Announcements
SPRING BREAK — NO CLASS THIS WEEK
Week 09 — From C To Shining C
Announcements
Homework 05 due next week
OK, Now Where Were We…
Numbers ~ Signed and Unsigned Integers
Getting Arguments from the Command Line
Getting Values from the User
Reading From Files
C Libraries – Stuff That's Already Built
C Isn't Object Oriented… Or Is It?? What the Struct…
Thursday/Friday: In-class Exercise:
Week 10 — Some Assembly Required…
Announcements
Homework 05 due Thursday/Friday
Quiz next week
Check to make sure everyone can use Microsoft Word document
Check to make sure time zones are not an issue
The X86-64 CPU Architecture
Instruction Encoding/Decoding
Assembler the Beautiful
Some Typical Instructions
Addressing
Data Types and How They Are Handled
Thursday/Friday: In-class Exercise:
Week 11 — Flags, Instructions, NASM
Announcements
Flags
Some Instruction Details
The X86-64 Developers Manual
NASM Tutorial
A Sample Program
Quiz02 on Thursday [section 02] and Friday [section 01]
Week 12 — Gimme a Break!
Announcements
Monday/Tuesday: In-class Exercise:
Cesar Chavez Day — NO CLASS WEDNESDAY
Easter Break — NO CLASS THURSDAY OR FRIDAY
Week 13 — Mixed Methods Programming
Announcements
Homework 06 due next week
Revisit the Sample Stars program
Calling Conventions
Using 'nasm' on MacOS
Using 'nasm' on Windows
Mixing "C" and Assembly
…On One Condition…
Command Line Arguements
Floating Point
Sections
We CAN Do Recursion!
Thursday/Friday: In-class Exercise:
Week 14 — Messaging Systems
Announcements
Homework 06 due Thursday for T-Th section
Homework 06 due Friday for M-W-F section
Brief Introduction
Messaging Systems
Socket Interface
Remote Procedure Call
Principles of Operation for RPC
Thursday/Friday: In-class Exercise:
Week 15 — From Code To Executable
Announcements
Homework06 work week
Thursday/Friday: Final In-class Exercise:
Week 16 — Wrapping It Up… Review Week
Announcements
Final exam next week
Check to make sure everyone can use Microsoft Word document
Check to make sure time zones are not an issue
Monday/Tuesday: Semester wrap-up – any final topics that need finishing
Wednesday/Thursday/Friday: Final Exam Review – a brief recap of topics
Week 17 — Final Exam
FINAL EXAM — 11:00 AM Monday for section01 M-W-F
FINAL EXAM — 11:00 AM Thursday for section02 T-Th
This will be a take-home exam, which will be e-mailed to you individually at
10:50 AM to allow 10 minutes grace period for possible Internet problems. The exam will be
sent to your LMU e-mail address of record. All times will be Pacific time unless you make special
arrangements for another time. [Those arrangements MUST be made ahead of time!] You will have a
full two hours for the exam which is what you would have in class, after which you must e-mail the
exam back to me at my LMU address no later than ten
minutes after the end of the exam. That means I must have your exam by 1:10 PM.
The exam will be done in your teams. You can collaborate within your teams in
whatever way you feel best. You can fill out the exam directly in the document that is sent to you,
or if you prefer you can print the document, fill out the questions by hand, then scan an e-mail the
PDF document back. If your preferred technology is to hand write your responses and take cell phone
pictures, that is OK as well. You only need to send back one copy for your
team.
I will be in the normal class z'room during the exam time to answer any questions
you may have. I'll also be on slack in case you want to ask questiont there. I don't do anthing
with Discord any longer for classes or tests.
The exam will be in the same format as all my exams, quizzes and tests. The first page will
be matching terms, and the rest of the test will be a combination of short answer, short code
writing or interpretation, and multiple choice questions. Point values for each question are
given at the end of each question's text. The total point value is give in the text at the
top of the first page.
The exam will be distributed in Microsoft Word format unless you make
other arrangements. I will check the week before to ensure that those arrangements can
be made in a timely manner.