0% found this document useful (0 votes)
57 views7 pages

Syllabus - CS2318 Section 251 Spring 2021

Uploaded by

David Kim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views7 pages

Syllabus - CS2318 Section 251 Spring 2021

Uploaded by

David Kim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Course Syllabus

■ Applicable University Roadmap for Spring 2021 Items:


(For all items, relevant parts of Computer Science Policies and Guidelines for Fall 2020 Re-opening will also be diligently adhered to unless
circumstantial considerations imperatively dictate otherwise.)
(Some items may be repeated in part or in whole elsewhere in the syllabus.)
● Mode of class delivery: remotely via Zoom Video Communication (no face-to-face meetings foreseen).
► Invitations sent via TxState email accounts shortly (5-10 minutes or so) before start time.
● Access to class materials: via a front page on TxState Canvas (- click the Home tab near the upper left upon getting into the course).
● Examination procedures: online via TxState Canvas (the Quizzes tool).
► Class still meets (via Zoom Video Communication) so students identify themselves and can chat (privately) with instructor to seek
clarification where needed.
► Invitations sent via TxState email accounts shortly (5-10 minutes or so) before start time.
● Scheduled office hours: remotely via Zoom Video Communication on first-come-first-served basis.
(The office hours are open to 100+ students, so no hogging please.)
► Invitations sent via TxState email accounts shortly (5-10 minutes or so) before start time.
● As needed appointments: remotely via Zoom Video Communication.
►Appointment requests via TxState email accounts.
►Invitations sent via TxState email accounts shortly (5-10 minutes or so) before start times.
● How disruptions to routine instruction will be handled.
► Notify via TxState email accounts at the earliest possible.
● QUOTE (https://www.txstate.edu/coronavirus/road-map/teaching-research.html):
Civility in the classroom is very important for the educational process and it is everyone’s responsibility. If you have questions about
appropriate behavior in a particular class, please address them with your instructor first. Disciplinary procedures may be implemented for
refusing to follow an instructor’s directive, refusing to leave the classroom, not following the university’s requirement to wear a cloth face
covering, not complying with physical distancing or sneeze and cough etiquette, and refusing to implement other health and safety
measures as required by the university. Additionally, the instructor, in consultation with the department chair/school director, may refer
the student to the Dean of Students Office for further disciplinary review. Such reviews may result in consequences ranging from
warnings to sanctions from the university. For more information regarding conduct in the classroom, please review the following policies
at https://policies.txstate.edu/division-policies/academic-affairs/02-03-02.html, Section 03: Courteous and Civil Learning Environment,
and https://studenthandbook.txstate.edu/rules-and-policies/code-of-student-conduct.html, number II, Responsibilities of Students, Section
02.02: Conduct Prohibited.
END_QUOTE;
(note that some items like classroom, cloth face covering and physical distancing may not apply under delivery mode not involving face-to-
face meetings).

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:

Lectures/Discussions (main bullets) Readings/References


and (C,S -> Chap.,Sec. of text)
Descriptions (sub-bullets) (LN -> Lecture Note)
(contents guide meant to be adaptively applied, not rigidly followed) (maybe in-class handouts)

● Introduction. class website

► Class website.
► Highlights -> administrivia, success tips, etc.

● Big Pictures on assembly language. LN001

► How it relates to computer science.


► Abstraction in hardware (separation of concerns, divide-and-conquer).
♯ computer level hierarchy (virtual machine layers).
♯ where assembly language fits in.
► Other quick takes on assembly language and assembly language programming.
● Digital representation of things. C3, Appendix B
S11.1, S11.4 thru S11.10
LN002 thru LN005

► Digital and binary:


♯ what digital means and why binary.
♯ how anything can be represented digitally and in binary.
► Representing unsigned whole numbers:
♯ positional number systems.
♯ Horner's method.
♯ converting from one base to another.
♯ binary addition.
► Representing signed whole numbers:
♯ sign-magnitude, 1's complement, 2's complement, biased/excess.
♯ adding 2's complement numbers and overflow detection.
♯ shortening and lengthening of 2's complement representation.
- zero-extending vs sign-extending.
► Representing floating-point numbers:
♯ positional system for unsigned floating-point numbers.
♯ IEEE-754 standard for signed floating-point numbers.
♯ encoding/decoding decimal numbers based on IEEE-754 standard.
► Representing characters:
♯ ASCII code.
♯ Unicode.

● Bit manipulation operations. S5.2, S5.3


LN005a
► Bit shifting.
► Bitwise NOT, AND, OR and XOR (and NOR in lieu of NOT for MIPS).
► Example applications: multiplication/division (by 2x), multiple (of 2x) detection, masking.

● Fundamentals of machine organization -> with MIPS slant. C1


LN006, LN007

► Aspects of key components at various levels.


► Aspects of memory hierarchy, including:
♯ registers.
♯ cache memory.
♯ main memory (RAM).
♯ secondary memory.
► Aspects of microarchitecture, including:
♯ datapath.
♯ control.
► Aspects of instruction set architecture (ISA), including:
♯ programmer accessible registers.
♯ instruction and instruction set.
♯ addressing mode.
► Other aspects -> mostly those needed in later discussions:
♯ 0-operand, 1-operand, 2-operand, 3-operand processors.
♯ load-store architecture.
♯ RISC vs CISC.
♯ historical perspective on technological advances.
♯ fetch-decode-execute cycle.
♯ pipelining.
♯ memory-related matters:
- programmers' view -> virtual vs physical.
- addressability.
- operations -> read and write.
- alignment.
- byte ordering -> little-endian vs big-endian.
♯ von Neumann (Princeton) vs Harvard architectures.
● MIPS32 ISA -> helpful views for assembly language programmers. C1, S2.3, S7.7
LN008

► 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.

● MIPS32 assembly language programming -> getting started. S1.10, S1.11


S2.2, S2.10, S2.11
S5.4, Appendix A
LN009

► 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

► Rundown of different types of instructions:


♯ load and store instructions.
♯ data movement instructions.
♯ constant-manipulating instructions.
♯ arithmetic instructions.
♯ logical instructions.
♯ comparison instructions.
♯ branch instructions.
♯ jump instructions.
♯ other instructions.
► Basic programming constructs:
♯ performing arithmetic and bitwise operations.
♯ accessing main memory.
♯ making decisions.
♯ doing loops.
► Some tips, tricks, traps and observations.
● MIPS32 assembly language -> instruction encoding/decoding. S1.10, S2.9
Appendix C and D
LN012, LN013

► 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.

● MIPS32 assembly language programming -> doing functions. S2.4, C6, C7


LN015, LN016

► Data segment (global) vs stack segment (local) variables.


► Invocation flow of control.
► MIPS function-call mechanism and instruction support.
► Passing-by-value vs passing-by-reference.
► Simple functions -> no stack-segment memory (stack frames) needed.
► Complex functions -> stack-segment memory (stack frames) needed:
♯ a function-call convention similar to that used by GNU C-compiler.

● Exploiting instruction-level parallelism (ILP) to improve performance. C10


LN017

► 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).

