CSCI 224: Assembly Language Programming
Syllabus
Class Nbr: | 1773 & 2153 | ||||
Mode of delivery: | on campus and synchronous online | ||||
Meeting: | MTW F, 1 - 1:50am in SWEN 1017 and online via Canvas | ||||
Text: | Recommended: ARM assembly language (2nd edition) by W. Hohl and C. Hinds (ISBN: 978-1-48222985-1) | ||||
Hardware: | Thunderboard
Sense 2 development board (required) Micro-USB cable | ||||
Prerequisites: |
Prerequisite for taking this course is an acceptable score on the Mathematics
Placement Test or completion of an appropriate course. MATH 113 or 102 recommended. | ||||
Instructor: | Dr. Sergei Bezrukov | Office: Swenson 3022 | Schedule and Office hours | ||
Tel.: 394-8523 | E-mail: sbezruko@uwsuper.edu |
Catalog Description
Fundamentals of Assembly language programming with an emphasis to microcontroller programming. Topics include: binary representation of numbers and strings, fundamentals of ARM microcontroller architecture; types of memory; access; arithmetic and logical operations; conditional processing; functions and procedures; bit and string processing; recursion and stack manipulation; floating-point programming; interrupt handling; hardware configuration; fundamentals of C programming language; combining assembly with C. Lecture and Lab.
This course is required for all Computer Science Majors.
Learning Objectives
- Present fundamentals of Assembly language programming with an emphasis to microcontroller programming, including arithmetic and logical operations, conditional processing, functions and procedures, recursion and stack manipulation.
- Describe binary representation of information in digital systems, including integer and floating-point numbers, characters, strings, and structures.
- Present fundamentals of ARM microcontroller architecture including memory types, CPU, floating-point unit (FPU), Interrupt Controller.
- Demonstrate microcontroller peripherals configuration at the register level by using CMSIS header files.
- Present fundamentals of C programming language and combining assembly with C in a single project.
Course Outcomes
Upon completion of this course students will be able to
- Describe the inner structure of generic ARM Cortex-M4F processor and identify functions of its components by planning implementation of assigned projects.
- Use machine Instruction Set and memory addressing modes to accomplish assigned programming tasks.
- Program peripherals of Silicon Labs EFM32 series microcontrollers at the register level and use them in hands-on activities and assignments.
- Implement firmware background tasks by using interrupt processing and the NVIC (Nested Vectored Interrupt Controller) module of ARM architecture.
- Combine Assembly language and C programming language routines and variables in one project to develop efficient programs.
Hardware and Software Requirements
- Hardware: (all computers in CSCI
labs satisfy these requirements)
- Computer with color monitor and mouse.
- Minimum 1Gb of memory, minimum 2Gb free space on the hard disk.
- Internet access (cable/DSL access is not required but recommended).
- Thunderboard Sense 2 development board
- Micro-USB cable
- Software: (all necessary software is
installed in CSCI labs)
- Keil MDK ARM (free download from arm.com)
- Tera Term terminal emulator (free download).
- Tools for communication with Linux server:
Assignments, Assessments, and Grading
- Scores and grade
- The final grade for the course depends on the averaged score for home work assignments (this score is denoted by hw), scores for two midterm exams (denoted by ex1 and ex2), score for the final exam (ex3), and some amount of bonus points.
- The total score will be computed according to the formula:
total score = (25*hw + 25*ex1 + 25*ex2 + 25*ex3) / 100 + bonus
- The total score will be translated into the final grade according to
the following table:
A : 93 - A- : 90 - 92 B+ : 87 - 89 B : 83 - 86 B- : 80 - 82 C+ : 77 - 79 C : 73 - 76 C- : 70 - 72 D+ : 67 - 69 D : 63 - 66 D- : 60 - 62 F : 0 - 59 - Current student scores will be accessible in online Gradebook linked from the course Website.
- Special DropBox will be created for submitting assignments.
- Assignments (25%)
Take home exercises will be regularly assigned, collected, graded and returned. The students are allowed to discuss the problems in groups, however writings must be done strictly individually. Returning identical work is qualified as cheating (see below).- Maximum score for each assignment is 100 points.
- For final grade purposes, the lowest of the assignment scores will be dropped if it is above 60% (this cannot decrease your average homework score).
- If hw1, hw2, ... ,
hw8 are the scores for these assignments (each number
in the range 0 to 100), then the total score for the assignments is the
average of these scores, that is
hw = (hw1 + hw2 + ... + hw8) / 8rounded off to the nearest integer from above.
- Midterm exams (two of them, each worth 25%)
One exam will be given after 5-7 weeks of the beginning of the course, and another one will be given about 2-3 weeks before the end of the course. The maximum score for each midterm exam is 100 points.- The first exam covers the material from the first part of the course.
- The second exam emphasizes on the material covered after the first exam.
- The midterm exams, including possible take-home parts, must be done strictly individually, so no collective solutions or discussions are allowed.
- No late submission of the take-home part (if assigned) is accepted.
- Final exam (25%)
Date/time in Final Examination Schedule. The maximum score for the final exam is 100 points.- Although the final exam will be emphasized on the topics of the last portion of the course, it is comprehensive. So, any course content from the entire semester is fair game.
- The final exam must be done strictly individually, so no collective solutions or discussions are allowed.
- No late submission of the take-home part (if assigned) is accepted.
- Bonus points (0-6)
Bonus points will be issued during the last week of classes for:- participation in course related discussions in class (0-2 points)
- quality and completeness of homeworks (0-2 points)
- overall progress in class (0-2 points)
- Special requirements
- It is required to supply every programming task of assignments and exams with a header specifying in detail any non-resolved issues with that task (e.g., compilation errors, runtime errors, etc.). Write, e.g., "no problems noticed" if you believe that your program works fine. Absence of such header will result in losing points for that task.
Class Policies
- Regular attendance of the course is assumed.
- Instructor retains the right to make any and all deletions, additions and changes to the requirements or structure of the course and its materials as deemed necessary.
- No class work is accepted after the Final Exam.
- Problems in late homework assignments are accepted within two days after the assignment was due. In this case a student will be penalized on 10 points pro assignment. However, if a solution to a problem is discussed in class or posted online, no late solution to this problem will be accepted after this. A submission is qualified as late if it is returned after the specified date and time.
- Representing someone else's work as your own without referencing
or permitting another student to do so with your work is cheating.
Leaving your source files in a public directory where everybody has an access is also considered as cheating.
Cheating might result in administrative actions described in UWS14.03 UW-System Administrative Code Student Academic Disciplinary Procedures. - A make up of an exam is allowed if an unavoidable absence occurs. A reason for absence must be documented.
- Students are required to check with the instructor if they find some of these rules unclear, before taking an action.
Suggestions for Success in Class
- Do not miss classes. The class discussions emphasize on many particular aspects, a good number of them is not in the textbook or spread out over several chapters in the book so that it might be difficult to find them. These details may be very helpful for your work on the assignments.
- Attend every lab. In most cases the material discussed in the labs won't be discussed again during the regular class meetings. Labs also include some material which are not covered in the textbook. The lab materials will be used for the assignments and exams. The textbook does not replace class meetings or labs, and vice versa.
- Ask right away in class or after the class if something is not clear.
- Read in the books the topics that are covered in class on the same day after the class. Just working on the material during the class hours is far from being enough. It is expected that a student would spend at least 2 hours in average working through the material after each class.
- Prepare yourself for the next class. That is, read in advance the material to be explained in class. Refer to the Course Outline to figure out what will be covered (it will also be announced at the end of each class). It would be much easier for you then to follow the discussion in class. In addition you would know what to pay a particular attention on and what questions to ask.
- Come to the instructor's office hours (or make a special appointment) and do not let the unclear stuff to accumulate.
- Try to find time to solve as many problems as possible (even more than it is assigned). Solving the problems is the only way to learn how to solve them.
University Policies
- Diversity and Inclusion at UW-Superior
Diversity and inclusion is integral to the educational mission of the University of Wisconsin-Superior. As a community we commit to recognize, include and value inherent worth and dignity of each person; foster tolerance, sensitivity, understanding, mutual respect, and justice among its members; and encourages each individual to strive to reach their own potential. The institution recognizes these experiences are crucial for developing the requisite skills to thrive as a member of a pluralistic society and as a responsible global citizen.In pursuit of its goal of inclusive excellence, the University actively seeks to attract students, faculty, and staff from diverse backgrounds and life experiences, including but are not limited to: race, ethnicity, sex, gender identity, gender expression, sexual orientation, age, socio-economic background, cognitive ability, physical ability, religion and spirituality, value system, national origin, immigration or refugee status, veteran status, and political beliefs.
The University believes that diversity among its members strengthens the institution, stimulates creativity, promotes the exchange of ideas, and enriches campus life. The University of Wisconsin-Superior views, evaluates, and treats all person in any University related activity or circumstance in which they may be involved, solely as individuals. For more information about Equity, Diversity and Inclusion and/or to report bias, discrimination or harassment, please email edi@uwsuper.edu.
- Class Cancellations
When weather conditions are dangerous, students will be informed via the media about class cancellations. Students should not call Campus Safety. - Accommodation of Religious Beliefs
Student's sincerely held religious beliefs should be reasonably accommodated with respect to scheduling all examinations and other academic requirements. Students should inform the instructor of these needs at the start of the semester. - Disabilities Accommodation
Adaptations of methods, materials or testing will be made to accommodate educational participation. Students should inform the instructor of these needs at the start of the semester.
Please refer to the University Catalog or the UW-Superior Web page for full description of these and other policies.