Fall 2024 — 4.0 Units
Class time: MW 13:45 – 15:25 [sec 2]
Class Location: Seaver 205
Class time: TTh 13:45 – 15:25 [sec 1]
Class Location: Pereira 207
Lab Mgr.: Masao Kitimura
Doolan 104, 310.338.8100
Dept. Admin.: Tanya Kapoor
Doolan 101, 310.338.5149
Prerequisite[s]: CMSI 281/2120 Data Structures
or
CMSI 3630 – Data Structures and Algorithms for Engineering
or
consent of Instructor/Dept. Chair
2024-08-26 through 2024-12-13
Professor: B.J. Johnson, PhD
robert.johnson@lmu.edu
Office Hrs: Mon — Thur, 10:00 - 12:00
also Mon & Wed, 15:30- 17:30
Office Location: Doolan 220
Or book an appointment at:
LMU Outlook Booking Site

[Dedicated to the memory of Professor Phil Dorin, teacher, mentor and friend.]

Course Description from the Latest University Bulletin

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.

Prerequisites

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, the Intel x86 assembly language, and the ARM-7 assembly language for its concrete examples, homework, quizzes, 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 professors or from other schools] and things like
Code Academy,
Kahn Academy,
Tio [Try It Online],
Codingbat.com,
and good old Stack Overflow
to help you when you are stuck.

We will also be doing a good deal of assembly language programming in the course. There is a large number of great references for coding in assembly language. You must do some Internet searching on your own for them, but there are several that are listed below in the section about text books for the course.

Note that there will be three 'flavors' of assembly used, namely Intel X86 32-bit [windows], Intel X86 64-bit [mac with intel processor], and ARM-64 [mac with M1 or M2 processor].

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 your 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 computers as well!] learn by making mistakes and iterations, and this is the place to do so without fear.

Course Goals, Objectives, and Learning Outcomes

…My Hope and Intent For You…


When you finish the course, you will be able to:

  • Understand how the processor handles numbers, including bit-level encoding/decoding, bit manipulation, and bit storage schemes
  • Understand how individual machine instructions are used to solve problems
  • Describe and be comfortable with different machine instructions
  • Use the C programming language at a fundamental level to write programs
  • Write programs in X64/ARM assembler language
  • Understand how to call x64/ARM assembly programs from C and the other way round
  • Develop a detailed understanding of computer systems from a programmer's point of view, that is, from machine and assembly languages up to the operating system
  • Learn how to use compiler and assembler toolsand low-level debugging tools
GOOOOOOOOOOAAAAAAALLLLLLL

What You'll Need for Success

good to go

Two Tips for Success

Lots of people have lots of advice, but here are two particularly good items:

  • Be aware of how students trick themselves into thinking they are learning. Cramming, rereading, and highlighting do not move information from your working memory into your long-term memory. Short-term working memory is not learned. Recall is the most effective way to load your long-term memory. Please work through Nicky Case's interactive essay How to remember everything forever-ish. [Also, this article backs up the importance of recall.]
  • Use checklists, as these are incredibly effective. Read Atul Gawande's The Checklist and think about how you apply these to your studies.

In a nutshell, here's what you should promise *YOURSELF* to do to be successful in this course:

  • Attend all classes — come prepared, having done the reading and having watched any videos
  • Do all the assigned homework, including visiting web sites, reading articles
  • Participate in class discussions, exercises, and activities
  • Ask LOTS of questions, both in class and out of class
  • Do well on the quizzes, which if you do the previous things will be no problem!

In return, *I* promise you that I will:

  • Provide a syllabus with stated learning outcomes [that's this page you're seeing now]
  • Have those learning outcomes addressed
  • Be available for live chats during office hours
  • Have questions answered via email [one-day turnaround whenever possible]
  • Be available for video and text chats with the instructor
  • Provide feedback on your work which is as comprehensive as I can make it
  • Give you a challenging experience [you should be working a little outside your comfort zone]
  • Record all lecture sessions and store them online for you to access
  • Do my best to give you an experience beyond what you would get from books, websites, online tutorials, and discussion forums
  • Provide a safe space in which you can feel like you belong [if you are experiencing impostor syndrome or stereotype threat, please see me about it]
  • Do my utmost to help you leave the course better skilled than when you came in
