CSci 241: Fall 2019 Syllabus
Instructor details
Instructor | Andy Clifton |
aclifton@fullcoll.edu | |
Student (office) hours | Mon/Wed 4:15 — 5:45 PM Tues 8:30 — 9:15 AM Thurs 8:15 — 9:15 AM |
Office | Room 611-02 |
Office phone | 714-992-7418 |
Website | Instructor website |
CSci Lab hours | Mon/Wed 9:30 — 11:30 AM |
(If you contact me by email I will try to reply the same day, but it may be up to a few days, depending on circumstances.)
Course details
Course | CSci 241, Computer Org. and Assembly Language Prog. (12408), 4 units |
Prerequisite | CSCI 133 or 223 with a grade of ‘C’ or better. |
Website | http://staffwww.fullcoll.edu/aclifton/courses/cs241/ |
Schedule | Monday & Wednesday, 3:15-5:20 PM, room 618 |
Text | Assembly Language for Intel Based Computers, Kip Irvine |
Final exam | Wednesday, Dec 11, 3:15-5:20 PM |
Student Learning Outcome: Analyze the architecture and use the instruction set of one or more processing platforms (e.g., Intel), and to write computer programs using the native instructions for a target processor.
Course Description
“This course is an introduction to assembly language programming. It includes reviews of computer organization, programming techniques and concepts, addressing techniques, input/output, hardware architecture, and data structures.”
Student responsibilities
-
Attendance will be taken during class. Students who arrive late are responsible for ensuring that their attendance is counted.
-
If the instructor is more than fifteen minutes late for class, the entire class is excused for that day.
-
Any student who misses the first class meeting with out making prior arrangements may be dropped. (But note that, if you wish to drop the class, the responsibility is on you to make sure you are officially dropped. Don’t just not show up and expect me to do it for you.) An unexcused absence may be expunged by using one token (see below).
Prerequisites: CSci 133 or 223 with a grade of ‘C’ or better.
I will use Canvas to post your grades. You will submit your assignments via
the department’s computer science server (fccsci.fullcoll.edu:5150
).
Grading
This course will use a system known as specifications grading. We will have approximately 8 assignments, the grades for which go into a pool of “assignment points”. We will also have every-other-week quizzes, a midterm in the middle of the semester, and a final exam; the grades for these go into an “exam points” pool. At the end of the semester, your final grade for the course is the smaller of your assignment grade and exam grade.
Topics covered
Roughly in chronological order:
-
Basics of computer architecture: caching and its effect of program
performance, instruction set architecture -
Structure of an assembly language program: sections, entry points, linking with the standard library.
-
Representation of integers: binary, octal, hexadecimal. Conversion to/from decimal. Signed and unsigned representations.
-
Calling operating system and library routines.
syscall
codes and calling convention. Function calling convention and stack maintenance. -
Arithmetic (integer) operations.
-
Floating-point and BCD representations and operation
-
Comparisons, conditional/unconditional branching, and the flags register Conditional moves.
-
Arrays and array addressing modes.
-
Macros
-
Bitwise and logical operations
-
Low-level hardware interaction: bootloaders, interrupts, memory-mapped IO.
A note on collaboration and cheating
Computer science is a fundamentally collaborative subject, thus it’s not surprising that you will want to work together and help each other. While this is expected and allowed, the grade you are assigned at the end of the semester is intended to reflect your individual knowledge, not the gestalt knowledge that is formed when you and some friends get together. Consequently, I ask that you respect the “principle of the erased whiteboard”. The idea is to imagine, whenever you are working together, that you are writing things together on a whiteboard. When you are done, the imaginary whiteboard must be erased, without copying anything down or taking pictures of it. The only thing you are allowed to take away is the understanding you have gained.
My cheating policy for this class is:
The first instance of cheating on any test/assignment will result in a grade of 0 for that test/assignment.
Subsequent instances will reduce your final letter grade for the course by one letter, per instance.
The college’s official policy on cheating and student behavior is as follows:
Academic Honesty Policy
Students are expected to abide by ethical standards in preparing and presenting material which demonstrates their level of knowledge and which is used to determine grades. Such standards are founded on basic concepts of integrity and honesty. These include, but are not limited to, the following areas:
- Students shall not plagiarize
- Students shall not cheat
- Students shall not furnish materials or information in order to enable another student to plagiarize or cheat.
Instructors may deal with academic dishonesty in one or more of the following ways:
- Assign an appropriate academic penalty such as an oral reprimand or point reduction.
- Assign an “F” on all or part of a particular paper, project, or exam.
- Report to the appropriate administrators, with notification of same to the student(s), for disciplinary action by the College. Such a report will be accompanied by supporting evidence and documentation.
Repeated violations may result in students receiving an “F” in the course, suspension or dismissal from the College.
Standards of Student Conduct and Discipline Policy
The standards of student conduct and disciplinary action for violation of Board Policy 5500 were approved by the NOCCCD Board on January 28, 2003, and were drawn in compliance with Sections 66300, 76030, 76033, 76034, 76036 of the State Education Code. Students are expected to respect and obey civil and criminal law and shall be subject to the legal penalties for violation of the city, county, state, and national law(s). Student conduct must conform to Board Policy and college regulations and procedures. As cited in BP5500, “A student who violates the standards of student conduct shall be subject to disciplinary action including, but not limited to, the removal, suspension or expulsion of the student.”
Students have an obligation to familiarize themselves with the College’s policies, rules and regulations and to conduct themselves in a reasonable, respectful manner, which is conducive toward attaining their educational goal. Upon registration, each student should obtain a copy of the College Policies and Regulations: Standards of Student Conduct and Discipline Policy. Contained therein are the policies approved by the Board of Trustees governing student behavior and the applicable penalties for violations of these policies. Copies are available in the Student Affairs Office, the Office of Equity and Diversity, all division offices, and the Student Services office.
Student Complaints
Students should attempt to resolve issues directly with the faculty or staff member involved in the complaint. For serious or ongoing complaints, students may file a formal Student Complaint. The process for doing so is described in the Catalog.
Calendar
A tentative calendar for the semester is as follows:
Week | Lecture |
---|---|
Mon, Aug 26 | Introduction; Terminology; Architecture basics |
Wed, Aug 28 | Basic assembly; converting between numeric representations |
Mon, Sept 2 | Labor Day Holiday |
Wed, Sept 4 | Registers and simple loops |
Mon, Sept 9 | Arithmetic operations; simple functions |
Wed, Sept 11 | Branching, conditions, and looping |
Mon, Sept 16 | Branching and conditions – applications |
Wed, Sept 18 | Functions and the stack |
Mon, Sept 23 | Interop. with C; Floating-point operations |
Wed, Sept 25 | Floating point and vector operations |
Mon, Sept 30 | Instruction-level parallelism; pipelining on MIPS |
Wed, Oct 2 | Bitwise operations |
Mon, Oct 7 | 32-bit mode; Fixed-point and BCD operations |
Wed, Oct 9 | Midterm Review |
Mon, Oct 14 | Midterm exam |
Wed, Oct 16 | Midterm recap |
Mon, Oct 21 | C-compatible structures; alignment and packing |
Wed, Oct 23 | Dynamic memory and linked lists |
Mon, Oct 28 | C-style strings; string operations |
Wed, Oct 30 | Asm libraries; inline assembly |
Mon, Nov 4 | System memory management |
Wed, Nov 6 | Finite state machines; parsing text |
Mon, Nov 11 | Veterans’ Day Holiday |
Wed, Nov 13 | Writing a simple compiler to assembly |
Mon, Nov 18 | Instruction formats |
Wed, Nov 20 | Macros and preprocessing |
Mon, Nov 26 | Operating systems, part 1: the boot process |
Nov 28-29 | Thanksgiving Holiday |
Mon, Dec 2 | Operating systems, 2: boot process continued |
Wed, Dec 4 | Operating systems, part 3 |
Mon, Dec 9 | Final review |
Wed, Dec 11 | Final exam |
Other college policies
Various other college policies, which I am required to present to you, are as follows:
I am committed to creating a course that is inclusive in its design. If you encounter barriers, please let me know as soon as possible so that we can determine if there is a design adjustment that can be made or if a disability accommodation might be needed to overcome the limitations of the design. I am always happy to consider creative solutions as long as they do not compromise the intent of the assessment or learning activity. You are welcome to contact the Disability Support Services (DSS) Office to begin this conversation or to establish disability accommodations for this or other courses. DSS can be contacted at 714.992.7099 or dsp@fullcoll.edu. I welcome feedback that will assist me in improving the usability and experience for all students.
Americans with Disabilities Act (ADA) Statement
Fullerton College is committed to providing educational accommodations for students with disabilities upon the timely request by the student to the instructor. Verification of the disability must also be provided. The Disability Support Services office functions as a resource for students and faculty in the determination and provision of educational accommodations.
Emergency Response Statement
Take note of the safety features in and around the classroom. Also, please study the posted evacuation routes. The most direct route of exit may not be the safest. Running out of the building during earthquakes may be dangerous. During strong earthquakes, it is recommended to duck, cover, and hold until the quaking stops. Follow the guidance of your instructor. Your cooperation during emergencies can minimize the possibility of injury to yourself and others.
Grade Appeals
While the instructor is the final authority in determining grades that are assigned to students and that appear in their permanent record, students have a right to inquire how their grade was determined, and a Grade Appeal Procedure is described in the Catalog.