CS 410 - Introduction to Computer Systems and Assembly Programming MWF - 2:00pm-2:50pm - Carter Hall 210

Instructor: Dr. Angelina A Tzacheva, Department of Computer Science and Information Systems College of Engineering ,
EMail: angelina.tzacheva@mail.wvu.edu, OfficeHours: MWF 4:00pm - 6:00pm , T 5:00pm - 6:00pm   via   Zoom   link:

Join Zoom Meeting
https://us02web.zoom.us/j/6297320999
MeetingPassCode : 096877


SkypeID:    angelina.tzacheva

Teaching Assistants:


Prerequisites: CS 310 .

Textbook:
Zybook- Introduction to Computer Systems and Assembly Programming
 https://www.zybooks.com/catalog/computer-systems-and-assembly-programming/
Instructions:
1. Sign in or create an account at   https://learn.zybooks.com
2. Enter zyBook code:   WVUTECHCS410Spring2023
3. Subscribe

Course Outline:
- Information as Bits
- MIPS Assembly
- MIPSzy Processor Design -Assembly Instructions
- C to Assembly
- Expressions
- Conserving registers
- Assembly Loop Functions
- Assembly Arrays and Strings
- Memory Input/Output
- Runtime storage organization
- Compiler Code Generation


Student Learning Outcomes:
1. Define Compiler Construction Concepts
2. Solve problems in Assembly Programming
3. Recognize Compiler Scanning Techniques, and Semantic Processing
4. Design and Implement a Compiler



Instructional Method
This course takes case and project approach, complemented by lectures, and group activities.
Active Learning Activities and Flipped Classroom approach will be used once per week.

Lectures Notes, Videos, and Reading Assignments are posted in the syllabus table below, as well as on eCampus.
 Please download and read each lecture material, and view each Video on the specified day.

All material by date is listed, including preparation for the exams with sample questions. The exams are open-book / open-notes.
The exams are available through
eCampus and can be completed at any time on the assigned day.
The textbook is necessary, as exam questions are based on lecture notes AND on the text.

There is a group project assignment, and students are expected to identify and communicate with their
group members, meet with them ( live or online ex. via Skype, GoogleHangout ), and participate in the group activities.


Credit Hours: This is a 3 credit hour course.
This course is designed to require about 10 hours per week - for readings, exams, exercises,
video cases, and group project work.

The material is technical, and requires dedication of time to comprehend.  To complete course successfully.
Designate 6 hours every lecture day for reading the given lecture, and book chapter.
Designate additional 4 hours per week for Exercises, VideoCase assignments, and Group meetings / activities.

Exercises are assigned after each chapter. The Exercises are due on eCampus on the dates they are assigned.
 Exercises are *not accepted* through e-mail. Late Exercises are not accepted.


Course Grading:
The final course grade is determined on the following weights:
Exam I   18%
Exam II   18%
Exam III   18%
Group Project   18%
Final Exam   18%
Attendance   10%

Grading scale:
The final course letter grade is determiend as follows:
A   90% - 100%
B   80% - 89%
C   70% - 79%
D   60% - 69%
F   less than 60%
X   academic dishonesty

Grading Enquiries:
Grades to all Exercises, Exams, and Project are posted on eCampus shortly after the assignments are due.
Students are expected to observe their grades on eCampus, and e-mail TA and Instructor immediately if they notice any issues .
Students who have questions or concerns about their final CourseTotal grade are expected to e-mail the TA and Instructor at least
1 week prior to letter Grades being assigned on Banner registration system  . The letter grades Due date is found on the University Calendar at the end .
 Once the letter grades are assigned and rolled on Banner registration system , we are unable to change the grades anymore .

Academic Integrity and Honesty:
Students are required to read and abide by the Code of Student Academic Integrity available from Dean of Students Office.
 This code forbids cheating, fabrication or falsification of information, multiple submissions of academic work,
plagiarism (including viewing others work without instructor permission), abuse of academic materials, and complicity of
academic dishonesty. Violations of the Code of Student Academic Integrity, including plagiarism, result in disciplinary action as provided by the Code.