freaz!

Instructional Methods

freaz!

Lectures and Course Content

Course content will be delivered using a combination of lecture, discussion, problem-based learning, group work, projects, presentations, critiques, community-based learning, portfolios, etc.

All submitted work will be maintained using a GitHub repository.

Use of GitHub and all other tools required for the course will be explained during class sessions, with the exception of the nuances of your 'code-editor-of-choice'. However, it will be up to the student to handle any and all installation on their respective computer. Of course, if you need help, it will be available, and I'll do my best to help you get things working! If I don't know the answer I'll find someone who does.

In-class Exercises

The in-class exercises follow a form of I do, we do, you do — meaning I will show some code in class [possibly writing it from scratch], then will work with you to change it some way, coding together, then I'll turn you loose to do more on your own in your teams. Most of the semester will be structured by introducing topics in the first session of the week, followed by in-class experience with coding in the second session of the week.

Expected Workload

In accordance with the LMU Credit Hour Policy, this 4-unit course will require an average of 12 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 publications, and reading/study/discussion of provided materials.

Textbooks and Resources

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 one place for convenience, you can find all that information on the Internet if you just apply yourself a bit. So instead of having to pay top dollar for an expensive textbook that you may only use for this course, 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, which you will need to read and work with during the course:

I will also be presenting information from some textbooks that I have on my office bookshelf, as well as some material from on-line texts which are very good resources. 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.

There is a great deal of trial and error with this course, and you will be doing quite a bit of Internet searching for things. It can be a great deal of fun, since this is a bit like the scientific method of investigation!

Be alerted that the final two homework sets and several of the final in-class exercises will involve assembly language programming. For those homework assignments, it is advisable to NOT WAIT UNTIL THE NIGHT BEFORE THE ASSIGNMENT IS DUE to start working on it.

General Course Topics Outline

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.

Reading Assignments

Here is the reading list:

  1. Week 01: Nothing for week 01 [obviously!]
  2. Week 02: Read the week 2 web page, Watch this video, Be ready to answer questions in class
  3. Week 03: Read the week 3 web page, Read the Command Line page, then
    Read In the Beginning Was The Command Line parts 1 – 5 [17 pages]

    and read about its author Neal Stephenson, the science fiction author
  4. Week 04: Read the week 4 web page, Watch this video, See if you can catch a very small mistake…
  5. Week 05: Read the week 5 web page, Watch this video on binary addition
  6. Week 06: Read the week 6 web page, Watch this video on Registers/RAM
  7. Week 07: Read the week 7 web page
  8. Week 08: Nothing for Week 08
  9. Week 09: Nothing for Week 09
  10. Week 10: Read How to Ask Questions the Smart Way by Eric Raymond
  11. Week 11: Read How to Become a Hacker also by Eric Raymond
  12. Week 12: [To Be Announced]
  13. Week 13: [To Be Announced]
  14. Week 14: [To Be Announced]
  15. Week 15: Nothing for Week 15
  16. Week 16: Nothing for Week 16

Homework Assignments

All written homework assignments are due at the beginning of the class on the date they are due. The normal due date is the second session of the week that the assignment is due which means Wednesday for Monday-Wednesday sections, and Thursday for Tuesday-Thursday sections. Deviation from this process requires prior consent of the instructor.

Every effort is made to ensure assignments, test dates, quiz dates, required deliverables, and all 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.

The following are the 'rules of the road' for homework assignments:

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 days shown in the list below, and on the assignments page. 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 three. It is REQUIRED that you 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 group's work on the submission of all your assignments. Each link below takes you to the web page for that assignment.

Homework Due Dates By Week…

