CSCE 312, Fall 2023
Computer Organization

Instructor: Daniel A. Jiménez, djimenez@tamu.edu
Office Hours (exclusively over Zoom): To be decided.
Zoom Link: https://tamu.zoom.us/my/djimenez

Teaching Assistant: Kevin Weston, kevin.weston@tamu.edu
Office hours: To be decided.

Class Times:
Lecture:
Sections 503, 504, 505: Tuesdays and Thursdays, 12:45pm to 2:00pm, ZACH 244
Lab:
Section 503: Tuesdays and Thursdays, 2:35pm to 3:25pm, ZACH 590
Section 504: Tuesdays and Thursdays, 3:55pm to 4:45pm, ZACH 590
Section 505: Tuesdays and Thursdays, 5:30pm to 6:20pm, ZACH 590

Textbook: Computer Systems: A Programmer's Perspective by Randal E. Bryant and David O'Hallaron (3rd Editon), ISBN 978-0134092669 (Note: You have to get the 3rd edition. The 2nd edition won't work.)

From the Undergraduate Catalog:

CSCE 312 Computer Organization
Credits 4. 3 Lecture Hours. 2 Lab Hours
Introduction to computer systems from programmer's perspective: simple logic design, data representation and processor architecture, programming of processors, memory, control flow, input/output, and performance measurements; hands-on lab assignments.
Prerequisites: CSCE 221 or concurrent enrollment. Junior or senior classification or approval of instructor.

From the professor:

Think of the computer as an automobile. So far, you have begun to learn how to drive, that is, to program the computer in a high-level programming language. But what goes on under the hood? That is, what are the mechanisms underneath the programming language that cause your program to execute? This class will provide an answer to that question. You will learn a little about digital logic design. You will learn how simple electronic devices are linked together to form the complex computer systems we use. You will see how information is represented and how representations can have an impact on the programs you write. Many of the mysteries behind the sometimes strange behavior of high-level programming languages will be revealed. You will learn a very low-level programming language called assembly language that is part of the interface between software and hardware. You will learn how details of the implementation of the computer, such as the memory system, can affect the performance of your programs. When you leave this class, you will have developed an accurate mental model of the way computers work so that when you write programs in a high-level language you will have a good idea of what is really going on when your program runs. Thus, you will become a better programmer.

This class has two big parts: digital logic design and assembly language. Assembly language is the bigger part so we'll do digital logic design first. There are little parts, too, that we'll pick up along the way.

About The Lab Section

Your teaching assistant will lead a lab covering the topics presented the lecture. The TA will administer quizzes, discuss assignments, answer you questions, and in general serve as a resource to give you a better idea of what is going on in the class than your professor can.

Course Requirements:

Grading

Letter grades will be assigned as follows: A is ≥ 90%; B is ≥ 80%; C is ≥ 70%; D is ≥ 60%; F is < 60%.

Policy on Assignments and Tests

Late assignments are not accepted. If you have not completed an assignment by the time it is due, turn in what you have for partial credit. Make-up tests are generally not given except for university sanctioned reasons, such as religious holidays, documented illnesses, catastrophic events, or other grave situations. You must inform the professor before missing the test. Quizzes may not be made up.

Academic Dishonesty

Unless a programming project or problem set is specifically assigned as a group project, students are not allowed to work together on assignments. You may discuss general ideas related to the assignment, but you may not e.g. share program code or read each others writeups. Instances of such collaboration will be dealt with harshly, but the real cost comes when a student doesn't know how to answer questions on a test about issues involved in doing an assignment. You may not copy or paraphrase work in whole or in part from other sources without giving proper attribution and making it clear which portions of the work are from other sources. "Other sources" includes anything that isn't your instructor or teaching assistant, including but not limited to other people, writing you find on online, programs like ChatGPT, other large language models, etc. Failure to acknowledge sources is considered plagiarism.

Academic Integrity Statement

"An Aggie does not lie, cheat, or steal or tolerate those who do."

Upon accepting admission to Texas A&M University, a student immediately assumes a commitment to uphold the Honor Code, to accept responsibility for learning and to follow the philosophy and rules of the Honor System. Students will be required to state their commitment on examinations, research papers, and other academic work. Ignorance of the rules does not exclude any member of the Texas A&M University community from the requirements or the processes of the Honor System. For additional information please visit: http://www.tamu.edu/aggiehonor.

On all course work, assignments, and examinations at Texas A&M University, the following Honor Pledge shall be preprinted and signed by the student: "On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work."

COVID-19 Statement

To help protect Aggieland and stop the spread of COVID-19, Texas A&M University urges students to be vaccinated and to wear masks in classrooms and all other academic facilities on campus, including labs. Doing so exemplifies the Aggie Core Values of respect, leadership, integrity, and selfless service by putting community concerns above individual preferences. COVID-19 vaccines and masking — regardless of vaccination status — have been shown to be safe and effective at reducing spread to others, infection, hospitalization, and death.