Civility:
We are concerned with a positive learning experience.
This course strives to create an inclusive academic climate in which the dignity of all individuals is respected and maintained.
We value diversity that is beneficial to both employers and society at large. Students are encouraged to actively and
 appropriately share their views in class discussions.

Inclement Weather:
University Policy Statement states the University is open unless the Chancellor announces that the University is closed.
 In the event of inclement weather, check your e-mail, and eCampus. The instructor will post a message on eCampus, and through e-mail.
The instructor will use their best judgment as to whether class should be held.

Disability:
We are committed to access to education. If you have a disability and need academic accomodations,
please provide a letter of accomodation from Disability Services early in the semester. For more information on accomodations,
contact the Office of Disability Services .

Withdrawal:
The University policy on Course Withdrawal allows students a limited number of opportunities available to withdraw from courses.
There are financial and academic consequences that may result from course withdrawal. If a student is concerned about his / her ability
 to succeed in this course it is important to make an appointment to speak with the instructor as soon as possible.

Syllabus Revision:
The instructor may modify the class schedule and syllabus during the course of the semester.
For example - additional educational vidoes may be posted. Same changed will appear on eCampus.
Students are responsible for refreshing their syllabus once per week.

E-Mail Communication:
Students are responsible for *all* announcements made in class and on the class online resources.
Students should check the online class resources throughout the semester. The Instructor and Teaching Assistants
send occasional e-mails with important information.
We send this information to the student's  e-mail address listed on Banner system.
 If a student is not checking his / her  e-mail address ( ex. userName@mail.wvu.edu )
please be sure to access this e-mail and check it regularly during this course.

Class Expectation:
By attending class beyond the first week, students agree to follow the framework and rules related to this course as described above.




Syllabus:
Date
Material
Jan 09
Monday
Preview of course syllabus     |     Assignment of Students in Groups   -  for the Group Project :
Project Assignment Description
       
Jan 11
Wednessday
1.Information as Bits

1.1 ASCII and Unicode


PowerPoint : 01_1.1_1.2_INFO_AS_BITS_FloatinPointNumbers

Video : 01_1.1_1.2_INFORMATIONASBITS_ASCII_UniCode
Jan 13
Friday
1.Information as Bits

1.2 Unsigned binary numbers
1.3 Signed binary numbers: Two’s complement

Video : 01_1.1_1.2_INFORMATIONASBITS_ASCII_UniCode
Jan 16
Monday
MLK Day- No Classes
Jan 18
Wednessday
1.Information as Bits

1.4 Binary, hexadecimal, and octal
1.5 General number bases
Jan 20
Friday
Group 01 Moderator
1.Information as Bits

1.6 Floating-point numbers
1.7 Floating-point arithmetic


Video : 01_1.6_1.7_INFO_AS_BITS_FloatingPointNumber

PlayCode : PlayCode_01_Compiler_Implementation_IfStatement
Jan 23
Monday
1.Information as Bits

1.8 Arrays
1.9 Records
Jan 25
Wednessday
1.Information as Bits

 1.10 Graphics
 1.11 Image and video data
Jan 27
Friday
1.Information as Bits

1.12 Audio
1.13 Naming numerous bits

Preparing for EXAM I
Jan 30
Monday
Exam I
- access exam on eCampus
- may complete exam any time of the day today (finish no later than 11:55pm)
- allowed time for exam is:       3:00 hours
Feb 01
Wednessday
2.MIPS Assembly, Part 1

2.1 Programmable processor concept
2.2 lw, sw: Load and store instructions
Feb 03 Friday Group 02 Moderator
2.MIPS Assembly, Part 1

 2.3 Memory alignment and endianness
2.4 addi, add: Add instructions
Feb 06  Monday 2.MIPS Assembly, Part 1

2.5 Comments
2.6 A small assembly program
Feb 08
Wednessday

2.MIPS Assembly, Part 1

2.7 sub, mul: Subtraction and multiplication instructions
2.8 beq, bne, j: Branch and jump instructions
Feb 10
Friday
Group 03 Moderator
2.MIPS Assembly, Part 1

2.8 beq, bne, j: Branch and jump instructions
2.9 slt: Set on less than instruction
2.10 Input / output
Feb 13
Monday

Class Cancelled -  No Class
//Please Read the Chapters and do the LABS