First date is for Wednesdays/second date is for Thursdays.

FINAL ASSIGNMENT IS DUE ON MONDAY/TUESDAY DUE TO THANKSGIVING HOLIDAY.

  1. Homework #1 — Due date 2024-08-28/2024-08-29 [week 01]
  2. Homework #2 — Due date 2024-09-11/2024-09-12 [week 03]
  3. Homework #3 — Due date 2024-09-18/2024-09-19 [week 04]
  4. Homework #4 — Due date 2024-10-09/2024-10-10 [week 07]
  5. Homework #5 — Due date 2024-10-30/2024-10-31 [week 10]
  6. Homework #6 — Due date 2024-11-25/2024-11-26 [week 14]

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 repository in GitHub, but will not be graded for correctness. Instead, they are used as an indication of your progress and understanding. They will be graded pass/fail based on if they have been submitted in your GitHub repo. These are practice drills, which are good for understanding the week's topic, and for maintaining and improving your skills. Also, having access to your repo helps ME to help YOU ~ I can take a periodic look to see how you are doing, and you can also commit code that is in process with which you need my help, or with which you're not finished.

Exams, Quizzes, and Projects

There will be impromptu quizzes during the semester, usually near the end of the first class day of the week. These are designed to allow you immediate practice with the material for that day/week. These are not for score, just for practice. These quizzes will be done using a tool called Kahoot, which will be explained to you during class this week and next week.

There will be two formal quizzes, but no midterm exam. Quizzes are in-person, hand-written tests for which you must be present.

First date below is for Wednesdays/second date is for Thursdays.

  1. Quiz #1 — Date 2024-09-25/2024-09-26 [week 05]
  2. Quiz #2 — Date 2024-11-06/2024-11-07 [week 11]

There will be a final exam. The final exam will take place according to the registrar's final exam schedule at this link.

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.

Use of Technology

You will need access to a computer of some variety.

…Well, Duh…

If you don't have a computer available, work with Masao Kitamura the lab manager to get something set up. Of course, you can simply GO to the Keck lab and use one of those amazing and wonderful computers there.

zoom on, bro

If you are using a Windows computer, you should download and install both a "C" compiler and a 'nasm' assembler from the web links given on the Week one web page.

If you are on a Mac with an M1, M2, or M2 processor, you'll need to make sure that the as assembler and the ld linker are installed.

You will also need to install and use some sort of text editor into which you can type your code in ASCII/Unicode text-only form. You cannot use a word processor such as Microsoft Word or Mac's TextEdit [unless you configure it properly] or other word-processing software which puts in special characters that the C compiler won't recognize. Several possible free tools are available, such as the following:

You can certainly use Notepad [on Windows] or TextEdit [on Mac, if properly configured for plain text] to edit your source code, but it can be difficult to collaborate with these tools due to the lack of line numbers at the left margin. Also, there is no syntax coloring in those editors. On Mac, in the terminal window you can use the vi editor, but it takes some getting used to and is rather an acquired taste.

SPECIAL NOTE:

Note that I don't use VSCode since I don't like or trust all the whistles and bells. I use a very basic editor only, so I won't be able to help you with problems with your VSCode configurations. For help with that, you'll need to talk to one of the stellar TA's in the Keck lab in Doolan Hall, room 112.

That said, one of the things I notice most often is problems with the built-in command pane in VSCode. Many people have problems with that configuration not working, not working correctly, or causing other problems. My solution to that is always BRING UP A 'REAL' COMMAND LINE TERMINAL WINDOW and perform the tasks in that. If it works there, whatever problem you're having with VSCode is a VSCode configuration problem.

Besides, getting yourself familiar with the way the typed commands work on your computer is a GOOD thing to know — don't be a GUI-bound programmer! Yeah, I know, there are lots of cool things that tools can do for you, but many of them only work after you've configured them properly, while the command line is ALWAYS AVAILABLE!

OK, end of rant…

Attendance and Participation

