CMSI 3300 - Artificial Intelligence
Professor Andrew Forney • Andrew.Forney[at]lmu.edu
CMSI 3300 is a 4-Unit course providing the introductory theory behind, and practice implementing, a wide swath of solutions to problems in the domain of artificial intelligence. Students will not only be able to match problems to an appropriate approach, but will understand the history, mathematics, and development of past approaches that have led the research and industry to its current state.
Learning Outcomes
By the course's end, students will:
be introduced to the many active areas of research in artificial intelligence, including: logical inference, probabilistic & causal reasoning, fundamentals of data science, machine learning, deep learning, and generative models.
understand existing approaches to a variety of classic and realistic AI problems, including those within: planning, reasoning under uncertainty, utility theory, value of information, reasoning over time, classification, and imitation learning.
gain practice using popular data-structures in AI, including: knowledgebases, search trees, planning graphs, Bayesian Networks, decision networks, Naive Bayes Classifiers, regression and logistic regression, ensemble methods, and deep neural networks.
become familiar with popular AI frameworks and libraries in Python (e.g., Numpy, Scikit, and PyTorch), and design artificial agents whose behaviors can be tangibly observed.
grasp the ongoing avenues for research in the field, investigating some efforts that suit student-specific interests.
Prerequisites
Note: before taking this course, it is assumed that you have a matured grasp on the Python programming language, as well as the topics from Data Structures (CMSI 2120) and Algorithms (CMSI 2130). We will spend little time in-class reviewing each!
Data Structures Refresher: although in Java for its code examples, you can consult my course archives for the last offering of CMSI 2120.
Algorithms Refresher: my lecture archives have code-agnostic lessons on all of the needed concepts; see last offering of CMSI 2130.
Python Refresher: consult your CMSI 1010 instructor's materials or any number of online tutorials like Berkeley's listed below. For practice, see our LMU CMSI resource page, also linked below.
Git Refresher: you should be comfortable with the fundamentals of Git and managing GitHub repositories we'll use these to distribute and collect all assignments in the course. Need a refresher? See the Git links below.
Texts
We will be "using" one optional textbooks for the course, which will primarily cover or dive deeper into the theoretical material than we have the time to during lecture:
Although these specific texts are not mandatory for the course, they contain all concepts that we will be covering during the lectures in great detail.
Additionally, I will provide abbreviated course notes for our lectures on my course page (see Notes tab)
Resources will be provided throughout the course detailing any additional topics that are not sufficiently contained in the above text. These resources will be free and publicly available.
Lecture Attendance
Not mandatory to attend: lecture attendance is strongly advised since you'll otherwise miss out on all of our inside-jokes. Less importantly, you'll be missing out on lecture content that may not be summarized in the course notes, like questions asked by peers, classwork exercises, and hints for homework and exams.
No need to inform me of missed lecture: I'll just assume you'll be making things up by reading online / asking friends.
Lectures are participatory: come prepared to ask and answer questions to make the most out of your education!
Laptops discouraged, notetaking encouraged: take notes by hand and summarize the important points -- don't copy verbatim.
Technology permitting, I will attempt to record the lectures, but you should not rely on lecture recordings for keeping up with content!
Workload Expectations
The university's workload expectations are such that every unit in which you are enrolled translates to 3 hours of weekly work, including time in-class, spent studying, and working on assignments.
As this is a 4-Unit class, it is expected that you will be allocating an average of 9 hours outside of lectures per week working on course assignments, reading, and studying. You should manage your time appropriately.
Some weeks will have less material to keep you busy, and others more, but be aware that this is a work-intensive course that may require you to spend a lot of time studying and programming!
Finding Help for the Course
LMU CMSI has a ton of resources and people who are thrilled to help you succeed! See the following opportunities and avenues for getting help in this class' material.
Slack Messaging
Alongside email exchanges, you may reach me via the Slack messaging service (Slack is a chat client that can be
downloaded here) in the LMUCS channel (lmucs.slack.com) and username forns.
Feel free to reach out any time -- in the worst case, I have to step away from my desk and will answer your message when I return!
Please try to send your note / question in a single message rather than splitting it into like 9 different messages that make my computer sound like it's making popcorn.
Student / Office Hours
Student / Office Hours are times during which I'm available for nothing but you, the students! I can help you: review course material, debug your programs, provide guidance on further exploration, and more!
W 10:00am - 1:00pm, via Zoom (see link in course welcome email)
R 10:15am - 11:45am, DOO 201A or 217 (they're right next to each other)
Questions by Slack / Email ANY time!
Steps for Remote Office Hours Attendance:
I do not publicly post my Zoom office-hours link, but just send me a note on Slack *in advance of office hours* to see where I'm at (the "Starter Pack" email I send at the beginning of the semester also has this information).
My office hours tend to be well attended, so if you join into a waiting room, it means I'm helping other students and will admit you as soon as I'm free.
Once you've been admitted, you / your group will be placed into a Zoom Breakout Room with priority given to the order in which you joined. Wait in here and I'll be with you as soon as I can!
Teaching Assistants (TAs)
Teaching Assistants (TAs) are student employees who are on-staff during certain hours to help you review material, debug code, and answer questions about the class!
Respecting our TAs! Remember that TAs are students like you with their own obligations and schedules; here are some tips for how to make respectful use of their generous time and skill.
| Do's | Don'ts |
|---|---|
Ask a TA to explain a concept from class or the homework, draw things out, walk you through the steps, or hint at your bugs. |
Ask a TA to write your code or do your debugging for you -- they've been explicitly told not to do so. |
Message TAs on Slack or email with questions *during their assigned tutoring hours.* |
Message TAs *outside of* their assigned tutoring hours -- send me a Slack message instead. |
Come to the Keck Lab to work on assignments during a TA's office hours; try to do so well in advance of deadlines! |
Demand TA attention and time while a queue of students are attending, or when a deadline is near. |
Bottom Line: remember that TAs are teaching assistants, but if you ever have questions or concerns that you don't wish to discuss with TAs, you should always feel free to contact the professor!
KnowledgeGrapht
I, and a talented alumn, Thomas Rife, are here to make your spaced repetition of the material a little easier through an app of his own crafting: Knowledge Grapht (basically: Duolingo for customizable class topics)!
You are invited to take part in a research study being conducted in this class. The goal of the study is to explore how new educational technology can help students strengthen their understanding of course material. What the study involves:
For the rest of the semester, you will receive additional practice questions through a mobile app called Knowledge Grapht
These questions are both created by Dr. Forney as well as generated by artificial intelligence (AI). At present, all questions are vetted by Dr. Forney, so you will not see any AI-generated questions that have not been proof-read.
Dr. Forney has constructed a connected graph of topics that are covered in the class, called a Knowledge Graph, which gives you opportunities to review concepts and see how they connect to one another.
The course knowledge graph also displays your mastery based on your accuracy on the quiz questions.
Important Points to Know:
Participation in this study is completely voluntary
Your decision to participate or not will not affect your grade in this class
All information collected will be kept confidential and used only for research purposes
The study poses no greater risk than normal classroom activities
You may use Knowledge Grapht as part of the course regardless of your decision to participate in the study
By joining, you may gain a better understanding of the material through additional practice and feedback. You will also be contributing to research that may improve learning tools for future students.
Please see the attached informed consent for details on the study (your consent will be collected when signing up for the app).
Install the app on your mobile device via the following links and using course code: M7XHLL
Please use your real name and Lion email when registering via:
KnowledgeGrapht Informed Consent
Downloads:
iOS (Click this link on your phone)
Android: Click this Google Drive folder link on your phone to download the APK
To sweeten the deal, at the semester's end, each participant in the study will be entered into a drawing for 2 x $50 Amazon Gift Cards, plus one raffle ticket for each lesson you complete!
Tentative Schedule of Topics
The following constitutes the tentative schedule for topics to be covered in the course. This is largely an approximation for what we will cover each lecture, and is subject to change. For each topic, the relevant chapter of the textbook is also given, however, you are only required to understand the sections of each chapter that correlate with the material in the course notes -- the rest are for your curiosity and edification!
* CN = Course Notes, indicating topics that will be covered and listed on our course website but are not found in the textbook, even though *all* topics will have an accompanying page in our course notes.
Note: Exam Topics may differ from this schedule; see the Materials tab of our course site for each exam's stated topics.
Note: Assignment deadlines are not listed on this page as they are sensitive to the pace of the lectures -- see the associated Homework and Classwork tabs on the main course page for these.
| Item | Date | Topic | Text Pages |
|---|---|---|---|
| Lecture 1-1 | |||
| Lecture 1-2 | |||
| Lecture 2-1 | |||
| Lecture 2-2 | |||
| Lecture 3-1 | |||
| Lecture 3-2 | |||
| Lecture 4-1 | |||
| Lecture 4-2 | |||
| Lecture 5-1 | |||
| Lecture 5-2 | |||
| Lecture 6-1 | |||
| Lecture 6-2 | |||
| Lecture 7-1 | |||
| Lecture 7-2 | |||
| Lecture 8-1 | |||
| Lecture 8-2 | |||
| Lecture 9-1 | |||
| Lecture 9-2 | |||
| Lecture 10-1 | |||
| Lecture 10-2 | |||
| Lecture 11-1 | |||
| Lecture 11-2 | |||
| Lecture 12-1 | |||
| Lecture 12-2 | |||
| Lecture 13-1 | |||
| Lecture 13-2 | |||
| Lecture 14-1 | |||
| Lecture 14-2 | |||
| Lecture 15-1 | |||
| Lecture 15-2 | |||
| Final | 12 / 11 11:00 am |
Assignments & Grading
Grade Decomposition
Grades will be assigned based on the following weighted coursework:
[15%] Classwork: Small classwork assignments will be given roughly every 2 weeks, with in-class time allocated for their completion. Though you will have the opportunity to finish these in groups and with my assistance during class, you are not required to attend lectures, and so may submit these electronically by their listed due dates. Your lowest classwork grade will be dropped (even if you skipped it entirely).
[40%] Homework: Larger assignments with heavy coding required. Programming style and comments are graded as well. All homework assignments are weighted equally. Expect roughly 5 assignments in total, apportioned once every ~2.5 weeks.
Homework grades will be a composite of correctness, style, and PostCommit depth of understanding (see PostCommit section below).
[45%] Exams: There will be 2 exams (a midterm and final). Your best exam score will constitute 2/3 of the exam grade, with your worse score constituting the remaining 1/3. For example, if your 2 exam scores were 60 and 90, then your weighted exam score for the course will be 80.0 (= 60*(1/3) + 90*(2/3))
Because of the density of course content, classwork and homework exercises (but NOT exams) can be completed in groups of up to 3 students.
Final Grades
Final letter grades are given based on the university scale of grade percentages:
A: 93 - 100
A-: 90 - 92
B+: 86 - 89
B: 83 - 85
B-: 80 - 82
C+: 76 - 79
C: 73 - 75
C-: 70 - 72
D: 65 - 69
F: 64 and below
Fractional grade percentages at 0.5 or over will be rounded up, so an 89.5% will be considered a 90% (A-), but an 89.4% will be considered an 89% (B+) on the above scale.
That said, these are only the guaranteed grade assignments: if your "final" grade is an 82%, you are guaranteed a B- or better, but you might still get an A if 82% is the top score.
Extra Credit
Extra credit opportunities will be sporadically available during lectures / exams; if you are present and can hand in an attempt at the extra credit opportunities, you will receive bonus points!
These bonuses are applied post-difficulty-adjustments, so no student will be punished for not attending lectures relative to their peers.
Finally, each exam will have an opportunity to illustrate a pun related to the topics of the class for +3 bonus point -- come to each exam with ideas about what to draw! (the best will be showcased on my office door)
Submission Standards
Group Size Limit: You are free to work in groups for the course's assignments. The maximum group size for this semester is 3 students.
Moreover, it is expected that ALL groupmembers contribute to any project and although you are free to divy-up responsibilities, ALL members are responsible for UNDERSTANDING what another groupmember has written.
Assignment posting: all assignments (classwork, homework, or otherwise) will be announced in class and posted on this site with due dates. You are responsible for attending the lectures / checking this site / your email for any updates to assignments and their associated deadlines.
Late Policy: assignments are due at exactly the time indicated by the method specified. Assignments that are late by anywhere from 0 - 24 hours will only receive 80% of the points that they would have otherwise earned. Assignments that are late by 24+ hours receive a 0. There are no exceptions to this rule.
Time management is one of the most important meta-skills to learn in this class -- avoid the risk and try to finish at *least* one day in advance of each deadline.
Good habits: read the specs the *day* they come out to let the topics simmer, put blocks in your calendar that you plan on working on the assignments.
Submission Errors: "I forgot to push to GitHub" is not a valid excuse for late assignments; always double check your remote repository to make sure that your submission is present before the deadline. Moreover, assignments that contain syntax errors or deviate from given skeletons will receive a 0.
Style: assignments which are sloppily submitted without proper formatting, style, and comments are subject to penalties. We will discuss what constitutes such offenses in the style guide, though you should be familiar with clean coding standards from your introductory courses.
Academic Honesty
Students are encouraged to talk and think about problems in groups, but each submission should be their own, containing no code that has been copy-pasted from another source. We take plagiarism very seriously, and each submission will be run through a similarity-checking mechanism to ensure fairness. Code or homework which we believe to be shared innapropriately between students or copied from the internet is subject to severe disciplinary action (not that you would, just sayin'). The following are examples of unacceptable behavior in this course:
Copying non-trivial amounts of code from the ANY other source into an assignment (excluding small things from StackOverflow like how to use Python list comprehension to simplify some code). This includes code found on the internet or through the use of a generative AI model like ChatGPT.
Copying code from another student's submission, sharing detailed pseudocode, or having them verbally explain their submission line-by-line and then copying that.
Copying another group's solutions on a classwork exercise (sharing between group members is encouraged... that's what it means to... you know... group up).
If you plan to copy anything from the internet, ask first!
The following slides provide more CMSI-specific standards for academic honesty; it is expected that by reading this syllabus you are aware of these standards.
CMSI Academic Honesty Standards
The use of Generative AI (Gen-AI) services like ChatGPT and Cursor can accelerate, augment, and amplify your learning... so long as they are never used to avoid it!
|
|
This class allows for GenAI under certain, but not all, circumstances. If you choose to use GenAI in ways not sanctioned below, you are liable for
academic dishonesty. The following contains non-exhaustive do's and don'ts for GenAI use in this class:
|
Rule of thumb: if anyone but you is responsible for your submitted work, you are liable for academic dishonesty! Remember that it is YOU taking this course to learn the tools of your chosen trade, your degree will be useless otherwise!
PostCommit
PostCommit Quizzes: PostCommit is an app developed here in LMU CMSI and aims to harness the power of AI to help you prepare for technical interviews and conference presentation by answering interview-style technical questions about your own assignment submissions! Here's how these work:
Enroll in PostCommit by visiting the following link and completing the LMU SSO login. Thereafter, you will use the same link for taking your PostCommit quizzes so bookmark it now!.
If you have already enrolled in PostCommit from another class, you're all set -- just log in to the site as usual!
Complete each assignment by the deadline given.
Important: If working on Group assignments, you MUST join the group on PostCommit BEFORE the deadline!
On most programming assignments that you submit during the year, we will create a customized PostCommit Quiz = Personalized Comprehension Quiz = PCQ to probe your depth of understanding for the code that you commit. These will be quiz questions that you answer in plain-English (though with technical vocab) similar to how you might explain code during a technical interview.
You must be (1) present in class when the quiz is offered (sometime following the assignment deadline, TBA in class), (2) bring your own laptop or lease one from the department / ITS, and (3) take the quiz on your device.
You may NOT take each quiz on iPads or mobile devices.
Once the class has all taken the quiz, individualized feedback will be given through the app based on the quality and depth of your responses as well as advice for what might be expected in technical interviews. You can review the feedback through the app at any time. Each of your responses is graded on a 0-2 point scale:
0 = Missing, your response was incomplete, inaccurate, or otherwise greatly missed the mark of what the question asked of you.1 = Gist, your response had many correct pieces or was in the direction of the correct answer, but had small inaccuracies or missing pieces that were important to mention. This is often the case if you do not recruit the proper vocabulary or class material into your response.2 = Mastery, your response used the right vocabulary, was free of inaccuracy, and properly demonstrated your computing background from the course material as was relevant to the question.
Your score on the PostCommit Quiz (PCQ) will be converted to a percentage of the total possible (
pcq_percent = 2 * total number of questions) and compared to your correctness score on the assignment (correctness_percent = total assignment score / 100).Your understanding of the assignment's code-to-concept mapping is of the most paramount importance for your knowledge and experience to generalize beyond the class. As such, to motivate the understanding of your code, there will be a penalty assessed to your homework score if you produce functional code that you do not understand and cannot explain adequately as assessed through the PCQs (see FAQ below for rationale).
However, this penalty should only be assessed if there is a large difference ("delta" \(\Delta\)) between your correctness score and your PCQ score; it is not expected that you have a high code-to-concept mapping if your code is not fully functional. As such, we compute a PostCommit Delta value \(\Delta PC = \text{pcq_percent - correctness_percent}\).
You will receive a penalty if \(\Delta PC\) exceeds a certain threshold... however, you may also receive a BONUS if you didn't get fully functional code but can explain it well or articulate what you wanted to do, but couldn't quite get to.
The following table diagrams the possible penalties / bonuses:
\(\Delta PC\) Value
Assignment Score Adjustment
\(\Delta PC \lt -0.80\)
\(-25\)
\(-0.80 \le \Delta PC \lt -0.70\)
\(-20\)
\(-0.70 \le \Delta PC \lt -0.60\)
\(-15\)
\(-0.60 \le \Delta PC \lt -0.50\)
\(-10\)
\(-0.50 \le \Delta PC \lt -0.40\)
\(-5\)
\(-0.40 \le \Delta PC \lt 0.20\)
\(\pm 0\)
\(0.00 \le \Delta PC \lt 0.20\)
\(+5\)
\(0.20 \le \Delta PC \lt 0.30\)
\(+10\)
\(0.30 \le \Delta PC \lt 0.40\)
\(+15\)
\(0.40 \le \Delta PC\)
\(+20\)
Note that there is also an optional research component to PostCommit! Although everyone will participate in the quizzes, you have the option to not participate in the research component. See attached Informed Consent and Experimental Bill of Rights for more info:
To sweeten the deal, at the semester's end, each participant in the study will be entered into a drawing for 2 x $50 Amazon Gift Cards, plus one raffle ticket for each PCQ question you answer at the Mastery level!
Pilot Data: 2025 - 2026
As new scientists, you should be apprised of why your faculty are adopting this model of assessment!
In the Fall 2025 pilot of PostCommit (in which performance on each PCQ was for participation grade, not correctness), we found that there was no significant correlation between Assignment% (the correctness of the submission in terms of unit tests satisfied, style, etc.) and PCQ% (performance on the PCQs). This suggests that students were producing highly functional code but their understanding of it was all over the place. Compare this to how performance on PCQ% correlates very strongly with Exam%, making it a much more accurate metric of students' code-to-concept understanding.
PostCommit FAQ
What is the motivation for the penalties possible from PostCommit quizzes?
Because this is a foundational computing course (especially one whose topics are often queried in technical interviews), most of its assignments can be trivially solved using GenAI, looking up answers on the internet, consulting with friends, etc. which may complete the code without gifting you any of the intended knowledge, experience, debugging practice, etc. that are intended by them. The code you write in 5+ years may look very different from the code you write in this class, but the meta-skills and generalizable knowledge of *process* will support you if you do the work yourself as intended, and will be missing if you do not. Your grade should thus reflect your level of code-to-concept understanding, and continuing in the curriculum *without* it will harm only you.
How do I prepare for PostCommit Quizzes?
The best way is to be the one who labored over the assignment's solution yourself -- if you are the true author of your code who spent the intended time thinking, planning, connecting to lecture, outlining, implementing, debugging, and testing, the PCQ questions should come naturally. If they do not, it could mean that you are completing them with too much outside assistance, and that could even mean from the TAs! Before each quiz, take some time to review the spec, relevant course notes, and of course, your own code, focusing on big questions of "why" you chose to implement features the way you did and how that relates to the syntax in your code.
Any tips for achieving Mastery level scores on PCQ questions?
Great question because these tips are similar to the best ways to answer technical interview style questions! Your answers should strive to be complete (not lacking any critical detail needed to demonstrate your technical background), but concise (not spewing every CMSI fact you know in the hopes of hitting the bullseye with the shotgun technique). Although you won't be penalized for mentioning extra relevant information in your answers, you may risk stating something that is inaccurate if your answers are too long, which can cause point deductions. Use of appropriate vocabulary from the lectures is one of the strongest ways to demonstrate your mastery; try to use the proper technical vocab rather than if you were talking to someone outside of the field.
What if there are issues with the PCQ questions asked of me or I disagree with the grade assigned?
We review each created question and each assigned score + feedback, but it's possible that the graders will miss something. Although you are always free to contact the instructor with any discrepancies or further explanation, we will only entertain questions about content, not fairness of assigned grade (these have already been considered). E.g., you should absolutely contact the instructor if there is an error in the feedback, but not because you were assigned a 1 on a question and believe it should be a 2 unless you can dispute the feedback's reason for that assignment.
What if I miss a PostCommit Quiz?
You are allowed 1 make-up PCQ IF (1) you contact me in advance of missing the class or (2) have documentation certifying your absence. You may not make up a quiz missed in any other fashion, which will count as a 0 for the purposes of the \(\Delta PC\) computation above.
Resources
Note: this is an abnormally impacted section of this course! Your patience and hard work are appreciated in advance; we'll make the most out of this semester together!
With that said, here are some things you can expect from this class, and what I expect from you:
Community Agreement
Just as I have certain expectations of you in this course, you may have certain expectations of me. Here is a high-level list of each:
| My Responsibilities | Your Responsibilities |
|---|---|
Answer your questions and curiosities in office hours, over Slack, and via email with a turnaround of at most 36 hours. |
Be responsible with use of your time, class time, office hours, email, and the Keck Lab TAs. Last minute pleas for help on assignments or exams may not be enough time to get you the assistance you need. |
Provide you with an educational experience superior to that which could be gleaned from a textbook or online source alone. |
Keeping up with material, doing outside study, and asking questions when you're stuck -- I'm happy to help, but can't read minds. |
Give you feedback on your submissions and individualized instruction on how to maximize your gain from this class. |
Don't provide answers on exams or solutions to assignments that are not your own. |
Ensure that any group work is productive and encouraging; I'm always happy to mediate if conflict occurs in a group. |
Be respectful of group mates: do not expect someone to do all of the work (including yourself) and try to hear ALL group members' voices. |
Be as welcoming, inviting, and judgment free as possible -- I want you to learn and get excited about this class! |
Be respectful and supportive of classmates -- we're all learning together. |
Tips for Success in this Class
Here are a few tips for succeeding in this class (and college, in general); they're not meant to sound patronizing, but rather, are simply pearls of wisdom to hand down from someone who has recently trodden your path!
Ask questions: this is a brave space where inquiry is the heart of your education -- don't waste the opportunity!
Chances are good that someone else has the same question, free karma!
I might have made a mistake / typo and your question can correct it -- we're all human (I think)!
Don't feel like asking in-class? Jot a
?in your notes to ask later via email, Slack, or in Office Hours!
Fear not the specter of error: it may not feel great to be wrong, especially publicly in a college class -- but I'm here to tell you there's no better time to be wrong!
You'll never be wrong about what you were wrong about again -- free studying!
In-class is the perfect time to be wrong -- there are no stakes for being wrong, unlike in an interview, exam, or while you're coding on the job!
We celebrate being wrong in here because everyone can learn from mistakes -- you'll be admired as the brave one who volunteered.
Indulge your curiosity: and no, that's not some tagline stolen from a Vegas day-spa (actually, it might be, don't quote me on that).
We only have time to scratch the surface of class topics -- don't let your learning stop there, especially on topics that resonate!
Google related projects, experiment with questions of "what if" on different algorithms -- go forth and explore!
Value the Challenge: it's important to keep the following in mind as you study in the era of GenAI:
Although AI is increasingly good at producing source code, it will still do whatever you ask... even if what you ask is a bad idea! You'll learn, in here, to know what are good and bad ideas to ask as you become more of an architect than a solo builder.
You can't effectively review, debug, or secure code you don't understand. If your understanding is only what you can ask of AI, then you are replaceable by AI.
Current AI models are "associative" -- they're great at mimicking human patterns, but not in creating novel research. Especially if you have endeavors of standing out / being unique in your scholarly contributions, you'll need to master the underlying theory and math.
Remember that you belong: no matter what you look like, believe, etc. remember that if you have a passion for computing and the hunger to learn, you are a welcome member of this class, department, and institution.
This includes having a growth mindset: even if you feel like you're behind or unprepared, know that everyone who has the drive can learn computing -- we believe in you!
No need to feel like impostors -- this material is challenging but will help you grow -- if it were easy, you wouldn't get anything from it!
Always feel free to let me know if you feel otherwise on any of the above: if you're feeling excluded for ANY reason, let me know, because if I can't help you, I'll find someone who can.
University Resources
Here are some LMU links for University Resources that might be of interest:
Computer Science Department - Student Guide: There are some great review and practice guides in here too!
Academic Degree Requirements and Policies: Pay particular attention to honor code and process.