3.MIPS Assembly, Part 2

3.1 jal, jr: Subroutine instructions
3.2 Assembly program example: Subroutines
3.3 Load and store with offsets
Feb 15
Wednessday
3.MIPS Assembly, Part 2

3.4 Subroutines and the program stack
3.5 Machine instructions
Feb 17
Friday

Group 04 Moderator
3.MIPS Assembly, Part 2

3.6 Jump/branch immediates
3.7 Assemblers
Feb 20
Monday
3.MIPS Assembly, Part 2

3.8 Flowcharts and assembly programming
3.9 MIPSzy instruction summary
Feb 22
Wednessday
4.C to Assembly

4.1 Assignments
4.2 Expressions
4.3 Conserving registers
Feb 24
Friday
Group 05 Moderator
4.C to Assembly

 4.4 If-else
4.5 If-else expressions

Preparing for Exam II
Feb 27
Monday
Exam II
- access exam on eCampus
- may complete exam any time of the day today (finish no later than 11:55pm)
- allowed time for exam is:       3:00 hours

Mar 01 Wednessday 4.C to Assembly

4.6 Loops
4.7 Functions
Mar 03 Friday Group 06 Moderator
4.C to Assembly

4.8 Arrays and strings
4.9 Compilers
Mar 06 Monday Class Cancelled -  No Class
//Please Read the Chapters and do the LABS

5.MIPSzy Processor Design

5.1 Review: Combinational circuits
5.2 Review: Decoders, muxes, and adders
5.3 Review: Timing diagrams
Mar 08 Wednessday 5.MIPSzy Processor Design

5.4 Review: Registers
5.5 Review: Register files
Mar 10 Friday Group 07 Moderator
5.MIPSzy Processor Design

 5.6 Base MIPSzy (lw, sw, addi, add): Behavior
5.7 Base MIPSzy: Processor design
Mar 13 Monday Spring Break - No Class
Mar 15 Wednessday Spring Break - No Class
Mar 17 Friday Spring Break - No Class
Mar 20 Monday 5.MIPSzy Processor Design

 5.8 Base MIPSzy + sub
5.9 Base MIPSzy + j / jal
Mar 22 Wednessday 5.MIPSzy Processor Design

5.10 Base MIPSzy + beq/bne

Mar 24 Friday
Group 08 Moderator
5.MIPSzy Processor Design

5.11 Base MIPSzy + slt

Preparing for EXAM III
Mar 27 Monday Exam III
- access exam on eCampus
- may complete exam any time of the day today (finish no later than 11:55pm)
- allowed time for exam is:       3:00 hours
Mar 29 Wednessday 5.MIPSzy Processor Design

5.12 Base MIPSzy : Verilog
Mar 31 Friday Group 09 Moderator
5.MIPSzy Processor Design
5.13 Base MIPSzy : VHDL
Apr 03 Monday 6.Memory

 6.1 SRAM and DRAM
6.2 Chip economics
6.3 Composing memory
Apr 05 Wednessday 6.Memory

6.4 Cache basics: Part 1
6.5 Cache basics: Part 2
Apr 07 Friday Spring Holiday - No Class
Apr 10 Monday 6.Memory

6.6 Set-associative cache
6.7 Memory hierarchy
Apr 12 Wednessday 6.Memory

6.8 Review: nMOS transistors
6.9 RAM design
Apr 14 Friday 6.Memory

6.10 ROM design
6.11 Virtual memory
Apr 17 Monday 6.Memory

 6.12 Error detection
6.13 Data compression
Apr 19 Wednessday 7.Input/Output

7.1 Memory-mapped I/O
7.2 Interrupts
Apr 21 Friday 7.Input/Output

7.3 Polled and vectored interrupts
7.4 Handshaking
Apr 24 Monday 7.Input/Output

7.5 Buses
7.6 Arbitration
Apr 26 Wednessday 7.Input/Output

7.7 Direct memory access (DMA)
7.8 Serial communication

Preparation for EXAM
Apr 28 Friday Reading Day - No Class
May 01 Monday Final Exam
 
Syllabus Copyright 2015-2025 Angelina A Tzacheva.
No reusage or reproduction without permission.