Syllabus - CS2318 Section 251 Spring 2021
Syllabus - CS2318 Section 251 Spring 2021
Our class will meet through the Zoom online conference system. Our success as an online class will depend on the same commitment we all
bring to the physical classroom. We will adopt the same rules and norms (take notes; participate by asking and answering questions; wear
classroom-ready clothing). For everyone’s benefit:
► Join the meeting in a quiet place whenever possible.
(Courtesy Harvard Law School . . .: "... watch and share this humorous video that DCE developed for “student do’s and don’ts in Zoom")
► For identification purposes, display your first and last names as provided to the university.
(Your attendance will not count if I have trouble mapping you as a participant to a student on the class roster.)
(As identification aid, Meeting Authentication Option is set to TxState Users - only those sign-in to Zoom with txstate.edu domain can
participate.)
► Close browser tabs not required for participating in class.
(You are expected to be equipped with a camera and microphone; the next two items are in reference to these gadgets.)
► Turn on your video whenever possible.
(You will need to have your video on when taking exams to enable some modicum of proctoring.)
► Mute your microphone unless you are speaking.
► . . . (more may be added should the need arise)
● To facilitate remote instruction, including absentee viewing (for those who unavoidably have to absent themselves) and/or rehash viewing,
Zoom class meetings will be recorded where possible and appropriate.
► Recordings are only available to and accessible by students currently enrolled, via TxState Canvas.
► Recordings will not be used in future semesters.
Any student(s) not agreeable to the recording arrangement should bring it up for discussion during the first meeting.
■ Personnel and Logistical Information:
● Instructional contact and availability: detailed under Who Where When and Instructor Schedule.
● Timeline (of events fixed or more or less so): charted as Dates To Note.
■ Description and Learning Objectives:
● This course in the main covers introductory programming using the MIPS R2000 assembly language. For effectiveness (in the learning and
understanding of the subject), it also includes appropriate discussions of topics related to computer architecture (bits, bit patterns, operations
on bit patterns and how bit patterns represent instructions and data, and machine organization of today's mainstream computers). Successful
completion of this course will help you gain experience programming at a low (closer to actual machine) level and a good appreciation of how
most of today's computers really work (how they are organized down to the basic functional component level). The background you acquired
should be valuable to you in furthering your pursuit in computer science, particularly in low-level areas such as Computer Architecture,
Embedded Computer Systems and Operating Systems, and more generally in becoming a well-grounded computer scientist.
● Learning objectives:
► The student will be able to represent digital information in different formats (e.g., binary, hexadecimal, IEEE 754 floating-point, and
Unicode representation).
► The student will be able to perform binary arithmetic.
► The student will be able to list different classes of machine instructions, provide examples, and explain what operations various
instructions perform.
► The student will be able to outline the process by which high-level source code is translated into machine-readable executables.
► The student will be able to explain how the architecture and the instruction set work together with the operating system and programming
languages to accomplish computer application objectives.
► The student will be able to design and develop assembly-language programs.
► The student will be able to efficiently use recursion and estimate the overhead of function invocations.
■ Prerequisites:
● C or better MATH 2358 (Discrete Mathematics I).
● C or better in CS 2308 (Foundations of Computer Science II ).
NOTE: This course assumes that you are already comfortable programming using a high-level language; specifically, it assumes that you have a
C/C++ programming background.
■ Suggested outside material for those looking to do comparative self-study: IMPORTANT: Overwhelmingly, the most important
reference material consists of lecture notes and
TITLE:
examples made available online. Typically, some
MIPS Assembly Language Programming
lecture notes (or parts of them) are skimmed over or
AUTHOR:
skipped due to time. Students are expected to attend
Robert L. Britton lectures (and take good notes) to be primed for what to
EDITION / PUBLISHER / YEAR / ISBN: expect in exams and to do well.
1st / Pren Hall / 2004 / 0-13-142044-5
■ Course Plan:
► Class website.
► Highlights -> administrivia, success tips, etc.
► Organizational overview:
♯ memory (RAM).
♯ registers.
♯ coprocessors.
► Conventional memory model -> memory partitions:
♯ text segment.
♯ data segment.
♯ stack segment.
♯ reserved.
► CPU registers:
♯ names.
♯ usage convention.
► Instruction design -> width and formats:
♯ fixed-width (32-bit).
♯ R-format.
♯ I-format.
♯ J-format.
► Language/program elements:
♯ statements -> instructions, pseudoinstructions, directives.
♯ comments.
♯ system services.
♯ program templates.
► Programming environment -> MIPS emulator (MARS).
► Introductory example programs:
♯ sequence flow of control.
♯ use of system services.
♯ algorithm development -> universal and essential problem-solving step.
● MIPS32 assembly language programming -> doing the basics. S2.4 thru S2.8
S5.2, S5.3
Appendix A, C and D
LN010, LN011
► Instruction layout:
♯ operation codes.
♯ operands.
► Addressing modes:
♯ immediate addressing.
♯ register addressing.
♯ base addressing.
♯ PC-relative addressing.
♯ pseudodirect addressing.
► How memory addresses are formed:
♯ load/store memory address.
♯ branch destination address.
♯ jump destination address.
► Pipelining basics.
► A pipelined implementation of MIPS and programmer-visible hazards:
♯ delayed-load data hazard.
♯ delayed-branch control hazard.
► Principles of select further techniques:
♯ superpipelining.
♯ superscalar.
♯ VLIW (Very Long Instruction Word).
► Memory-mapped I/O.
► I/O via polling.
► I/O via interrupts -> Coprocessor 0 and exception handling.
● MIPS32 assembly language programming -> others (time permitting). C11
LN021
■ Attendance:
(This is not the usual attendance policy but one adapted to be pandemic disruption tolerant in line with University Roadmap for Spring 2021.)
● Students are expected to attend all the scheduled Zoom class meetings as it is in their own best interest to do so.
● As an extra incentive, your good attendance can help you score up to 2% "good grace" points useful when your overall score is near a
borderline between two grades:
► 2.0% if your overall attendance is in the [ 95% . . . 100% ] range.
► 1.5% if your overall attendance is in the [ 90% . . . 95% ) range.
► 1.0% if your overall attendance is in the [ 85% . . . 90% ) range.
► 0.5% if your overall attendance is in the [ 80% . . . 85% ) range.
(Attendance performance will be computed based on data extracted from Zoom's meeting reports.)
(No pleadings/appeals in regard to this extra incentive will be entertained.)
■ Assignments:
● Required written/programming assignments in 4 main areas (typically).
► 1 Information representation.
► 2 MIPS32 assembly language programming: getting started.
► 3 MIPS32 assembly language programming: doing the basics.
► 4 MIPS32 assembly language programming: doing functions.
NOTE1: Item(s) listed against each assignment -> key concept(s) for the exercise.
NOTE2: Later assignments typically require use of earlier concepts (which are not listed).
NOTE3: The number of assignments is not necessarily 4, as an assignment may involve multiple areas.
● A less than 50% average score for required assignments will result in a penalty of "loss of one letter grade" (e.g., if your overall score is in
the B range, you will get a C instead).
● Assignments will be managed using TxState Canvas:
► Task descriptions, deliverables, due dates and times, . . . (Typically via externally linked pages.)
► Submission of deliverables. (Typically source files in as-is text format and print-to-PDF format.)
► Return of graded work. (Typically submitted source files in print-to-PDF format that have been marked.)
● In general, late work will not be accepted (and will earn no credit).
► I reserve the right to make due-date/due-time extensions or relaxations where appropriate.
■ Exams:
● 3 required exams:
► Exam 1 (1hr 20min)
► Exam 2 (1hr 20min)
► Final (2hr 30min) - comprehensive (cumulative), with emphasis on concepts that have not been tested.
● All exams will be administered online via TxState Canvas (the Quizzes tool).
■ Grading Criteria:
● Exams: 70% (20% Exam 1, 20% Exam 2, 30% Final).
● Assignments: 30%.
■ Withdrawal Policy:
● Registrar's Office guidance: http://www.registrar.txstate.edu/registration/dropping-or-withdrawing.html.
● After the automatic W period, you are expected to check with me prior to dropping the class to see if you will receive a grade of W or F.
■ Make-Up Exams:
● Make-up exams will only be given under unexpected and truly severe situations, which must be supported by some official document.
■ Academic Honesty:
● Unless indicated otherwise, all work submitted in the class is expected to be your individual work. Violations will be dealt with according to
university policies - see Student Handbook pages 46-47 or look under here.
● *** Important Note ***
Any attempts at obtaining homework, project, or exam solutions from “note sharing sites” such as Chegg and CourseHero or from other
sources are considered cheating and carry the same penalty. The department regularly monitors websites for posted solutions.
■ Special Needs:
● Students with special needs (as documented by the Office of Disability Services) should have the instructor informed at the beginning of the
semester/session.