Students are expected to attend classes as part of the expected workload, as explained above. You should arrive on time to all course meetings, prepared to engage in the course content. Arriving late or leaving early disrupts the learning experience. You are expected to notify the instructor in advance whenever possible if you will miss a class or if you anticipate arriving late or leaving early. You are expected to participate in all class activities — participation in this course is measured by how much you engage in the content and the activities. Activities are provided to assist your learning and help your progress toward the final assignments. As such, no assignments are optional unless they are labeled as optional.

Obviously, if you skip too many classes, you will likely not do well in the course, 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. 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. That is part of why there are in-class exercises every week, to give you experience with the concepts for that week.

Another thing — part of your class participation is to do the weekly in-class exercises and upload them to your GitHub repository. You will need to create the repository in the form that is given on the week one page, so that I can find them. These submissions will *NOT* be a part of your course grade other than as part of your participation.

The class participation rubric appears with the grading stuff in the tables further down the page.

Extra Credit

There will be some extra credit given in this course, based on optional parts of the homework sets.

Grading

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:

PercentLetterEarned Achievement
90 - 100% A- / A Professional quality work; outstanding
80 - 90% B- / B / B+ Entry-level quality work; above average, shows extra effort and interest
70 - 80% C- / C / C+ Satisfactory work; expected with reasonable effort
60 - 70% D Substandard work; minimal effort shown
59 or lessF Thank you for playing; see you next semester



Evaluation ItemWeight
Homework [total, all 6]
homework01: 05%
homework02: 05%
homework03: 05%
homework04: 05%
homework05: 10%
homework06: 15%
45%
Quiz #15%
Quiz #1 Re-do10%
Quiz #210%
Final Exam [cumulative]25%
Class Participation 05%



Class Participation Criteria [Each Class Meeting]Value
Absent *without* prior notification/agreement of professor 0 pts
Absent *with* prior notification/agreement of professor OR 5 pts
Present in class, and hopefully:
Demonstrates excellent preparation from readings and other material.
Offers analysis, synthesis, and evaluation; puts together pieces of the
discussion to develop new approaches that take the class further.
Also, has in-class code checked in to proper classwork folder for the week.


Also of note…

An incomplete will be granted only when the requesting student has done at least 80% of the coursework, and has at least a B average in the course work completed. This policy is standard LMU policy.

Leave of Absence/Withdrawal Policy:

Please read the policy in the University Bulletin and at the top of the registrar's academic calendar page.

NOTE: 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 [ARC], 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.

Another thing to remember is, your coding style is just as important a part of your assignment evaluations as correctly running code. I WILL NOT HESITATE to take points off for code that has hard-coded numbers, lack of proper comments, poorly aligned indenting, etc. EVEN IF THE CODE RUNS CORRECTLY!
Further, let me re-state that code that does not compile will be not be evaluated and you will have to do it over to get any credit for the assignment.

Also remember that I compile and run your code from the command line so just because it works in your editor or IDE is not a guarantee that it will work for me. Spend the extra few minutes to get your code to work the way it will be evaluated, since I will not be entertaining well let me prove it works office hour sessions. Forewarned is forearmed, as the saying goes.

FAIR WARNING!!! DANGER WILL ROBINSON!!! FAIR WARNING!!!

In this class, documentation which is not of professional quality is no longer acceptable. Spelling, grammar, and internal document consistency all count and will cost you big-time if not correct! I will not hesitate to knock off a full letter grade on an otherwise perfectly correct assignment if there are egregious and/or numerous spelling/grammar errors. In addition, coding style will play a large part in determining the grade on the code for the homework. It is the job of each student to properly structure, comment, and indent, to select the proper names for variables, and to not hard-code values. NO MAGIC NUMBERS!

FAIR WARNING!!! DANGER WILL ROBINSON!!! FAIR WARNING!!!

DANGER. WILL. ROBINSON.

Course Evaluations

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 in BrightSpace. 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.

Academic Honesty and Integrity

freaz!

General Statement