● The "source code->object code->executable code" paradigm. LN018

► A translation hierarchy for C -> compiling, assembling, linking, loading.


► Functional overview of compiler.
► Functional overview of assembler and more in-depth study of some aspects.
► Functional overview of linker and more in-depth study of some aspects.
► Functional overview of loader.
► Exploratory example -> how (a version of) GCC does it for C.

● MIPS32 assembly language programming -> input/output (I/O) considerations. C8, C9


LN019, LN020

► 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

► Floating-point instructions -> Coprocessor 1.

■ 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.

■ Course Related Material:


● Students can access these via the course site on TxState Canvas. Students are responsible for keeping abreast of the latest postings.
► Where expedient and appropriate, I will do my best to alert students (such as during class meetings or through mass emails) of upcoming,
freshly added or updated postings.
● *** Copyright Note ***
Unless otherwise noted, the materials provided in conjunction with this course, including but not limited to the lecture notes, handouts,
homeworks, exams, and source code, are protected by copyright and for the exclusive use of the students enrolled in the course. Allowing
others to access any of this material by posting it on public repositories such as git or submitting it to “note sharing sites” such as Chegg and
CourseHero (which encourage you to break the law and post copyrighted content you do not own) is expressly forbidden. Note that you are
not allowed to publicly post any of this material even if you made modifications. This copyright protection extends past the end of the
semester.

■ Guidelines, Success Tips, and Other Pertinent Issues:


● These will be mentioned in class and/or posted on the course site. Students are responsible for noting these while attending class (one reason
why class attendance is important) and by visiting the course site often. I typically spend some time on the first day of class highlighting
these.

■ Collective (Mass), Outside-of-Meeting, Instructor-to-Students Communication:


● Electronically via students' Texas State email accounts (using a mailing list created from students' Texas State NetIDs).

■ 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.

You might also like