CS-271 is an introduction to the common organization and architecture of�digital computers and the low level code that they execute. Topics include assembly language programming, historical development of systems, data encoding, Boolean and digital logic fundamentals, processor components, instruction execution and addressing and parallel architectures.
This is a transfer class; thus it must meet the requirements defined by the universities that most students transfer into (OSU, Western, PSU, OIT). The material moves at a quick pace starting from week 1, be ready to work hard early on in this course; if you get behind, it will be very difficult to catch up. Plan on spending 8-12 hours per week working on this course outside of the classroom. Also note that this course differs from CS161/162 - although there is a programming component to the course, there is a much larger breadth component. These topics require traditional study: reading, taking notes, reviewing. If you normally ignore the "book learning" and just focus on hacking up code in your CS classes, don't expect your approach to work well in this class.
There will be no retakes/make ups for the midterm exams or final. If you will be unable to make a given exam for a legitimate, unavoidable reason, you must contact me in advance to arrange an alternative testing session. Only an extreme medical or similar issue will be accepted as a reason for missing an exam without prior notice - in such a case you need to contact me as soon as possible to make arrangements.
You can turn in updated versions of any of the assignments any time before they are graded. If I see multiple versions of an assignment, I will grade the most recent one - make sure it has all of your work. Late assignments are worth at MOST 70% of the total, and only for a maximum of 1 week after the due date.
Assignments are usually scored within a few days - I use grading rubric in elearn that is available for your review assignment is graded.
I encourage you to work with others to develop your understanding of the material. It can be very helpful not only to have others you can ask questions of, but to practice trying to explain what you know. Clearly articulating what you think you understand about a topic is a great way to test your knowledge and help practice it. That said, assignments should be an individual product - you should not collaborate directly on them. It is OK to collaborate on practice activities, or to discuss the ideas in the assignment (which approach you took, examples that helped you, etc...) but it is NOT ok to share your assignment with anyone else in the class nor to make use of another student's work.
Everyone taking this course needs regular access to a working computer with internet access. If you do not have access to such a computer at home you need to expect to spend a significant amount of time in the open computer lab at Chemeketa.
Most of the software used in this course is freely available and can run on Windows, Linux or Macs OS X. I am happy to provide assistance or advice on installing tools during office hours, but setting up a working environment is YOUR responsibility.
I may make important announcements in class or via discussion boards. I will usually try to do both, but you are responsible for staying on top of what happens in class and what is going on in the discussion boards. Use the "Subscribe" button at the top of the main discussion board to automatically recieve email updates.
Electronic communication for all general class content related issues (questions about material or assignment instructions) should be done via the discussion board on eLearn. You are responsible for checking it regularly for announcements. I monitor the board regularly during the week, but if you read a question from another student on the discussion board and think that you can help, please do so! That said, the discussion board is not the appropriate place to post your entire program and ask "what is wrong???" If you want to ask about code you have written for an assignment, you need to do so without posting your code. That means asking general questions: "I am trying to do X, but my code keeps doing Y - anyone else had this problem?", "Anyone remember where I can find an example of X", "I keep getting this compiler error: BLAH BLAH BLAH... what does it mean?"
Electronic communication about personal issues (grade, etc...) should be done in person of via email.