Loyola 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.

  • It is never permissible to turn in any work that has been copied from another student or copied from a source [including the Internet] without properly acknowledging/citing the source.
  • It is never permissible to work on an assignment, exam, quiz or any project with another person unless your instructor has indicated so in the written instructions/guidelines.
  • It is your responsibility to make sure that your work meets the standard of academic honesty set forth in the Academic Honesty Policy found at: academics.lmu.edu/honesty/.

For an additional resource, see and the LMU Honor Code and Process found at: this link.

Unauthorized Access to or Alteration of Privileged and Proprietary Information:

Generative AI and Your Learning

Academic honesty includes the appropriate use of technology as an aid for learning and productivity. This includes but is not limited to LLM-based generative artificial intelligence tools such as ChatGPT, Gemini, and Copilot.

Modern GenAI provides fast solutions to a variety of computing problems but must be used responsibly to get the most out of your education. GenAI will not always be helpful, especially when asked to write code for scenarios it cannot recognize. It cannot independently validate the code that it produces, and will frequently produce bugs and security vulnerabilities, making things worse for you. It will not be available for job interviews. As a student and future software professional, you have a moral and ethical responsibility to deeply understand every line of the software you author and should therefore employ GenAI in your coursework sparingly, especially when its use might rob you of the stretch-zone learning that comes from crafting programs on your own.

That said, there are several acceptable use cases of GenAI in programmatic assignments, including:

Remember the four A's:

DO use technologies such as GenAI to Augment ✅, Amplify ✅ and Accelerate ✅ your learning;

NEVER use technology to Avoid ❌ learning.

Be Responsible!:

Generally, using GenAI and related tools without knowing what you are doing often leads to poor homework submissions that rarely achieve a grade higher than an F on their own merits, simply due to hallucinations and an inability to carry out tasks as they were assigned [even with good prompts].

Also, professors and TAs are GenAI users themselves and will be able to easily detect inappropriate student use of these tools. The teaching staff will try to steer you back on track should we feel like you are giving up on your learning.

If you would like to use GenAI appropriately as a learner, see this short introductory article. And if you are a TA, see this article by Jeff Olson on how to help teach students to use GenAI.

Special Accommodations

The DSS Office offers resources to enable students with physical, learning, ADD/ADHD, psychiatric disabilities and those on the autism spectrum to achieve maximum independence while pursuing their educational goals. Staff specialists interact with all areas of the University to eliminate physical and attitudinal barriers. Students must provide documentation for their disability from an appropriate licensed professional. Services are offered to students who have established disabilities under state and federal laws. We also advise students, faculty and staff regarding disability issues. Students who need reasonable modifications, special assistance, academic accommodations or housing accommodations should direct their request to the DSS Office as soon as possible. All discussions will remain confidential.

The DSS Office is located on the 2nd floor of Daum Hall and may be reached by email at dsslmu@lmu.edu or phone at (310) 338-4216. 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.

Respect For Self And Others

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:

  • LMU's Community Standards, which defines prohibited conduct (section III):
    available for download at: [Community Standards document]
  • The Lion's Code [see LMU's Community Standards at the link immediately above.]
  • The LMU Student Affairs brochure Disruptive and Threatening Student Behavior (Fall 2010), which states Disruptive behavior which is persistent or significantly interferes with classroom activities may be subject to disciplinary action. A student may be referred to the Office of Student Judicial Affairs if their behavior constitutes a violation of the conduct code.
DANGER. WILL. ROBINSON.

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.

Expectations for Classroom Behavior

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.

Emergency Preparedness

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 in PROWL, and also 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 / Communication / Contact Information

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 will be held in person in my office, Doolan 220.

I am also always available by e-mail at: my LMU mail address

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, so it is important for me to have an email address which you will check on a regular basis.

I am on slack, but I don't use it or check it very often so you are better off e-mailing me if you need a quick turnaround. If you don't mind waiting a day or so, then slack can work.

Tentative Nature of the Syllabus

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.