Fall 2016 CS341 Syllabus

Course Outcomes:

Students successfully completing this course will:

  1. Understand enough about the Intel processor architecture and instruction set to write a simple C library function in I-386 assembly language; (ABET: b, c)
  2. Be able to produce an optimized gate level hardware logic schematic from a truth table and/or a Boolean algebra expression with as many as 4 inputs including "don't care" combinations; (ABET: b, c)
  3. Continue in their professional development to include embedded system SW development techniques and tools - cross compilers, cross assemblers, hardware debug monitors, and diagnostic software. (ABET: h, i)

Breaking News:

During the first week, please attend your lecture sessions only. There are no lab sessions. Starting in the second week, attend both the lecture sessions and your assigned section's lab session according to the schedule below.

You must apply for a Linux account in the CS department and a link to the course directory for this course. Please read the instructions at: How do I get a UNIX account for my course?. If you have any questions about the apply process, please contact the operators in the CS Dept. Linux/PC Lab.

After you have an account, you can login using any Linux system in the Linux/PC lab room with your account ID and the password you selected during the apply process. You will also be able to login on the PC's in the lab with your Linux account ID and a default password that your instructor will provide to the class. When you are logged in on a PC in the lab or using your own PC, you can use the SSH communication package to remotely login to the Linux system "users.cs.umb.edu".

Your email address will be your accountname@cs.umb.edu and it will be included in the course email broadcast list. You are responsible for receiving any email the grader or I broadcast to the list. You will need to be able to use your Linux account for two things. Follow these instructions: Introduction to Linux Use

You will be able to work on your Machine Projects in our Linux/PC lab and in our weblab. However, you will probably want to run your Machine Projects on your own PC at home. Here are the instructions for installing VMWare and our tutor-vserver and tutor virtual machines on your system: CS341 VMWare Installation

Since I am retired and only teaching part time now, I don't have a permanent office. Check my home page for each week's office hours schedule and location.

Course Lecture Times - All Sections

Course Lab Times - By Sections

Course TextBooks

Secure Shell Software Package

SSH Communications Software Download

Other Useful References

Class Schedule, Lecture Notes and Homework Assignments

Class Date Reading Projects Lecture Notes File
01 09/06 PAL 1-3, 6-16 Introduction to Embedded Systems .ppt
02 09/08 PAL 39-59
MP1 Due:
before class 06
VM Code and Introduction to MP1 .ppt
03 09/13 PAL 17-32
Intel Architecture Overview - Processor, Memory, I/O .ppt
04 09/15 PAL 119-125
Intel Architecture Overview - Memory Usage .ppt
05 09/20 DP 13-6 Intel Architecture Overview - I/O Devices .ppt
06 09/22 PAL 73-106
MP2 Warmup
MP2 Due:
before class 12
Assembly Language Programming, Introduction to MP2 .ppt
07 09/27 PAL 201-216
Assembly Language Programming, C Compiler Calling Sequences .ppt
08 09/29 PAL 127-152 Assembly Language Programming, Condition Codes and Jump Instructions .ppt
09 10/04 S & S 647-656
UART Data Sheet
Assembly Language Programming, RS232 and UART Programming .ppt
10 10/06 PAL 216-227 Assembly Language Programming, C Structs and Recursion .ppt
11 10/11 PAL 3-6
In-line Assembly Code, Machine Language Programming .ppt
12 10/13 Study MP2 Solution, Intro. to Arduino Hardware Labs, Review .ppt
13 10/18 Practice Exam Exam #1: Covers up through Class 12
14 10/20 S & S 385-393
PIC Data Sheet
MP3 Due:
before class 18
Interrupts, Priority Interrupt Controller and Introduction to MP3 .ppt
15 10/25 PIT Data Sheet Interrupts, Programmable Interval Timer .ppt
16 10/27 7400 TTL Digital Circuits - Boolean Algebra and Basic Logic Gates .ppt
17 11/01 DP Ch 3, 4
Digital Circuits - Combinational Logic .ppt
18 11/03 DP Ch 3, 4
MP4 Due:
before class 23
Hardware Diagnostic Software and Introduction to MP4 .ppt
19 11/08 DP 9.1-9.6 Digital Circuits - Sequential Logic .ppt
20 11/10 DP 5.1-5.3
Digital Circuits - Logic Design, Karnaugh Maps .ppt
21 11/15 DP 5.10, 7.4 Digital Circuits - Seven Segment Display .ppt
22 11/17 DP 12.1-12.4 Memory and Address Decoding .ppt
23 11/22 MP5 Due:
before class 28
Com Port Driver Software and Introduction to MP5 .ppt
11/24 Thanksgiving
24 11/29 DP 13.5 Busses, Tri-State Logic, Direct Memory Access (DMA) .ppt
25 12/01 CPU Features and Architectures .ppt
26 12/06 PC Processor Historical Evolution, Review for Exam .ppt
27 12/08 Practice Exam Exam #2: Covers up through Class 26
28 12/13 Practice Final Course Review and Course Evaluation .ppt
Final's Week - Optional Final Exam: Covering the Entire Course

Machine Projects

The assignment for Machine Projects will be posted on the web site, but the rest of the materials required for them are not web accessible. They must be accessed using UNIX as explained in class. My UNIX home directory for getting machine project materials is ~bobw/cs341.

After you apply for the course, the operators will create a cs341 soft link in your home directory. That link will point to your subdirectory for doing your homework. You will create a subdirectory for each machine project and put all of your homework files there. Do not change the ownership, the group, or the modes on your homework directories. That could prevent me and the graders from reading your files and/or allow other students to read your homework files. Doing this will be considered a possible infraction of the academic honesty policy.

The project grader is Akram Bayat (Akram.Bayat001@umb.edu)

Grades will be based on the following:

Lab Assignments - 20%

Machine Projects - 40%

Machine Projects will be C and/or assembly language programming projects.

Exams - 40%

Course Withdrawal and Pass/Fail Deadline: Weds, 11/23/2016

You will get grades back for one Exam and the first few homework assignments before the Registrar's withdrawal and pass/fail deadline so that you will know where you stand in time to make that decision.


Section 504 of the Americans with Disabilities Act of 1990 offers guidelines for curriculum modifications and adaptations for students with documented disabilities. If applicable, students may obtain adaptation recommendations from the Ross Center for Disability Services in the Campus Center (617-287-7430). The student must present these recommendations and discuss them with each professor within a reasonable period, preferably by the end of Drop/Add period.

Student Conduct:

Students are required to adhere to the University Policy on Academic Standards and Cheating, to the University Statement on Plagiarism and the Documentation of Written Work, and to the Code of Student Conduct as delineated in the catalog of Undergraduate Programs. The Code is also available online at: Code of Student Conduct

In particular, some students have been caught posting their lab/project assignments or solutions on public websites requesting or offering to pay for outside assistance. This is unauthorized collaboration which is academic dishonesty. In addition, because it is publicly posted, it allows other students to find their code - enabling them to copy it - which is also academic dishonesty. I consider any public posting by students of any homework assignments or solutions on the internet to be prima facie evidence of academic dishonesty. I will identify the students involved and sanction them.