CMPSCI-122 - Computer Architecture and Assembly Language - Dwight Sikkema
|Course:||Computer Architecture and Assembly Language|
Computer Science is all about solving problems using computers. If you like solving problems from word games, number games, to even video games, it is likely that you will like using a computer to solve problems. This class is entirely about the unique properties a computer has with respect to problem solving. In addition, we learn how to tell the computer how to solve problems.
For you who have no experience in computer programming, I think you will find this course provides a useful understanding of computers that can be a foundation for your future classes. If you are not going to pursue computer science as a career, you may find yourself using some of what is taught here if you are in a career using computers or solving problems.
For you who have some experience with computer programming, some of the programming topics discussed in this course may be a bit redundant; however, your previous programming classes likely focused on application development. The use of the C programming language and assembly language are geared more toward systems programming. Unlike application programming, systems programming is more tied to the underlying hardware architecture than application programming. Because of this, systems programming and assembly language help reinforce an understanding of computer architecture.
In this course you will learn the basic elements of a computer and how they interact with one another in various computer architectures.
You will understand numbering systems so that we can easily move between Decimal and the Binary numbering system... the numbering system of the computer. We will also learn the Hexadecimal numbering system as it makes it a little easier to work with binary numbers.
Binary numbers are represented in various ways in a computer to represent integers, floating point numbers, decimal numbers, and characters.
Once we have representations of numbers, we will look at the operations that can be performed on those numbers in the computer.
We then turn toward how a computer is programmed. We first understand how this is done using an high-level language (C) and then in machine language (the rudimentary language of the computer), and finally Assembly language which is a symbolic and more readable form of machine language.
What to Expect in this Course
There are exercises due each work used to reinforce the previous week's instruction material. These are in the form of online quizzes taken on Canvas. Students have the opportunity to take each assignment three times to advance their score.
There are two quizzes and two exams (midterm and final). These are in the form of Canvas online quizzes and are based on the assignments done throughout the semester. The midterm and final are cumulative. You will need to have some way to take a picture of the scratch paper that you used and have the ability to e-mail those pictures to the instructor.
The programming assignments are done during a portion of class and office hours and recorded. Students are taken step by step on how to develop and debug their programs until they are working. The C programming assignments require access to a web browser. The Assembly programs will be done on the Pep/9 application that can only be installed on Windows and Mac computers (Google Chromebooks not supported).
Bring a pencil and paper to each class and be prepared to work problems given in class and provide your answers in a private chat to the instructor. Your answers will not be graded but will be used to gauge your understanding of the material being covered.
Types of Assessments
There will be assignments in the form of online quizzes.
Two quizzes in the form online quizzes taken during class time and proctored and two exams in the form online quizzes taken during class time and proctored. All exams and quizzes require some form of work to be done on scratch paper. You will be required to show your work for the questions that require work to be done. At the end of the quiz and exam, you will send pictures of your work to the instructor.
There will be a C programming project and an Assembly programming project. The C programming project will be used to create the Assembly programming project. The projects are cumulative. That is, you will turn in your work at various stages of development. Therefore, you must turn in each project increment to complete all projects.
Textbook Information / Link to ZTC Textbook
A textbook exists specifically for this course:
- Text: Introduction to Computer Architecture and Systems Programming, First Edition, Author: Sikkema, Available as an eBook on Google Play/Books.
- Supplemental Text: Computer Systems, 5th Ed., Author: Warford, ISBN: 9781284079630
The first text contains all material covered in the class in written form. Students have found it an extremely helpful in preparation for upcoming lectures as well as an excellent supplement to past lectures.
The Warford text is an excellent computer science textbook and belongs on the bookshelf of any student or professional of computer science. It was the foundation of the textbook now used in the class.
Other Relevant Course Information
One of the things that surprises students is that writing programs takes typing skills. If you are a below average typist, consider boosting your skill using any of a number of online and free typing skills classes.
Although we are no longer constrained by physical class size, a large class is difficult to manage even with OnlineLIVE as we use chat and all of the programming projects require careful grading. So, each waitlist individual will be evaluated carefully to determine if being added to the class is warranted.
Finally, because of the cumulative nature of the projects as well as the material, "checking out" of the class by not completing assignments, projects, or taking quizzes or exams may result in you being dropped or withdrawn from the class.
This course can be accessed on the first day of class via Canvas at https://coc.instructure.com. Log into Canvas using your CanyonsID single sign-on:
- CanyonsID Username is your COC student email address (Ex: email@example.com)
- CanyonsID Password is your COC student email password
Please visit the Get to Know Your Online Classroom page for help logging into Canvas and for tips on using Canvas and Zoom. Canvas Chat Support is also available 24/7 for any Canvas related issues.
Check out the Online Education website for more information on a variety of topics that can help you be a successful online student such as: exam proctoring, learning styles, computer skills, and tips for student success. If this is your first online course, feel free to take our online learning readiness assessment to assess your skills.
The Learning Center (TLC)
The TLC provides FREE online tutoring resources to COC students!
Academic Accommodation Center (AAC)
College of the Canyons AAC provides educational services and access for eligible students with documented disabilities who intend to pursue coursework at COC. A variety of programs and services are available which afford eligible students with disabilities the opportunity to participate fully in all aspects of the college programs and activities through appropriate and reasonable accommodations. For more information on their services visit the Academic Accomodation Center website.
The Counseling Department offers appointments online. You can schedule an appointment by visiting the Online Counseling website. Counselors can help you map out a plan to reach your educational goals as well as advise you on course selection and registration.
Management of Stress and Mental Health
College of the Canyons cares about your emotional and physical health. Learn more about the broad range of confidential student services, including free counseling and mental health services available during this time by visiting the Student Health & Wellness Center website or by calling them at: 661-362-3259.
The National Suicide Lifeline number is 1-800-273- 8255 (TALK). Please call it if you or someone you know is having thoughts of suicide or is in severe distress - it could save someone's life.
You can also use the Crisis Text Line: Just text "Courage" to 741741. It's free, available 24/7, and confidential.
Veterans Resource Center
The College of the Canyons Veterans Resource Center is a department within the Student Services Division at the college, created to help veterans and veteran dependents with applying to College of the Canyons, enrolling in classes, and requesting VA Education or Vocational Benefits. For more information please visit the Veterans Resource Center website, email firstname.lastname@example.org or phone (661) 362-3469.
The Library provides live online and in-person research help, access to a full range of e-resources and physical materials that support the curriculum, individual and group study areas, and much more!
Last updated: 01/22/2022 Sub#: 1240