CSC 270: Computer Organization
Syllabus
Instructor: Prof. Chris Fernandes
Email: fernandc (at) union (dot) edu
Lecture: MWF 9:15-10:20 (Olin 206)
Lab: Thurs 9:00-10:45 or 10:55-12:40 (ISEC 051)
Office Hours: Mon 11-2, Wed 1-3, Fri 11-noon
or anytime my door's open!
Office: 219 Steinmetz Hall
Phone: 388-6401
Course Webpage: http://nexus.union.edu
Text (1 required):
David Harris and Sarah Harris,
Digital Design and Computer Architecture, 2nd ed,
Morgan Kaufmann, 2013. ISBN: 978-0-12-394424-5
Course Description
There are microprocessors in your cellphone, watch, kitchen appliances,
and perhaps even your sneakers. This is the class where you learn how
microprocessors work and how to build them. We'll learn the major
components common to all computing architectures and how they interact.
By the end of the course, you should understand
- all the components of a MIPS microprocessor
- logic gates
- computer architecture design
- how to compare processors across a variety of
performance metrics
- MIPS assembly language programming
- how to build a CPU capable of running a computer program
Prerequisites
C- or better in CSC 120 or its equivalent.
Talk to your instructor immediately if you do not meet this prerequisite.
Evaluation
Grading
- Microhomeworks: 10%
- Lab projects: 35%
- Final project: 15%
- Midterm: 20%
- Final exam: 20%
Academic Dishonesty
Struggling on your own to figure out what to do next is where a lot of the learning
happens in CS. Give yourself the opportunity to do this -- ALONE. Here are some specific things to avoid
(this is not a complete list):
-
Do not "work on the project together" with friends, especially if the group of you
are each at your own computers and are always in lock step trying to figure out the same
line of code or the same part of the logic circuit at the same time.
-
Do not give your circuit diagrams or
code to another person or receive the same from another person -- EVER.
You might think that it's just helping out a friend, but it's still
academic dishonesty.
-
Do not even look at someone else's work unless it is to
give that other person help. For example, if someone asks you
to look at their code in order to understand an error message, that's fine.
If you are looking because you yourself don't know how to write something and
you need "inspiration", that's NOT fine.
Ok, so what should you do? Here are some tips:
-
Once you've struggled with something on your own and you're still getting nowhere, ask for help!
Email and visit me, go to the helpdesk, and, yes, ask your fellow students! They can't show
you their own work, but they can sure explain things and write out examples.
-
Microhomeworks should be worked on by yourself. If you have a question or you are stuck,
get your $80 worth and ask me.
-
It's ok to write pseudocode together. Get the logic down in English. Then go off
by yourself and translate it to code.
-
It's ok to work together on code/problems that are not part of the assignment, especially when it
helps demonstrate the concept of what you're being
asked to do. Go through a class example together or maybe a demo. There's no better
way to understand something than trying to think up examples in order to teach it to someone else.
Try it!
-
It is ok to reuse material that is in the textbook or in a class demo. It is not ok to use material
you find on the Internet (including ChatGPT and similar sites), in other textbooks besides our own,
or that is part of someone else's lab/hwk/project.
Here's the bottom line: except for the above, you have to write
everything yourself, from scratch.
Don't go looking on the Internet if you don't understand a class concept.
You should be asking me.
We have an honorcode and I'm trusting y'all to follow it.
Read up on it at
http://honorcode.union.edu. All suspected
violations will be reported to the Honor Council chair and Dean
of Studies.
What you need to do
To prepare for class, you are required to do the following:
Show up
You are expected to be present for every class. However, I realize that
sometimes other things come up (interview, illness, etc.) so
just please let me know in advance by phone/email if you're going to
be absent. Unexcused absences are NOT allowed and will
affect your grade.
If you miss class, get notes from someone
and do the readings before coming to see me. I'm happy to
explain things, but I won't repeat lectures for you.
Read the text
Weekly readings will be posted on our
Nexus page.
Keep up with it since microhomeworks might come from there.
There will always be a time for questions about the readings or previous
lectures at the beginning of class. Take advantage of it.
Check the webpage on Nexus
Reading assignments, class demos, handouts,
and upcoming topics will be
posted regularly on the course webpage. You are required
to check it at least once a week. I usually update it over the weekend.
Check your email twice a day
I know: it's old tech, but this school runs on email. I send out
a lot of tips, hints, announcements, error corrections, and
lecture addendums over email. Check it at least twice daily.
Stay focused
Class goes by fast, so your job is to stay engaged. If you're using a laptop/tablet to take notes, that's fine,
but class time is for class work. Using computers for other things like
other classes' work, texting, reading email, or catching the latest ESPN
highlight video is not permitted. This policy extends to cell & smart phones too.
Phones should be in silent mode and out of sight (mine and yours).
Make backups
I always have at least one student each term who loses all of
their work due to a computer glitch or hard drive crash.
Don't let it be you. Make backups
of everything.
Don't fall behind
Remember: in computer science,
we start with simple things and build on them and combine them
into more and more complex ideas. It is important that you don't
fall behind. If you feel
at any point that something is not quite clear to you, it's your job
to come see me so that we can clarify that issue before we get to
something more complex that builds on it.
Accommodations
Union College facilitates the implementation of reasonable accommodations, including
resources and services, for students with disabilities, chronic medical conditions and temporary
disabilities resulting in difficulties accessing learning opportunities. All students needing services must
first register with Accommodative Services located in Reamer 303. It is strongly recommended that
accommodations be requested within the first two weeks of the term. Last minute requests can be denied.
Any student with a documented learning disorder is welcome to
come talk to me privately about options for completion of exams and
homework assignments.
The Bottom Line
Ask questions and seek help. This is the most important
point of all. I live to answer questions. Don't be afraid to
contact me every single day if you want. It's better
for everybody (you AND me) if you understand
things sooner rather than later. More often than not, there's
a line of people waiting to see me on the day before a project
is due. You'll get the help you need faster by starting on projects
sooner rather than waiting until the last minute.