[Dedicated to the memory of Professor Phil Dorin, teacher, mentor and friend.]
An introduction to the basic organization of computer systems. Digital representation of textual and numeric information. Machine instructions and instruction formats, assemblers and assembly languages, linking and loading, process execution, interrupt and device-handling, and file management. System-level programming in C and assembly language.
You will need much of the material from Data Structures to be successful in this course since there are lots of data structure things that are basically how the computer works.
This class uses the C
language and the Intel x64 assembly language for its
concrete examples, homework, and exams. You are more than welcome to ask questions whenever you need,
for whatever clarification you need, either in class or out.
If you require additional practice with the C
language, there are any number of online tutorials
which you can use to hone your skills. In addition you can use other professors' web sites [either LMU
or other schools] and things like Code Academy,
Kahn Academy,
codingbat.com, and good old
Stack Overflow to help you when you are stuck.
There is a large number of great references for coding in assembly language, as well. Feel free to do some Internet searching on your own for that, but there are several that are listed below in the section about text books for the course.
And as always, feel free to come see me during office hours. I have a TON of books about C
programming that I can let you look at and use in the office during help sessions, as well as several
good texts on ASM.
We will also be looking at some of what's called embedded systems programming which is the kind of thing that is used in your car, in your TV, in your toaster and microwave, and in many, many other devices.
Note that the course description above from the University Bulletin is not very specific.... there is much more detail below!
Programming, like anything else, takes practice and perseverance. You must be willing to make mistakes, to learn how to fix them, and to learn not to be afraid of them. Humans [and now even computers!] learn by making mistakes, and this is the place to do so without fear.
When you finish the course, you will be able to:
|
In a nutshell, here's what you'll need to do to be successful in this course.
|
|
Instructional MethodsCourse content will be delivered using a combination of lecture, discussion, problem-based learning, group work, projects, presentations, critiques, community-based learning, portfolios, etc. All work will be submitted using a GitHub repository. Use of GitHub and all other tools required for the course will be explained during class sessions. However, it will be up to the students to handle any and all installation on their respective computer. Of course, if you need help, it will be available! Expected WorkloadIn accordance with the LMU Credit Hour Policy, this 3-unit course will require 9 hours of work per week, which includes the time spent in class and lab sessions. This work will consist of homework, in-class work, watching and commenting on some videos, and reading/study of provided materials. |
There are NO REQUIRED textbooks for this course. There are a number of books that
address the concepts and topics we will study, but they are all very expensive. While they do collect
the information all in once place for convenience, you can find all the information on the Internet if
you just apply yourself a bit. So instead, the main source for written
information for the
course will come from these web pages and from the recorded videos and shared diagrams that will be done
during class sessions. In addition, here are some very useful and informative links to related
material:
I will also be presenting information from some textbooks that I have on my bookshelf. This material will be given to you as handouts during the semester. Doing it this way will allow you to have free access to information that otherwise would cost you well over US$100 for a doorstop of a textbook.
Although we won't be covering these resources in their entirety for this course, we will be using them as primary resources. There will be some readings assigned from some of them, and you'll need to look up information from others.
A list of topics that are covered, and the approximate order and time frame in which they will be discussed, is available on the class notes page for this site.
Here is the reading list:
In the Beginning Was The Command Lineparts 1 – 5 [17 pages]
All written homework assignments are due at the beginning of the class on the date
they are due. Deviation from this process requires prior consent of the instructor. I left my
homework at home
is not a valid reason for late work. This is college, and you can be
responsible for remembering what you need to remember. Every effort is made to ensure assignments,
required deliverables, and due dates are prominently posted on these pages; it is your
responsibility to make sure you know what is due and when it is due.
You may certainly turn assignments in late; I will happily accept them, but they will be reduced in
grade by one letter for each day they are late. Day
means day
, not
workday
or class day
; an A+
homework due on Thursday which is not
turned in until the following Tuesday will unfortunately only earn a failing grade, unless some prior
arrangements are made with the instructor due to illness or some major schedule conflict. However,
if you want to turn something in late, I'll still provide feedback even for assignments which have no
chance of any credit; I keep this policy to allow you to get the learning benefit of the assignment
even if you don't get a grade for it. My philosophy is that it is important for the students to know
the material, even if an assignment doesn't get the best marks.
Any assignments which are to be printed out for submission must be printed on a printer. All assignments must use proper American English and/or Programming Language spelling and grammar. Failure to do so could cost you a letter grade, so get a spell-checker and a grammar checker, or find a friend who is proficient to proofread your work before it is submitted.
Other than these simple rules, there are no requirements for formatting, fonts, colors, diagrams, or anything else with respect to your homework assignments, other than good code craftsperson-ship.
There will be six homework assignments during the semester, due on the dates shown in the list below. Each assignment will contain several excersises to help give you experience with the concepts covered. Each of these assignments is detailed on a separate web page. Homework will be done in groups of two. It is EXPECTED that you will work independently from other groups, although discussion of the concepts among groups is encouraged. Computer science is a collaborative enterprise, but you will be responsible for your own work on the submission of all your assignments. Each link below takes you to the web page for that assignment
There will also be weekly in-class exercises
which serve to reinforce the week's
concepts presented in class. They will be submitted in your repo in GitHub, but will not be graded.
Instead, they are an indication of your progress and understanding. They are practice drills only.
There will be two quizzes, but no midterm exam. There
will be a final exam. Grades for the course will come from your homework assignments,
your participation in the class, the quizzes, and your final exam. Quizzes will be closed everything
.
The final exam will be open everything
except neighbor, because this is hard stuff.
You will need access to a computer of some variety. …Well, Duh… If you don't have a computer available, let me know and I will try to work with Masao to get something set up for you using a VPN to a computer in the Keck Lab on campus. You'll still be remote, but you'll have access to SOMETHING to work on. In the best of all possible worlds, we will all have super-duper computing engines to use, but we're obviously not there yet… |
Although attendance is not mandatory, it is in your own best interest to attend every class. Much of the material will be discussed in class, so counting on the book for all information which appears on tests will not provide you with complete information. In addition, there will be coding done during class time, and in-class exercises in small groups which you will miss out on if you are not there.
Obviously, if you skip too many classes, you will likely fail the class, since you will miss important parts of the material; this is a simple and self-fulfilling prophecy.
I want to emphasize that I care about your learning. As part of your learning process in this class, I would like to invite you to evaluate yourself and participate in your own assessment for the class. It is important to me to know how you are doing – for example, are you understanding the concepts, are you able to put them into real-life situations and examples, are you connecting and engaging with the material, are the explanations clear to you.
The class participation rubric appears with the grading stuff in the tables below.
There will be some extra credit given in this course, based on optional parts of the homework sets.
Grades for the course are assigned according to the weighting factors shown in the tables below.
Final letter grades will be assigned based on the following scale:
Percent | Letter | Earned Achievement |
---|---|---|
91 - 100% | A- / A | Professional quality work; outstanding |
81 - 90% | B- / B / B+ | Entry-level quality work; above average, shows extra effort and interest |
71 - 80% | C- / C / C+ | Satisfactory work; expected with reasonable effort |
61 - 70% | D | Substandard work; minimal effort shown |
60 or less | F | Thank you for playing; see you next semester |
Evaluation Item | Weight |
---|---|
Homework [total, all 6] homework01: 05% homework02: 05% homework03: 05% homework04: 05% homework05: 10% homework06: 15% | 45% |
Quiz #1 | 10% |
Quiz #2 | 15% |
Final Exam [cumulative] | 25% |
Class Participation | 05% |
Class Participation Criteria | Value |
---|---|
Absent *without* prior notification/agreement of professor | 0 |
Absent *with* prior consent/agreement of professor | 3 |
Hopefully, demonstrates adequate preparation with respect to
readings and other materials; Offers pertinent analysis,
synthesis, and evaluation; puts together pieces of the discussion to develop new approaches that take the class
further. Asks probing questions. If you're in your chair, the points are there | 5 |
Also of note…
An incomplete will be granted only when the student requesting the incomplete has completed at least 80% of the coursework, and has at least a B average in the course work completed. This is standard LMU policy.
Leave of Absence/Withdrawal Policy:
Please read the revised policy in the University Bulletin.
All work is evaluated for both technical merit and quality of written and/or oral presentation.
Find yourself a good spelling and grammar checker, or a trusted human editor, if you
are having any difficulty with the rules of standard English language usage. Another excellent resource
is the Academic Resource Center, located
on the south side of Daum Hall. The center takes appointments, and also allows drop-in consultation
sessions, and they have a number of good benefits. Call (310) 338-2847 to schedule an appointment.
(For those that don't know, Daum Hall is the building where the LMU Security and Parking office used to
be. ARC is on the second floor.)
Another thing to remember is, your coding style is an important part of your assignment evaluations. I WILL NOT HESITATE to take points off for code that has hard-coded number
FAIR WARNING!!! DANGER WILL ROBINSON!!! FAIR WARNING!!!
FAIR WARNING!!! DANGER WILL ROBINSON!!! FAIR WARNING!!! |
Student feedback on this course provides valuable information for continued improvement. All students are expected to fairly and thoughtfully complete a course evaluation for this course. All course evaluations for the Seaver College of Science and Engineering are administered online through the Blue™ evaluation system. You will receive several e-mail notifications at your Lion e-mail address when the evaluation form is available near the end of the term. You may also access the evaluation form on Brightspace during the evaluation period. A few minutes of class time will be reserved for you to complete a course evaluation near the end of the semester. Please bring a laptop, smart phone, tablet or other mobile device to class on this date so that you can access the online evaluation platform.
General StatementLoyola Marymount University is a community dedicated to academic excellence, student-centered education, and the Jesuit and Marymount traditions. As such, the University expects all members of its community to act with honesty and integrity at all times, especially in their academic work. Academic honesty respects the intellectual and creative work of others, flows from dedication and pride in performing one's own best work, and is essential if true learning is to take place. As an LMU Lion, by the Lion's Code, you are pledged to join the discourse of the academy with honesty of voice and integrity of scholarship. Academic dishonesty will be treated as an extremely serious matter, with severe consequences that can range from receiving no credit for an assignment or test to failing the class, to expulsion.
|
unauthorized useand, therefore, prohibited
Students with special needs who require reasonable modifications, special assistance, or accommodations in this course should promptly direct their request to the Disability Support Services [DSS] Office. Any student who currently has a documented disability [ADHD, Autism Spectrum Disorder, Learning, Physical, or Psychiatric] needing academic accommodations should contact the DSS Office [Daum Hall 2nd floor, 310-338-4216] as early in the semester as possible. All discussions will remain confidential. Please visit http://www.lmu.edu/dss for additional information.
Students should also keep in mind that resources are available through the Library [https://library.lmu.edu] and Information Technology Services [https://its.lmu.edu]. The DSS Office can help students connect with the appropriate person at the Library and ITS.
As an LMU Lion, by the Lion's code, you are pledged to join the discourse of the academy with honesty of voice and integrity of scholarship and to show respect for staff, professors, and other students.
The following LMU documents are available to reference:
|
For more information on this or any other conduct issues, please refer to the Student Codes and Policies section in the Community Standards. The Lion's Code, Student Conduct Code, Honor Code and Process, and information on many other policies are available from that link. You can find any and all other related data from the Office of Student Conduct & Community Responsibility web page. Also check the main Student Affairs Department Website.
Electronic Devices: Pretty easy — please turn off your cell phone ringer during class time. That's it for me! However…
The official LMU language for this is:
Please turn off and put out of sight all electronic devices (other than those and when allowed) during class-time. The interruptions and/or distractions they cause disrupt class and interfere with the learning process. Even if you are not on video, it's distracting to you.
Netiquette. Your instructor and fellow students need a safe, online learning environment. All opinions and experiences shared, no matter how controversial they may be perceived to be, must be respected in the spirit of academic discourse. You are encouraged to critique an idea but should not attack an individual. Working as a community of learners, we can build a respectful space for discourse. Below are some tips for good netiquette:
Sendbutton.
Students and faculty have a reasonable expectation for privacy in all learning spaces. Bimodal and remote learning can involve the use of synchronous video conferencing, asynchronous recorded lectures, live and online discussions, as well as online forums. In these venues, privacy is a priority for a safe learning environment. See Lion's code.
As a member of our online community, please follow these privacy guidelines:
Because of the nature of the class delivery method
during remote zoom times
we will
also take a look at a document which will serve as a guide for everyone in the class. This
Netiquette Document
is published here
and on the Brightspace
site for this class. We will take a look at it during the first week of class and will work to make
it agreeable to everyone involved.
Public Safety can be reached 24/7/365 at 310.338.2893 [or x222 from a campus phone]. In a life-threatening emergency, call 911 first and then call Public Safety if possible. To report an incident, call Public Safety, submit an e-report on the Public Safety website or via the Rave Guardian mobile app, or visit Public Safety in Foley Annex. Review evacuation information and other safety tips posted in each learning space. Make sure you're registered to receive emergency alerts – confirm your contact information at lmu.edu/alert, and download Rave Guardian in the Apple or Google Play store. For more information and emergency preparedness tips, visit https://publicsafety.lmu.edu.
To report an emergency or suspicious activity, contact the LMU Department of Public Safety by phone (x222 or 310-338-2893) or at the nearest emergency call box. In the event of an evacuation, follow the evacuation signage throughout the building to the designated safe refuge area where you will receive further instruction from Public Safety or a Building Captain.For purposes of evacuating the building, our safe area
is the sunken gardens. There will be people
to guide you.
For more safety information and preparedness tips, visit http://www.lmu.edu/emergency.
Office hours are listed at the top of this syllabus page. I will make every effort to be available during
those hours, and if I cannot for some emergency reason, I'll make sure you all know about it in advance if
possible. Office hours, [due to the pandemic] will be held on zoom in my personal meeting room. A link to
the office hours z'room
is provided on the
BrightSpace course page.
I am also always available by e-mail at: my LMU mail address
There is a class slack channel on the LMUCS workspace, named cmsi-284_spring2021
. I post to that
channel with information at times, and it's a good place to ask/answer questions. It won't hurt you to
join! You can also DM me in that workspace.
Beginning in Fall 2020, the LMU CS department is trying a new communication method using Discord for our
virtual office hours, and as a virtual Keck Lab
environment. Feel free to join up there as well,
and post there with your colleagues in the department!
YOU MUST CHECK YOUR LION EMAIL ADDRESS OF RECORD. I will
start the semester's communications by sending all email blasts to everyone's lion.lmu.edu
email
address, which is known as your address of record. If you specifically
provide me with a preferred alternative email to use I will be happy to oblige. I create a distribution
list to which I send all general communications in addition to the slack channel, so it is important for
me to have an email address which you will check on a regular basis.
If necessary, this syllabus and its contents are subject to revision. Students are responsible for any changes or modifications announced or distributed in class, emailed to students' LMU Lion accounts or posted on LMU's course management system, Brightspace. If you are absent from an in-person or online class meeting, it is your responsibility to check Brightspace [and/or the course website] and to check with the professor to see if you missed any important class announcements. Students should not rely on word-of-mouth from classmates.