Spring 2012 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:

Final Exam schedule is now posted below. The practice exam is posted here: Practice Exam 3 with solutions (pdf format).

Wednesday, May 16, 6:30-8:00PM in M-1-213

After you get your UNIX/email account, you can login using any Sun Blade in the UNIX/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 UNIX account ID and a default password that your instructor will provide to the class.

To access our UNIX systems remotely from your PC, download and install one of the secure shell packages. There is a link to the SSH Communications package below for your convenience. When you login remotely, use the host name "ulab.cs.umb.edu", your account name, and password. (If you are logged-in on a different system, use command "rlogin ulab" to run on ulab and use SAPCs.) 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 may send and receive mail via the UNIX pine program if you are a UNIX user. If you want your email forwarded to another email adress, follow these instructions: Forwarding UNIX email

After you get your UNIX/email account, add "module ulab" to your .cshrc file to be able to access and use the CS341 directories and tools.

To access our UNIX systems remotely from your PC, download and install one of the secure shell packages described in the lecture 1 notes. There is a link to the SSH Communications package below for your convenience. When you login remotely, use the host name "ulab.cs.umb.edu", your account ID, and password to use SAPCs.

Course Lecture Times - All Sections

Course Lab Times - By Sections

Course TextBooks

Secure Shell Software Package

SSH Communications Software Download

Other Useful References

From web site for: The Analytical Engine: An Introduction to Computer Science Using the Internet, Rick Decker and Stuart Hirshfield, Wadsworth Publishing, 1998.

Processor Architecture: http://www.course.com/downloads/computerscience/aeonline/7/5/index.html

Bill's Gates: http://www.course.com/downloads/computerscience/aeonline/7/2/index.html with the logic sim files for the Addition and the Subtraction circuits.


Class Schedule, Lecture Notes and Homework Assignments

Class Date Reading Projects Lecture Notes File
01 01/23 PAL 1-3, 6-16 Introduction to Embedded Systems .ppt
02 01/25 PAL 39-59
62-65
MP1 Due:
before class 06
Example of SAPC Code and Introduction to MP1 .ppt
03 01/30 PAL 17-32
34-37
Intel Architecture Overview - Processor, Memory, I/O .ppt
04 02/01 PAL 119-125
161-172
Intel Architecture Overview - Memory Usage .ppt
05 02/06 DP 13-6 Intel Architecture Overview - I/O Devices .ppt
06 02/08 PAL 73-106
MP2 Warmup
MP2 Due:
before class 12
Assembly Language Programming and Introduction to MP2 .ppt
07 02/13 PAL 201-216
297-312
Assembly Language Programming .ppt
08 02/15 PAL 127-152 Assembly Language Programming .ppt
02/20 President's Day
09 02/22 S & S 647-656
UART Data Sheet
Assembly Language Programming .ppt
10 02/27 S & S 628-631 Assembly Language Programming .ppt
11 02/29 PAL 216-227 Assembly Language Programming .ppt
12 03/05 PAL 3-6
361-367
In-line Assembly Code, Machine Language Programming, Review .ppt
13 03/07 Practice Exam Exam #1: Covers up through Class 12
03/12 Spring Break
14 03/19 S & S 385-393
PIC Data Sheet
MP3 Due:
before class 19
MP3: Interrupts, Priority Interrupt Controller and Introduction to MP3 .ppt
15 03/21 PIT Data Sheet MP3: Programmable Interval Timer, Cache Memory .ppt
16 03/26 DP Ch 3, 4
6.1-6.3
Digital Circuits - Boolean Algebra and Basic Logic Gates .ppt
17 03/28 DP Ch 3, 4
6.1-6.3
Digital Circuits - Combinational Logic .ppt
18 04/02 DP 9.1-9.6 Digital Circuits - Sequential Logic .ppt
19 04/04 7400 TTL MP4 Due:
before class 23
Hardware Diagnostic Software and Introduction to MP4 .ppt
20 04/09 DP 5.1-5.3
5.7-5.8
Digital Circuits - Logic Design, Karnaugh Maps .ppt
21 04/11 DP 5.10, 7.4 Digital Circuits - Seven Segment Display .ppt
04/16 Patriot's Day
22 04/18 DP 12.1-12.4 Memory and Address Decoding .ppt
23 04/23 MP5 Due:
before class 28
Com Port Driver Software and Introduction to MP5 .ppt
24 04/25 DP 13.5 Busses, Tri-State Logic, Direct Memory Access (DMA) .ppt
25 04/30 DP Processors - The Big Picture .ppt
26 05/02 DP Processors - The Big Picture (Cont.), Review for Exam .ppt
27 05/07 Practice Exam Exam #2: Covers up through Class 26
28 05/09 Practice Final Course Review and Course Evaluation .ppt
Final's Week - 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 Binh Tran (tdbinh 'at' gmail.com).

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: Thurs, 04/05/2012

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.


Accomodations:

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, e.g. pastebin.com. The intent seems to have been to facilitate unauthorized collaboration while completing the assignment 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 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.