├── .gitignore ├── LICENSE ├── README.md ├── bus-238-introduction-to-entrepreneurship-and-innovation ├── bus-238.pdf ├── bus-238.tex ├── business-model-canvas.pdf └── tex │ ├── appendices.tex │ ├── business-models.tex │ ├── creativity.tex │ ├── entrepreneurship.tex │ ├── innovation.tex │ ├── interviewing.tex │ ├── introduction.tex │ ├── marketing.tex │ ├── problems.tex │ └── teamwork.tex ├── bus-314-resourcing-new-ventures ├── bus-314.pdf ├── bus-314.tex ├── img │ ├── balance-sheet.png │ ├── cash-flow-statement.jpg │ └── income-statement.png └── tex │ ├── _template.tex │ ├── capitalization-structure.tex │ ├── financials.tex │ ├── introduction.tex │ ├── pitch-frameworks.tex │ └── teams-and-human-resources.tex ├── bus-338-foundations-of-innovation ├── bus-338.pdf ├── bus-338.tex ├── business-model-canvas.pdf ├── img │ ├── jim-davis.jpg │ ├── market-adoption-cycle.png │ ├── phases-of-competition.png │ └── whole-product.jpg └── tex │ ├── _template.tex │ ├── appendices.tex │ ├── competition.tex │ ├── innovation-ecosystem.tex │ ├── introduction.tex │ ├── marketing.tex │ ├── product.tex │ ├── research.tex │ └── user-experience.tex ├── bus-361-project-management ├── bus-361.pdf ├── bus-361.tex └── tex │ ├── closeout.tex │ ├── communications-management.tex │ ├── controlling.tex │ ├── cost-resource-management.tex │ ├── flashcard-questions.tex │ ├── human-resources.tex │ ├── initiation.tex │ ├── introduction.tex │ ├── planning.tex │ ├── quality-management.tex │ └── risk-management.tex ├── cmpt-120-introduction-to-computing-science-and-programming-i ├── README.md ├── cmpt-120.docx └── cmpt-120.pdf ├── cmpt-125-introduction-to-computing-science-and-programming-ii ├── README.md ├── cmpt-125.docx └── cmpt-125.pdf ├── cmpt-150-introduction-to-computer-design_partial ├── cmpt-150.pdf ├── cmpt-150.tex └── tex │ ├── section_1.tex │ ├── section_2.tex │ ├── section_3.tex │ ├── section_4.tex │ └── section_5.tex ├── cmpt-213-object-oriented-design-in-java ├── cmpt-213.pdf ├── cmpt-213.tex └── tex │ ├── code-smells.tex │ ├── defensive-programming.tex │ ├── design-patterns.tex │ ├── interface-quality.tex │ ├── introduction.tex │ ├── java.tex │ ├── object-oriented-design.tex │ ├── rest-apis.tex │ └── unified-markup-language.tex ├── cmpt-276-introduction-to-software-engineering ├── cmpt-276.pdf ├── cmpt-276.tex └── tex │ ├── cpp-rest-sdk.tex │ ├── cpp.tex │ ├── introduction.tex │ ├── unit-testing.tex │ └── version-control.tex ├── cmpt-300-operating-systems-i ├── cmpt-300.pdf ├── cmpt-300.tex ├── img │ ├── ipc-message-passing.png │ ├── page-table-1.png │ ├── page-table-2-tlb.png │ ├── page-table-3-hierarch.png │ ├── page-table-4-hierarch-access.png │ ├── page-table-5-hashed.png │ ├── page-table-6-inverted.png │ ├── process-data.png │ ├── scheduling-queues.png │ ├── structure-hybrid.png │ ├── structure-layered.png │ ├── structure-microkernel.png │ ├── structure-modular.png │ ├── structure-monolithic.png │ └── system-call-interface.png └── tex │ ├── _template.tex │ ├── deadlocks.tex │ ├── filesystems.tex │ ├── interprocess-communication.tex │ ├── introduction.tex │ ├── memory-management.tex │ ├── processes.tex │ ├── scheduling.tex │ ├── synchronization.tex │ └── virtual-memory.tex ├── cmpt-310-artificial-intelligence-survey ├── course-overview │ ├── cmpt-310.pdf │ ├── cmpt-310.tex │ └── tex │ │ ├── constraint-satisfaction-problems.tex │ │ ├── flashcard-questions.tex │ │ ├── game-playing.tex │ │ ├── introduction.tex │ │ ├── logical-inference.tex │ │ ├── machine-learning.tex │ │ ├── probability.tex │ │ ├── problem-solving.tex │ │ └── search-algorithms.tex └── minimax-worksheet │ ├── minimax-worksheet-solutions.pdf │ ├── minimax-worksheet-solutions.tex │ ├── minimax-worksheet.pdf │ └── minimax-worksheet.tex ├── cmpt-320-social-implications-of-a-computerized-society ├── cmpt-320.pdf ├── cmpt-320.tex └── tex │ ├── computer-crime.tex │ ├── computers-in-the-workplace.tex │ ├── economic-impact-of-technology.tex │ ├── ethics.tex │ ├── freedom-of-speech.tex │ ├── intellectual-property.tex │ ├── introduction.tex │ ├── life-with-technology.tex │ └── privacy.tex ├── cmpt-354-database-systems-i_partial ├── Entity-Relationship Diagram Template │ ├── Entity-Relationship Diagram.txt │ └── tikz-er2.sty ├── cmpt-354.pdf ├── cmpt-354.tex ├── tex │ ├── _template.tex │ ├── data-warehousing-and-mining.tex │ ├── database-applications.tex │ ├── design.tex │ ├── entity-relationship-model.tex │ ├── functional-dependencies.tex │ ├── introduction.tex │ ├── nosql.tex │ ├── query-optimization.tex │ ├── relational-model.tex │ └── sql.tex └── tikz-er2.sty ├── cmpt-373-software-development-methods ├── cmpt-373.pdf ├── cmpt-373.tex └── tex │ ├── design-and-architecture.tex │ ├── introduction.tex │ ├── teamwork.tex │ └── the-agile-paradigm.tex ├── cmpt-376w-technical-writing-and-group-dynamics ├── cmpt-376w.pdf ├── cmpt-376w.tex └── tex │ ├── _template.tex │ ├── allegories.tex │ ├── elements-of-text.tex │ ├── introduction.tex │ ├── reviewing-papers.tex │ ├── writing-samples.tex │ └── writing.tex ├── cmpt-379-principles-of-compiler-design ├── brief-ll1-parsing │ ├── ll1-parsing.pdf │ └── ll1-parsing.tex ├── cmpt-379.pdf ├── cmpt-379.tex ├── img │ ├── dominance-frontier.jpg │ ├── lrk-states-diagram.jpg │ ├── lrk-states-epsilon-diagram.jpg │ ├── register-interference-graph.png │ └── slr-1-trace-diagram.jpg ├── tex │ ├── introduction.tex │ ├── lexical-analysis.tex │ ├── optimization.tex │ ├── parsing-algorithms-bottom-up.tex │ ├── parsing-algorithms-top-down.tex │ ├── programming-language-structure.tex │ ├── register-allocation.tex │ ├── semantic-analysis-ssa.tex │ ├── syntax-analysis.tex │ └── syntax-directed-translation.tex └── worksheets │ ├── 1-lexical-analysis │ ├── 1-lexical-analysis-answers.pdf │ ├── 1-lexical-analysis-answers.tex │ ├── 1-lexical-analysis-questions.pdf │ └── 1-lexical-analysis-questions.tex │ └── 2-syntax-analysis │ ├── 2-syntax-analysis-answers.pdf │ ├── 2-syntax-analysis-answers.tex │ ├── 2-syntax-analysis-questions.pdf │ └── 2-syntax-analysis-questions.tex ├── cmpt-383-comparative-programming-languages ├── cmpt-383.tex └── tex │ ├── _template.tex │ └── introduction.tex ├── cmpt-433-embedded-systems ├── cmpt-433.pdf ├── cmpt-433.tex ├── tex │ ├── bare-metal-programming.tex │ ├── bitwise.tex │ ├── communication-and-networking.tex │ ├── debugging.tex │ ├── electronics.tex │ ├── fmea.tex │ ├── introduction.tex │ ├── linux-kernel-programming.tex │ ├── operating-system-components.tex │ ├── signals-and-noise.tex │ ├── software.tex │ ├── synchronization.tex │ └── systemd.tex └── worksheets │ ├── bitwise-operations │ ├── bitwise-operations-worksheet-answers.pdf │ ├── bitwise-operations-worksheet-answers.tex │ ├── bitwise-operations-worksheet.pdf │ └── bitwise-operations-worksheet.tex │ └── timer-calculation │ ├── timer-calculation-worksheet-answers.pdf │ ├── timer-calculation-worksheet-answers.tex │ ├── timer-calculation-worksheet.pdf │ └── timer-calculation-worksheet.tex ├── cmpt-454-database-systems-ii ├── cmpt-454.pdf ├── cmpt-454.tex ├── img │ ├── data-storage-architecture │ │ ├── arm-assembly-diagram.jpg │ │ ├── heap-file-linked-list.png │ │ ├── heap-file-page-directory.png │ │ ├── record-fixed-packed.png │ │ ├── record-fixed-unpacked.png │ │ ├── record-fixed.png │ │ ├── record-variable-fixed.png │ │ ├── record-variable-page.png │ │ └── record-variable-variable.png │ ├── external-sorting │ │ ├── merge-sort.jpg │ │ └── replacement-sort.jpg │ └── indexed-file-structure │ │ ├── bplus-tree.jpg │ │ ├── clustered-index.jpg │ │ ├── extendible-hashing-splitting.jpg │ │ ├── extendible-hashing.jpg │ │ ├── isam-tree.jpg │ │ ├── linear-hashing.jpg │ │ ├── static-hashing.jpg │ │ └── unclustered-index.jpg └── tex │ ├── concurrency-control.tex │ ├── data-storage-architecture.tex │ ├── external-sorting.tex │ ├── fundamentals-of-transactions.tex │ ├── heap-file-structure.tex │ ├── indexed-file-structure.tex │ ├── introduction.tex │ ├── logging-and-recovery.tex │ └── query-optimization.tex ├── cmpt-473-software-testing-reliability-security ├── cmpt-473.pdf ├── cmpt-473.tex ├── img │ ├── flow-diagram-for.jpg │ ├── flow-diagram-if-shortcircuit.jpg │ ├── flow-diagram-switch.jpg │ └── flow-diagram-while.jpg └── tex │ ├── a-b-testing.tex │ ├── automated-test-generation.tex │ ├── debugging.tex │ ├── graph-coverage.tex │ ├── input-space-partitioning.tex │ ├── introduction.tex │ ├── logic-based-coverage.tex │ ├── managing-bugs.tex │ ├── mutation-analysis-and-testing.tex │ ├── performance.tex │ ├── program-analysis.tex │ ├── property-based-testing.tex │ ├── regression-testing.tex │ ├── security.tex │ ├── test-planning.tex │ └── types-of-testing.tex ├── easc-106-earth-through-time ├── README.md ├── easc-106.docx └── easc-106.pdf ├── engl-101w-introduction-to-fiction ├── README.md ├── engl-101w.docx └── engl-101w.pdf ├── iat-210-introduction-to-game-studies ├── iat-210.pdf ├── iat-210.tex └── tex │ ├── business.tex │ ├── designing-games.tex │ ├── history-of-play-and-games.tex │ ├── narrative.tex │ ├── participatory-gaming.tex │ ├── properties-of-games.tex │ ├── reasons-for-game-design.tex │ ├── the-audience.tex │ ├── the-players-perspective.tex │ └── types-of-games.tex ├── iat-267-introduction-to-technological-systems ├── IEEEtrantools.sty ├── iat-267.pdf ├── iat-267.tex ├── img │ ├── arduino-switch.png │ ├── arduino-uno-diagram.png │ ├── force-sensing-resistor.png │ ├── network-direct.png │ ├── network-ring.png │ └── network-star.png └── tex │ ├── actuators.tex │ ├── arduino.tex │ ├── electricity-and-circuit-design.tex │ ├── introduction-to-embedded-and-computing-systems.tex │ ├── networking.tex │ ├── processing.tex │ ├── sensors.tex │ └── technological-systems.tex ├── macm-101-discrete-mathematics-i_partial ├── README.md ├── macm-101.docx └── macm-101.pdf ├── rem-100-global-change ├── README.md ├── rem-100.docx └── rem-100.pdf ├── see-101w-process-form-convention-in-professional-genres ├── see-101w.pdf ├── see-101w.tex └── tex │ ├── drafting.tex │ ├── introduction.tex │ ├── invention.tex │ ├── persuasion.tex │ └── structure.tex └── stat-100-chance-and-data-analysis ├── IEEEtrantools.sty ├── img ├── xkcd-221-random-number.png └── xkcd-552-correlation.png ├── stat-100.pdf ├── stat-100.tex └── tex ├── _template.tex ├── analysis-of-multi-variable-data.tex ├── analysis-of-population-proportions.tex ├── analysis-of-single-variable-data.tex ├── data-collection.tex ├── elements-of-statistics.tex ├── ethics.tex ├── measurement-of-data.tex └── probability.tex /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Jeffrey Leung 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jeffrey Leung's SFU Coursework Notes 2 | 3 | Notes from my SFU coursework, written in pdfLaTeX. (...mostly. One or two written in Microsoft Word.) 4 | 5 | ## Building the LaTeX Files 6 | 7 | Install the base required LaTeX files: 8 | ```shell 9 | sudo apt-get install texlive texlive-fonts-extra 10 | ``` 11 | 12 | In the directory of a specific course, build the file twice: 13 | ```shell 14 | pdflatex FILE.tex 15 | pdflatex FILE.tex 16 | ``` 17 | 18 | View the resulting generated PDF. 19 | -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/bus-238.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-238-introduction-to-entrepreneurship-and-innovation/bus-238.pdf -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/bus-238.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage{graphicx} 33 | \graphicspath{ {img/} } 34 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 35 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 36 | \usepackage{pdfpages} 37 | \usepackage{textcomp} % Allows the use of \textbullet with the font 38 | \usepackage{verbatim} 39 | 40 | \renewcommand{\arraystretch}{1.2} 41 | \renewcommand{\familydefault}{\sfdefault} 42 | 43 | \title{BUS 238: Introduction to Entrepreneurship and Innovation \\\medskip \Large A Course Overview} 44 | \author{Jeffrey Leung \\ Simon Fraser University} 45 | \date{Fall 2017} 46 | 47 | \begin{document} 48 | 49 | \maketitle 50 | \tableofcontents 51 | \clearpage 52 | 53 | \input{./tex/introduction.tex} 54 | \input{./tex/innovation.tex} 55 | \input{./tex/entrepreneurship.tex} 56 | \input{./tex/problems.tex} 57 | \input{./tex/interviewing.tex} 58 | \input{./tex/creativity.tex} 59 | \input{./tex/marketing.tex} 60 | \input{./tex/teamwork.tex} 61 | \input{./tex/business-models.tex} 62 | \input{./tex/appendices.tex} 63 | 64 | \end{document} 65 | -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/business-model-canvas.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-238-introduction-to-entrepreneurship-and-innovation/business-model-canvas.pdf -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/appendices.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Appendices 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Appendices} 9 | \label{sec:appendices} 10 | 11 | \begin{itemize} 12 | \item \hyperref[subsec:appendices:business-model-canvas]{Business Model Canvas} 13 | \end{itemize} 14 | 15 | \subsection{Business Model Canvas} 16 | \label{subsec:appendices:business-model-canvas} 17 | \includepdf[pages={-},landscape=true]{business-model-canvas.pdf} 18 | 19 | \clearpage -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/creativity.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Creativity 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Creativity} 9 | \label{sec:creativity} 10 | \begin{easylist} 11 | 12 | & \emph{Creativity:} Solution which is both relevant to the problem and novel 13 | && Irrelevant to artistry 14 | && Can be practiced and improved 15 | 16 | & \emph{Brainwriting:} Individual idea generation 17 | & \emph{Brainstorming:} Social idea generation 18 | && Build off of others' ideas 19 | && Don't criticize ideas 20 | 21 | & When being creative: 22 | && Do not self-filter 23 | && Prioritize quantity over quality 24 | && Create wildly unrealistic ideas 25 | 26 | & SCAMPER framework: 27 | && \textbf{S}ubstitute one concept for another 28 | &&& E.g. Replace meat with tofu 29 | && \textbf{C}ombining multiple concepts 30 | &&& E.g. Adding two cuisines 31 | && \textbf{A}dapting concepts for another environment 32 | &&& E.g. Chinese food in the US 33 | && \textbf{M}odify existing concepts 34 | &&& E.g. Use cereal to create cereal bars 35 | && \textbf{P}ut a concept to another use 36 | &&& E.g. Using food as art 37 | && \textbf{E}liminate a concept from its context 38 | &&& E.g. Remove meat from burgers 39 | && \textbf{R}everse 40 | &&& E.g. Wrap the dough of a pizza around the toppings to create a calzone 41 | 42 | \end{easylist} 43 | \clearpage 44 | -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/entrepreneurship.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Entrepreneurship 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Entrepreneurship} 9 | \label{sec:entrepreneurship} 10 | \begin{easylist} 11 | 12 | & \emph{Entrepreneurship:} Creation of purposeful and focused change in an enterprise's economic/social potential 13 | && Often without regard to resources currently controlled 14 | && Innovating a new product, creating a new business model, improving a product 15 | 16 | & \emph{Opportunity:} 17 | 18 | & \emph{Pursuit:} Following the realization of an opportunity, often with focus and urgency 19 | 20 | & \emph{Beyond resources controlled:} Need to identify and access external resources to support the realization of opportunity 21 | 22 | & Steve Blank: Entrepreneur and originator of the Lean method 23 | && \href{https://steveblank.com}{Website} 24 | 25 | & \emph{Intrapreneurship:} Being an entrepreneur within a company 26 | 27 | & To create impact: 28 | && Think like a movement to create social change 29 | && Create a container for content delievered to consumers 30 | && Be ready to engage with allies, adversaries, and strangers 31 | && Leverage your economic power and reduce reliance on others 32 | && Advocate for causes in an empathetic way 33 | && Understand who should be in your circle 34 | 35 | \end{easylist} 36 | \clearpage 37 | -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/innovation.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Innovation 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Innovation} 9 | \label{sec:innovation} 10 | \begin{easylist} 11 | 12 | & \textbf{Innovation:} Improving or changing an idea or item to meet a need 13 | && Involves matching technoogy to a market application 14 | && Not the invention of something new 15 | && Iterative to improve competition and to solve problems 16 | && Involves value-add and newness 17 | && Aims for seamless adoption of influential change 18 | 19 | & Types of innovation: 20 | && \textbf{Product/Service innovation:} Changing an offering to customers 21 | && \textbf{Process innovation:} Changing the creation, composition, and/or maintenance of a product or service 22 | &&& Often in the interest of efficiency and cost 23 | && \textbf{Marketing innovation (positioning):} Changing how an offering is portrayed in communications 24 | && \textbf{Platform innovation:} Changing the foundation on which other businesses or processes operate 25 | && \textbf{Business model innovation:} Changing the model of thought of the priorities and operations 26 | &&& E.g. RyanAir is a airline which provides low quality services at low costs 27 | &&& E.g. Netflix is a media streaming service which moved subscription services and distribution to online 28 | && \textbf{Social innovation:} Creating solutions to social and/or environmental issues/deficits 29 | &&& Often target market weaknesses or address market failures 30 | && \textbf{Sustainable innovation:} 31 | &&& Long-term maintenance of a concept or solution while creating the least environmental impact and utilizing all the possible resources 32 | 33 | & Speed and impact of innovation: 34 | && Incremental (e.g. parking services) 35 | && Substantial (e.g. remote engine diagnostics) 36 | && Radical (e.g. hybrid engine technology) 37 | 38 | \end{easylist} 39 | \clearpage 40 | -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/interviewing.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Interviewing 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Interviewing} 9 | \label{sec:interviewing} 10 | \begin{easylist} 11 | 12 | & Recommendations: 13 | && Listen actively 14 | && Ask for history or context 15 | && Ask follow-up questions to encourage deeper discussion 16 | && Encourage them to tell stories 17 | 18 | & Refrain from: 19 | && Asking leading questions 20 | && Asking yes/no questions 21 | && Asking obvious questions 22 | && Making predictions or assumptions 23 | 24 | \end{easylist} 25 | \clearpage 26 | -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & Course objectives: 13 | && Build fundations for innovation and entrepreneurship 14 | && Improve business thinking 15 | && Learn the importance of implementation 16 | && Create a realistic business model 17 | 18 | & Cycle of development: Create, invent, innovate, entrepreneurship 19 | 20 | & Ideas are not unique; do not cling to ideas 21 | & All changes have negative consequences 22 | 23 | \end{easylist} 24 | \clearpage -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/marketing.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Marketing 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Marketing} 9 | \label{sec:marketing} 10 | \begin{easylist} 11 | 12 | & \emph{Target market:} People who may consume your product/service 13 | & \emph{Market segment:} Subset of the target market which has common needs and priorities which can be targeted specifically 14 | && Helps to satisfy specific people well 15 | && Controlling smaller markets is more easily achievable 16 | & \emph{Target persona:} Representative persona of a typical consumer 17 | && How they see themselves, what they value, how they behave, how they communicate, what motivates them 18 | && As many details about an artificially created person as possible 19 | && \href{https://xtensio.com/user-persona/}{Xtensio}: Tool to create personas 20 | 21 | \end{easylist} 22 | \clearpage 23 | -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/problems.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Problems 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Problems} 9 | \label{sec:problems} 10 | \subsection{Root Cause Analysis} 11 | \label{subsec:root-cause-analysis} 12 | \begin{easylist} 13 | 14 | & Steps: 15 | && Identify the problem and key indicator/symptom 16 | && Iteratively identify any linked causes 17 | && Identify the furthest root causes 18 | 19 | & When creating an RCA: 20 | && Don't leap to conclusions 21 | && Focus on direct causations 22 | && Consider context of each causation 23 | && Create many branches 24 | 25 | & \emph{Insight:} Understanding the underlying nature of a concept 26 | && User insight: 27 | &&& Revelation about an aspect of users 28 | &&& Realization of new opportunities 29 | && Methods of gaining insight: 30 | &&& \emph{Observation:} Perception of behaviour without interfering interaction 31 | &&&& Should be objective about behaviour and not include emotions or make inferrances 32 | &&&& Using observations, find insights 33 | &&&& \emph{POEMS framework:} When observing, pay attention to People, Objects, Environments, Messages, and Services 34 | &&&&& People: Who is present/involved? 35 | &&&&& Objects: What is involved? (e.g. equipment, materials, product, infrastructure) 36 | &&&&& Environments: Uniqueness in and characteristics of the environment (e.g. noise, temperature, crowdedness, privacy, security, atmosphere) 37 | &&&&& Messages: Information conveyed by/from people (e.g. other people in the vicinity, environment, advertising, promotions) 38 | &&&&& Services: Services offered and results 39 | &&&& Pay attention to: 40 | &&&&& Disjunctures and inconsistencies with previous understandings/observations 41 | &&&&& Revelatory incident which requires explanation and contextualization 42 | &&&&& Personal interpretations and differences between what is said and what is done 43 | &&&&& Cultural contextual issues 44 | &&&&& Metaphorical and symbolical experiences relating to a larger concept 45 | 46 | \end{easylist} 47 | \subsection{Empathy Mapping} 48 | \label{subsec:problems:empathy-mapping} 49 | \begin{easylist} 50 | 51 | & Discuss with people to understand the problem better 52 | 53 | \end{easylist} 54 | \clearpage 55 | -------------------------------------------------------------------------------- /bus-238-introduction-to-entrepreneurship-and-innovation/tex/teamwork.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 238: Introduction to Entrepreneurship and Innovation 3 | % Section: Teamwork 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Teamwork} 9 | \label{sec:teamwork} 10 | \begin{easylist} 11 | 12 | & Interdisciplinary teams: 13 | && Make unique contributions 14 | && Reduce errors or tunnel vision 15 | && Have greater flexibility 16 | && Are more united 17 | && Learn more broadly 18 | && Reduce communication gaps between industries 19 | && Allow people to focus on their strength 20 | && Require patience and listening 21 | && Are not easy to align goals and direction 22 | && Are not put into practice often 23 | 24 | \end{easylist} 25 | \clearpage 26 | -------------------------------------------------------------------------------- /bus-314-resourcing-new-ventures/bus-314.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-314-resourcing-new-ventures/bus-314.pdf -------------------------------------------------------------------------------- /bus-314-resourcing-new-ventures/bus-314.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 314: Resourcing New Ventures - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage{amsmath} 10 | \usepackage[ampersand]{easylist} 11 | \ListProperties( 12 | Progressive*=5ex, 13 | Space=5pt, 14 | Space*=5pt, 15 | Style1*=\textbullet\ \ , 16 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 17 | Style3*=\textasteriskcentered\ \ , 18 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 19 | Style5*=\textbullet\ \ , 20 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 21 | Style7*=\textasteriskcentered\ \ , 22 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 23 | Hide1=1, 24 | Hide2=2, 25 | Hide3=3, 26 | Hide4=4, 27 | Hide5=5, 28 | Hide6=6, 29 | Hide7=7, 30 | Hide8=8 ) 31 | \usepackage{geometry} 32 | \geometry{margin=1.2in} 33 | \usepackage{graphicx} 34 | \graphicspath{ {img/} } 35 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 36 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 37 | \usepackage{textcomp} % Allows the use of \textbullet with the font 38 | \usepackage{verbatim} 39 | 40 | \renewcommand{\arraystretch}{1.2} 41 | \renewcommand{\familydefault}{\sfdefault} 42 | 43 | \title{BUS 314: Resourcing New Ventures \\\medskip \Large A Course Overview} 44 | \author{Jeffrey Leung \\ Simon Fraser University} 45 | \date{Spring 2020} 46 | 47 | \begin{document} 48 | 49 | \maketitle 50 | \tableofcontents 51 | \clearpage 52 | 53 | \input{./tex/introduction.tex} 54 | \input{./tex/pitch-frameworks.tex} 55 | \input{./tex/financials.tex} 56 | \input{./tex/teams-and-human-resources.tex} 57 | \input{./tex/capitalization-structure.tex} 58 | 59 | \end{document} 60 | -------------------------------------------------------------------------------- /bus-314-resourcing-new-ventures/img/balance-sheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-314-resourcing-new-ventures/img/balance-sheet.png -------------------------------------------------------------------------------- /bus-314-resourcing-new-ventures/img/cash-flow-statement.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-314-resourcing-new-ventures/img/cash-flow-statement.jpg -------------------------------------------------------------------------------- /bus-314-resourcing-new-ventures/img/income-statement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-314-resourcing-new-ventures/img/income-statement.png -------------------------------------------------------------------------------- /bus-314-resourcing-new-ventures/tex/_template.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 314: Resourcing New Ventures - A Course Overview 3 | % Section: 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{} 9 | \label{sec:} 10 | \begin{easylist} 11 | 12 | & \textbf{:} 13 | 14 | \end{easylist} 15 | \clearpage 16 | -------------------------------------------------------------------------------- /bus-314-resourcing-new-ventures/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 314: Resourcing New Ventures - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & Innovation creates productivity which creates growth (market, economic, organizational, etc.) 13 | 14 | & \textbf{New business venture:} Organization/entity with a purpose to fulfill, desired outcome, and risk to manage 15 | && Fuel for a venture: Idea, market need/interest, financial capital, audience, supporters, human capital (team/passion), management 16 | 17 | & Become a learning organization 18 | & People buy into ideas they believe they helped to create 19 | && Create shared context so everyone is communicating and emotionally invested 20 | 21 | & Kaizen: Businses philosophy of continual improvement 22 | 23 | & Application interface: How a product integrates with other products in the user's life 24 | & Buyer interface: How a product informs and is purchased by a buyer 25 | 26 | & \textbf{Product-market fit:} Being in a good market which accepts the product 27 | && Does not imply growth 28 | 29 | & \textbf{Go to market fit:} Consistent alignment between messaging, marketing, and sales to capture customers in a timely basis with urgency 30 | 31 | & \textbf{Market alternative:} Other methods of solving the problem which are not competitors 32 | & \textbf{Competitive alternative:} Competitor attempting to solve the same problem 33 | 34 | & \textbf{Objectives \& Key Results (OKR):} Organizational management technique where objectives and measurable key results (KPIs) are set 35 | && E.g. Objective: Increase revenue; key result: increase amount of monthly subscriptions by 30\% 36 | 37 | & \textbf{Due diligence:} Investigation into an entity after preliminary negotations (i.e. after signing the term sheet) 38 | && \textbf{Corporate records:} Entity documentation (e.g. directors' and stockholders' meeting minutes) 39 | && \textbf{Charter documents:} Official entity documentation (e.g. certificate of incorporation, designation, or rights, bylaws) 40 | && Business plan and financials 41 | && Intellectual property 42 | && Material agreements 43 | && Disputes and litigations 44 | 45 | \end{easylist} 46 | \clearpage 47 | -------------------------------------------------------------------------------- /bus-314-resourcing-new-ventures/tex/teams-and-human-resources.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 314: Resourcing New Ventures - A Course Overview 3 | % Section: Teams and Human Resources 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Teams and Human Resources} 9 | \label{sec:teams-and-human-resources} 10 | \begin{easylist} 11 | 12 | & \textbf{Intellectual property:} Idea, concept, or creation owned by an individual or entity 13 | && Employees list prior inventions on a contract 14 | 15 | & \textbf{Non-soliciation clause:} Legally binding clause which states an employee cannot leave a company and actively recruit their previous employees 16 | 17 | & \textbf{Non-disclosure agreement (NDA):} Legally binding clause which states an employee cannot publish confidential information revealed to them by an entity 18 | 19 | & \textbf{Non-compete clause (NCC):} Legally binding clause which states an employee cannot work in competition against an entity for a given amount of time 20 | 21 | \end{easylist} 22 | \clearpage 23 | -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/bus-338.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-338-foundations-of-innovation/bus-338.pdf -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/bus-338.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 338: Foundations of Innovation - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage{graphicx} 33 | \graphicspath{ {img/} } 34 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 35 | \usepackage{graphicx} 36 | \graphicspath{ {./img/} } 37 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 38 | \usepackage{pdfpages} 39 | \usepackage{textcomp} % Allows the use of \textbullet with the font 40 | \usepackage{verbatim} 41 | 42 | \renewcommand{\arraystretch}{1.2} 43 | \renewcommand{\familydefault}{\sfdefault} 44 | 45 | \title{BUS 338: Foundations of Innovation \\\medskip \Large A Course Overview} 46 | \author{Jeffrey Leung \\ Simon Fraser University} 47 | \date{Summer 2018} 48 | 49 | \begin{document} 50 | 51 | \maketitle 52 | \tableofcontents 53 | \clearpage 54 | 55 | \input{./tex/introduction.tex} 56 | \input{./tex/marketing.tex} 57 | \input{./tex/product.tex} 58 | \input{./tex/research.tex} 59 | \input{./tex/competition.tex} 60 | \input{./tex/user-experience.tex} 61 | \input{./tex/innovation-ecosystem.tex} 62 | \input{./tex/appendices.tex} 63 | 64 | \end{document} 65 | -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/business-model-canvas.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-338-foundations-of-innovation/business-model-canvas.pdf -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/img/jim-davis.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-338-foundations-of-innovation/img/jim-davis.jpg -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/img/market-adoption-cycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-338-foundations-of-innovation/img/market-adoption-cycle.png -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/img/phases-of-competition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-338-foundations-of-innovation/img/phases-of-competition.png -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/img/whole-product.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-338-foundations-of-innovation/img/whole-product.jpg -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/tex/_template.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 338: Foundations of Innovation - A Course Overview 3 | % Section: 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{} 9 | \label{} 10 | \begin{easylist} 11 | 12 | 13 | 14 | \end{easylist} 15 | \clearpage 16 | -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/tex/appendices.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 338: Foundations of Innovation - A Course Overview 3 | % Section: Appendices 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Appendix A: Business Model Canvas} 9 | \label{sec:appendix-a} 10 | 11 | \includepdf[pages={-},landscape=true]{business-model-canvas.pdf} 12 | 13 | \clearpage -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/tex/innovation-ecosystem.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 338: Foundations of Innovation - A Course Overview 3 | % Section: Innovation Ecosystem 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Innovation Ecosystem} 9 | \label{sec:innovation-ecosystem} 10 | \begin{easylist} 11 | 12 | & \textbf{Innovation ecosystem:} 13 | 14 | & Consists of: 15 | && The end customers 16 | && Intermediaries 17 | && Complementors 18 | && Influencers 19 | && Upstream suppliers of each component 20 | && Competitors 21 | 22 | & In addition, identify: 23 | && The value provided by the product 24 | && Risks at each step 25 | && Ways around road blocks 26 | && Standards and regulations (e.g. legalities, taxes, workplace, trading, marketing, environment, manufacturing) 27 | 28 | & Every downstream group between you and the customer must receive value from you 29 | 30 | & \textbf{Execution risk:} Challenges in developing an innovation to specification within time and resource limitations 31 | & \textbf{Co-innovation risk:} How a commercialization depends on the success of another commercialization 32 | && E.g. Smartphones require the successful development of many components 33 | & \textbf{Adoption risk:} How partners need to adopt an innovation before end consumers can access your product 34 | && E.g. Michelin Run Flat tires were adopted by every partner except for the repair shops which did not carry the component 35 | 36 | \end{easylist} 37 | \clearpage 38 | -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/tex/product.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 338: Foundations of Innovation - A Course Overview 3 | % Section: Product 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Product} 9 | \label{sec:product} 10 | \begin{easylist} 11 | 12 | & \textbf{Whole product:} Basic product in addition to other factors which create a reason to buy or augment the basic product 13 | && E.g. Installation, configuration, integration, maintenance, customer support, other compatible products 14 | && Composed of several layered perceptions (see figure~\ref{fig:whole-product}) 15 | &&& \textbf{Generic product:} Basic product provided to customer with no additional features 16 | &&&& E.g. Wardrobe as individual pieces 17 | &&& \textbf{Expected product:} Basic product with features which the customer assumes they will receive 18 | &&&& E.g. Wardrobe pre-built or with a worker to assemble it 19 | &&& \textbf{Augmented product:} Product with all features included to maximize the value provided to the customer 20 | &&&& E.g. Wardrobe delivered to the house and assembled by the worker, with a warranty 21 | &&& \textbf{Potential product:} Possibilities of additional features beyond the scope or abilities of the original product 22 | &&&& E.g. Wardrobe with built-in light and clothes categorization system 23 | && Early adopters do not require a full product, but pragmatists often do 24 | 25 | \begin{figure}[!htb] 26 | \centering 27 | \caption{Whole Product} 28 | \label{fig:whole-product} 29 | \includegraphics[width=0.7\textwidth]{whole-product} 30 | \end{figure} 31 | 32 | & Product characteristics: 33 | && Features: Description, specifications, informative data (e.g. speed, dimensions, colors, models) 34 | && Product benefits and key customer value: Reasons for using the solution and their importance (e.g. save time or money) 35 | && Enhance the way that features add value to customers 36 | 37 | & Match the prioritized customer needs to the product's benefits 38 | && Needs must be important to the customer 39 | && The match between benefits and needs should excel among the competition 40 | 41 | \end{easylist} 42 | \clearpage 43 | -------------------------------------------------------------------------------- /bus-338-foundations-of-innovation/tex/research.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 338: Foundations of Innovation - A Course Overview 3 | % Section: Research 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Research} 9 | \label{sec:research} 10 | \begin{easylist} 11 | 12 | & Gathering information qualitatively: Interviews, focus groups 13 | & Gathering information quantitatively: Surveys, digital analytics 14 | 15 | & When to research: 16 | && Before devising a solution, research the problem and understand the customer 17 | && While developing the solution, research its effectiveness and strategy 18 | 19 | & When interviewing: 20 | && Create hypotheses but be open-minded 21 | && Choose research subjects based on specific common characteristics 22 | && Do not sell a product or service 23 | && Prefer face-to-face communication 24 | && Pay attention to body language 25 | 26 | & To communicate clearly: 27 | && Contextualize the conversation 28 | && Logically structure the message 29 | && Focus on essential elements and their roles 30 | && Remove ambiguous terms 31 | && Use a style which engages the audience 32 | 33 | \end{easylist} 34 | \clearpage -------------------------------------------------------------------------------- /bus-361-project-management/bus-361.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/bus-361-project-management/bus-361.pdf -------------------------------------------------------------------------------- /bus-361-project-management/bus-361.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 361: Project Management - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | % Pre pre-amble 10 | \usepackage[dvipsnames]{xcolor} % Must be declared before Tikz 11 | 12 | % Pre-amble 13 | \usepackage{amsmath} 14 | \usepackage[skip=4pt]{caption} 15 | \usepackage[ampersand]{easylist} 16 | \ListProperties( 17 | Progressive*=5ex, 18 | Space=5pt, 19 | Space*=5pt, 20 | Style1*=\textbullet\ \ , 21 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 22 | Style3*=\textasteriskcentered\ \ , 23 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 24 | Style5*=\textbullet\ \ , 25 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 26 | Style7*=\textasteriskcentered\ \ , 27 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 28 | Hide1=1, 29 | Hide2=2, 30 | Hide3=3, 31 | Hide4=4, 32 | Hide5=5, 33 | Hide6=6, 34 | Hide7=7, 35 | Hide8=8 ) 36 | \usepackage{forest} 37 | \useforestlibrary{edges} 38 | \usepackage{geometry} 39 | \geometry{margin=1.2in} 40 | \usepackage{graphicx} 41 | \graphicspath{ {img/} } 42 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 43 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 44 | \usepackage[caption=false]{subfig} 45 | \usepackage{textcomp} % Allows the use of \textbullet with the font 46 | \usepackage{tikz} 47 | \usetikzlibrary{trees,arrows} 48 | \usepackage{verbatim} 49 | 50 | \renewcommand{\arraystretch}{1.2} 51 | \renewcommand{\familydefault}{\sfdefault} 52 | 53 | \title{BUS 361: Project Management \\\medskip \Large A Course Overview} 54 | \author{Jeffrey Leung \\ Simon Fraser University} 55 | \date{Spring 2019} 56 | 57 | \begin{document} 58 | 59 | \maketitle 60 | \tableofcontents 61 | \clearpage 62 | 63 | \input{./tex/introduction.tex} 64 | \input{./tex/initiation.tex} 65 | \input{./tex/planning.tex} 66 | \input{./tex/cost-resource-management.tex} 67 | \input{./tex/communications-management.tex} 68 | \input{./tex/risk-management.tex} 69 | \input{./tex/quality-management.tex} 70 | \input{./tex/human-resources.tex} 71 | \input{./tex/controlling.tex} 72 | \input{./tex/closeout.tex} 73 | \input{./tex/flashcard-questions.tex} 74 | 75 | \end{document} 76 | -------------------------------------------------------------------------------- /bus-361-project-management/tex/closeout.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 361: Project Management - A Course Overview 3 | % Section: Closeout 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Closeout} 9 | \label{sec:closeout} 10 | \begin{easylist} 11 | 12 | & Finish all deliverables 13 | & Receive client sign-off/acceptance 14 | & Conduct post-implementation audit 15 | && Often received by senior management 16 | && Contents: 17 | &&& Whether the goal was achieved 18 | &&& Whether the project was on time and on budget 19 | &&& Whether the client was satisfied 20 | &&& Whether the business value was realized 21 | &&& Lessons learnt - what should be done again, what should not be done 22 | & Collect documentation 23 | && Includes charter, scope, design documents, status reports, meeting minutes, change requests, client acceptance, audit report 24 | && Used for: 25 | &&& Reference for future changes 26 | &&& Team performance evaluation 27 | &&& History of resource use (costs and duration) 28 | &&& History of issues 29 | &&& Training for other workers 30 | &&& Templates for future work 31 | & Create final project report 32 | && Overall success and criteria 33 | && Organization and affiliations of project 34 | && Strengths and weaknesses 35 | && Recommendations from team 36 | 37 | \end{easylist} 38 | \clearpage 39 | -------------------------------------------------------------------------------- /bus-361-project-management/tex/controlling.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 361: Project Management - A Course Overview 3 | % Section: Controlling 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Controlling} 9 | \label{sec:controlling} 10 | \begin{easylist} 11 | 12 | & \textbf{Scope control:} Permitting only changes which are agreed upon 13 | && \textbf{Scope creep:} Uncontrolled changes to project scope 14 | && Change Control Process used to process requested scope changes and corrective actions 15 | & \textbf{Schedule control:} Process of controlling project schedule changes 16 | && Determine current status, determine influencing factors of schedule changes, identify schedule changes, and manage changes 17 | && Tools: Progress reports, performance measurement, software 18 | & \textbf{Cost control:} Process of controlling project cost changes 19 | 20 | & Methods of project control: 21 | && \textbf{Project/activity log:} Document recording occurrences throughout the project 22 | && Progress/status report: Consistent recurring communication to stakeholders on project status 23 | && Measurements 24 | &&& \textbf{Earned Value:} Technique to analyze variance of project performance (technical/scope, schedule/time, and cost) 25 | &&&& Budgeted Cost at Completion (BAC): Total budget for the project 26 | &&&& \textbf{Planned Value (PV):} Total budgeted cost for an activity 27 | &&&& \textbf{Actual Cost (AC):} Cost spent so far for an activity 28 | &&&& \textbf{Earned Value (EV):} Value of the work performed so far for an activity, based on the total project budgeted cost 29 | &&&&& Equation: $EV = BAC \times \textrm{Percentage completed}$ 30 | &&&& \textbf{Cost Variance (CV):} Difference between Earned Value and Actual Cost 31 | &&&&& Equation: $CV = EV - AC$ 32 | &&&& \textbf{Schedule Variance (SV):} Difference between Earned Value and Planned Value 33 | &&&&& Equation: $SV = EV - PV$ 34 | &&&& \textbf{Cost Performance Index (CPI):} Ratio of Earned Value to Actual Cost 35 | &&&&& Equation: $CPI = \frac{EV}{AC}$ 36 | &&&& \textbf{Schedule Performance Index (SPI):} Ratio of Earned Value to Planned Value 37 | &&&&& Equation: $SPI = \frac{EV}{PV}$ 38 | 39 | \end{easylist} 40 | \clearpage 41 | -------------------------------------------------------------------------------- /bus-361-project-management/tex/initiation.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 361: Project Management - A Course Overview 3 | % Section: Initiation 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Initiation} 9 | \label{sec:initation} 10 | \begin{easylist} 11 | 12 | & \textbf{Vision:} Ideal aspirational organizational position in the future 13 | & \textbf{Mission/mandate:} Action currently being taken to achieve the vision 14 | 15 | & \textbf{Initiation Process Group:} Processes of identifying stakeholders and creating a project charter 16 | && \textbf{Stakeholder:} Entity which directly affects or is affected by the project, positively or negatively 17 | &&& E.g. Customers, team members, management, internal departments, sponsors/investors, suppliers, partners. regulatory bodies, political groups 18 | &&& Expectations and evaluations of success are important, and may change over the project 19 | && \textbf{Project charter:} Document which formally authorizes the project and contains the project description, objectives, key assumptions, high-level timeline, and stakeholders 20 | &&& Objectives may include overview, cost, design, quality, and schedule 21 | &&&& \textbf{Specific, Measurable, Attainable, Relevant, and Time-based (SMART) objectives:} Appropriate goals of which the success can be evaluated in detailed and measurable ways 22 | 23 | & Results: 24 | && Measurement is useful for: 25 | &&& Tracking resources usage 26 | &&& Tracking progress 27 | &&& Determining completion 28 | &&& Providing insight for future projects 29 | && Quality of results is a balance of scope, cost, and schedule 30 | 31 | \end{easylist} 32 | \clearpage 33 | -------------------------------------------------------------------------------- /bus-361-project-management/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 361: Project Management - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & \textbf{Project:} Venture which is temporary with the goal of creating a unique product, service, or result 13 | && Must be unique, temporary, and uncertain; must have constraints, requirements, coordination, resources, stakeholders 14 | && \textbf{Scope:} Constraint on tasks to be completed and criteria for completion 15 | && \textbf{Operation:} Venture which is ongoing, repeated, within line organization, and certain (have known performance) 16 | && \textbf{Program:} Set of projects which operationalize strategies 17 | 18 | & \textbf{Project life cycle (PLC):} Phase of a project from beginning to end 19 | && \textbf{Project management process groups:} Stage of a project within each life cycle phase, consisting of initialization, planning, execution, monitoring/controlling, and closing 20 | 21 | & \textbf{Knowledge areas:} Scope, time, cost, quality, HR, communication, risk, procurement, stakeholders 22 | 23 | \end{easylist} 24 | \clearpage 25 | -------------------------------------------------------------------------------- /bus-361-project-management/tex/risk-management.tex: -------------------------------------------------------------------------------- 1 | % 2 | % BUS 361: Project Management - A Course Overview 3 | % Section: Risk Management 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Risk Management} 9 | \label{sec:risk-management} 10 | \begin{easylist} 11 | 12 | & \textbf{Risk:} Uncertain event or condition which affects a project objective positively or negatively 13 | && Often occurs when assumptions are made 14 | && Types of risk: Financial, technical, commercial success, execution, contractual/legal 15 | 16 | & \textbf{Risk management:} Identification, analysis, response to, and monitoring of risk factors 17 | && Maximization of positive events, and minimizing likelihood and consequences of negative events 18 | 19 | & Methods of identifying risk: 20 | && WBS analysis 21 | && Reviews of scope, stakeholders, and documents 22 | && SWOT analysis 23 | && Interviews and research 24 | 25 | & Process of assessing risk: 26 | && Identify probability of occurrence and potential consequences (both on a scale of Low, Guarded, Moderate, High, or Extreme) 27 | && Equation: Event risk = Probability $\times$ Consequences 28 | && Subjective 29 | && \textbf{Probability/Likelihood Impact Matrix:} Organizational tool to graph the likelihood and consequences of risks for prioritization and comparison 30 | 31 | & Responses to risk: 32 | && \textbf{Avoidance:} Eliminating or limiting a risk through modifying limitations 33 | && \textbf{Mitigation:} Eliminating or limiting a risk through limiting the probability or impact of a risk (e.g. simplifying processes, adding tests) 34 | && \textbf{Transfer:} Eliminating or limiting a risk through shifting ownership or responsibility of the risk to another entity (e.g. warranties, contracts with fixed cost pricing) 35 | && \textbf{Acceptance:} Eliminating or limiting a risk through being ready for the consequences (e.g. contingencies, fall-back plans, and workarounds) 36 | && May alter WBS, network diagram, budget, scope, contingency reserves, etc. 37 | 38 | & Monitoring risk: 39 | && \textbf{Risk register:} Document which tracks risks, analyses, and response plans 40 | && Monitor and report regularly (at least once per month) 41 | && Stay updated on timelines for monitoring risks 42 | && Track higher risks more frequently/closely 43 | 44 | \end{easylist} 45 | \clearpage 46 | -------------------------------------------------------------------------------- /cmpt-120-introduction-to-computing-science-and-programming-i/README.md: -------------------------------------------------------------------------------- 1 | # CMPT 120 2 | 3 | This Microsoft Word document requires the following fonts: 4 | 5 | * Lucida Bright 6 | * Nexa Bold 7 | * Nexa Light -------------------------------------------------------------------------------- /cmpt-120-introduction-to-computing-science-and-programming-i/cmpt-120.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-120-introduction-to-computing-science-and-programming-i/cmpt-120.docx -------------------------------------------------------------------------------- /cmpt-120-introduction-to-computing-science-and-programming-i/cmpt-120.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-120-introduction-to-computing-science-and-programming-i/cmpt-120.pdf -------------------------------------------------------------------------------- /cmpt-125-introduction-to-computing-science-and-programming-ii/README.md: -------------------------------------------------------------------------------- 1 | # CMPT 125 2 | 3 | This Microsoft Word document requires the following fonts: 4 | 5 | * Lucida Bright 6 | * Nexa Bold 7 | * Nexa Light -------------------------------------------------------------------------------- /cmpt-125-introduction-to-computing-science-and-programming-ii/cmpt-125.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-125-introduction-to-computing-science-and-programming-ii/cmpt-125.docx -------------------------------------------------------------------------------- /cmpt-125-introduction-to-computing-science-and-programming-ii/cmpt-125.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-125-introduction-to-computing-science-and-programming-ii/cmpt-125.pdf -------------------------------------------------------------------------------- /cmpt-150-introduction-to-computer-design_partial/cmpt-150.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-150-introduction-to-computer-design_partial/cmpt-150.pdf -------------------------------------------------------------------------------- /cmpt-150-introduction-to-computer-design_partial/cmpt-150.tex: -------------------------------------------------------------------------------- 1 | % 2 | %% Author: Jeffrey Leung 3 | %% Last edited: 2015-07-09 4 | %% 5 | %% This document contains a course overview of CMPT 150. 6 | % 7 | 8 | \documentclass[titlepage]{article} 9 | 10 | \usepackage[dvipsnames]{xcolor} % Clashes with circuitikz. 11 | 12 | \usepackage{amsmath} 13 | \usepackage{amssymb} 14 | \usepackage{arydshln} 15 | \usepackage{circuitikz} 16 | \usepackage[ampersand]{easylist} 17 | \usepackage[colorlinks=true, linkcolor=NavyBlue]{hyperref} 18 | \usepackage{indentfirst} 19 | \usepackage{verbatim} 20 | 21 | \renewcommand{\arraystretch}{1.2} 22 | 23 | \title{CMPT 150: Introduction to Computer Design \\\medskip \Large A Course Overview} 24 | \author{Jeffrey Leung \\ Simon Fraser University} 25 | \date{Summer 2015} 26 | 27 | \begin{document} 28 | 29 | \begin{comment} 30 | \begin{titlepage} 31 | \begin{center} 32 | 33 | Simon Fraser University\\ 34 | \vspace{3cm} 35 | \textsc{\LARGE CMPT 150:\\\vspace{.5cm}Introduction to Computer Design}\\ 36 | \vspace{1.5cm} 37 | \textsc{\Large A Course Overview}\\ 38 | \vspace{7cm} 39 | \large Jeffrey Leung 40 | 41 | \end{center} 42 | \end{titlepage} 43 | \end{comment} 44 | 45 | \maketitle 46 | \tableofcontents 47 | \clearpage 48 | 49 | \input{./tex/section_1.tex} 50 | \input{./tex/section_2.tex} 51 | \input{./tex/section_3.tex} 52 | \input{./tex/section_4.tex} 53 | 54 | \end{document} -------------------------------------------------------------------------------- /cmpt-150-introduction-to-computer-design_partial/tex/section_2.tex: -------------------------------------------------------------------------------- 1 | % 2 | %% Author: Jeffrey Leung 3 | %% Last edited: 2015-07-05 4 | %% 5 | %% This document contains section 2 (digital systems) of a course overview of CMPT 150. 6 | % 7 | 8 | \section{Digital Systems} 9 | 10 | \begin{easylist}[itemize] 11 | 12 | & \emph{Digital system:} Electronic circuit which processes discrete signals representing logic values 13 | & Computer design: 14 | && Instruction set architecture involves the selection, design, and representation of a set of instructions and of some basic data types 15 | && Construction of a circuit that can: 16 | &&& Interpret binary sequences representing instructions 17 | &&& Perform computations on binary sequences as directed by instructions 18 | &&& Express results as binary encoded data 19 | 20 | & \emph{Register:} Component which stores one binary sequence 21 | && \emph{Memory:} A 1-dimensional array of registers 22 | & \emph{Bus:} Component which transmits one binary sequence 23 | && \emph{Signal line:} A bus of size 1 24 | 25 | & \emph{Registry Transfer Notation:} Convention for naming registers 26 | && Register names begin with an uppercase letter \\ 27 | Bus names begin with a lowercase letter 28 | && Bit positions are specified by a number in parenthesis after the name 29 | &&& E.g. RNG(MSB), abc(12) 30 | && \emph{Field:} Sequence of bits within a binary sequence written as \\ NAME(start:end) where the bit positions include the start and end positions 31 | &&& E.g. For INST = 0110 1101 0100 0000, \\ 32 | INST(15:8) = 0110 1101 33 | &&& E.g. For $R = 10010.011_{2}$, \\ 34 | R(INT) = R(8:3) and R(FRAC) = R(2:0) 35 | 36 | %TODO CMPT 150 lecture notes, page 6 37 | 38 | \end{easylist} -------------------------------------------------------------------------------- /cmpt-150-introduction-to-computer-design_partial/tex/section_3.tex: -------------------------------------------------------------------------------- 1 | % 2 | %% Author: Jeffrey Leung 3 | %% Last edited: 2015-07-05 4 | %% 5 | %% This document contains section 3 (Assembly Programming) of a course overview of CMPT 150. 6 | % 7 | 8 | \section{Assembly Programming} 9 | 10 | \begin{easylist}[itemize] 11 | 12 | & x 13 | 14 | %TODO CMPT 150 lecture notes, page 6 15 | 16 | \end{easylist} -------------------------------------------------------------------------------- /cmpt-150-introduction-to-computer-design_partial/tex/section_4.tex: -------------------------------------------------------------------------------- 1 | % 2 | %% Author: Jeffrey Leung 3 | %% Last edited: 2015-07-09 4 | %% 5 | %% This document contains section 4 (Boolean Algebra) of a course overview of CMPT 150. 6 | % 7 | 8 | \section{Boolean Algebra} 9 | \subsection{Introduction} 10 | \begin{easylist}[itemize] 11 | 12 | & A specific input creates a specific output 13 | & Values can be 0 (false) or 1 (true) 14 | & Boolean expressions: 15 | && Evaluate to 0 or 1 16 | && Function table: Representation of all possible inputs and their corresponding outputs displayed in a table 17 | 18 | \Deactivate 19 | \begin{table}[!htb] 20 | \centering 21 | \caption{Example of a function table} 22 | \begin{tabular}{ c c | c } 23 | $I_{2}$ & $I_{1}$ & Sum \\ 24 | \hline 25 | 0 & 0 & 0 \\ 26 | 0 & 1 & 1 \\ 27 | 0 & 2 & 2 \\ 28 | \vdots & \vdots & \vdots \\ 29 | 9 & 8 & 17 \\ 30 | 9 & 9 & 18 31 | \end{tabular} 32 | \end{table} 33 | 34 | %TODO CMPT 150 notes, page 16 35 | 36 | \end{easylist} -------------------------------------------------------------------------------- /cmpt-150-introduction-to-computer-design_partial/tex/section_5.tex: -------------------------------------------------------------------------------- 1 | % 2 | %% Author: Jeffrey Leung 3 | %% Last edited: 2015-07-09 4 | %% 5 | %% This document contains section 5 (Circuits) of a course overview of CMPT 150. 6 | % 7 | 8 | \section{Circuits} 9 | 10 | \begin{easylist}[itemize] 11 | 12 | & x 13 | 14 | \end{easylist} -------------------------------------------------------------------------------- /cmpt-213-object-oriented-design-in-java/cmpt-213.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-213-object-oriented-design-in-java/cmpt-213.pdf -------------------------------------------------------------------------------- /cmpt-213-object-oriented-design-in-java/cmpt-213.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 213: Object Oriented Design in Java - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage{graphicx} 33 | \graphicspath{ {img/} } 34 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 35 | \usepackage{listings} 36 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 37 | \usepackage{textcomp} % Allows the use of \textbullet with the font 38 | \usepackage{verbatim} 39 | 40 | \renewcommand{\arraystretch}{1.2} 41 | \renewcommand{\familydefault}{\sfdefault} 42 | 43 | \title{CMPT 213: Object Oriented Design in Java \\\medskip \Large A Course Overview} 44 | \author{Jeffrey Leung \\ Simon Fraser University} 45 | \date{Spring 2020} 46 | 47 | \begin{document} 48 | 49 | \maketitle 50 | \tableofcontents 51 | \clearpage 52 | 53 | \input{./tex/introduction} 54 | \input{./tex/java} 55 | 56 | \input{./tex/object-oriented-design} 57 | \input{./tex/design-patterns} 58 | \input{./tex/code-smells} 59 | 60 | \input{./tex/interface-quality} 61 | \input{./tex/defensive-programming} 62 | 63 | \input{./tex/unified-markup-language} 64 | \input{./tex/rest-apis} 65 | 66 | \end{document} 67 | -------------------------------------------------------------------------------- /cmpt-213-object-oriented-design-in-java/tex/code-smells.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 213: Object Oriented Design in Java - A Course Overview 3 | % Section: Code Smells 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Code Smells} 9 | \label{sec:code-smells} 10 | \begin{easylist} 11 | 12 | & If a function is longer than 25 lines, separate it into multiple functions 13 | 14 | & If there are many comments, replace them with variables or functions 15 | 16 | & If expressions are complex/difficult to read, replace them with variables or functions 17 | 18 | \end{easylist} 19 | \clearpage 20 | -------------------------------------------------------------------------------- /cmpt-213-object-oriented-design-in-java/tex/defensive-programming.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 213: Object Oriented Design in Java - A Course Overview 3 | % Section: Defensive Programming 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Defensive Programming} 9 | \label{sec:defensive-programming} 10 | \begin{easylist} 11 | 12 | & \textbf{Precondition:} Guarantee before a method is called 13 | && Enforced by client, or else the class may have unintended behaviour 14 | & \textbf{Postcondition:} Guarantee after a method is called 15 | && Enforced by caller 16 | 17 | & Implementation has a contract for the client to fulfill 18 | && \textbf{Design by Contract:} Client is expected to enforce contract 19 | &&& Less error checking 20 | && \textbf{Defensive Programming:} Paradigm where implementation checks for contractual violations and is responsible for maintaining correct state 21 | &&& Quicker error catching 22 | 23 | & Use assert to maintain consistent internal state 24 | 25 | \end{easylist} 26 | \clearpage 27 | -------------------------------------------------------------------------------- /cmpt-213-object-oriented-design-in-java/tex/interface-quality.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 213: Object Oriented Design in Java - A Course Overview 3 | % Section: Interface Quality 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Interface Quality} 9 | \label{sec:interface-quality} 10 | \begin{easylist} 11 | 12 | & 4 characteristics of interface quality: 13 | && \textbf{Cohesion:} Characteristic of an entity which has all its interfaces based on the same abstraction 14 | &&& \textbf{Single Responsibility Principle:} A class should only have one responsibility and reason to change 15 | &&& Break up classes if violated 16 | && \textbf{Completion/convenience:} Characteristics of entity which has all relevant and necessary features 17 | && \textbf{Clarity:} Characteristic of an entity which is easy to understand 18 | &&& Intention-revealing member names 19 | &&& Meaningful and relevant abstractions 20 | && \textbf{Consistency:} Characteristic of an entity which is designed with consistent interactions 21 | 22 | & Other evaluations of quality: 23 | && Whether constructors create fully-formed objects 24 | && Whether each idea has one name 25 | && Whether command-query separation is followed 26 | && Whether Iterable/Comparable are implemented when appropriate 27 | && Whether encapsulation is respected 28 | 29 | \end{easylist} 30 | \clearpage 31 | -------------------------------------------------------------------------------- /cmpt-213-object-oriented-design-in-java/tex/rest-apis.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 213: Object Oriented Design in Java - A Course Overview 3 | % Section: REST APIs 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{REST APIs} 9 | \label{sec:rest-apis} 10 | \begin{easylist} 11 | 12 | & \textbf{Application Program Interface:} Protocol for communicating with a program component 13 | && \textbf{Create-Read-Update-Delete (CRUD):} Set of general operations to manage an entity 14 | && \textbf{Idempotent:} Operation which has the same response when executed multiple times 15 | 16 | & \textbf{Hypertext Transfer Protocol (HTTP):} 17 | && Ports: 18 | &&& HTTP port: 80 19 | &&& HTTPS port: 443 20 | 21 | & \textbf{Model View Controller API:} Web application architecture where server sends fully formed HTML pages 22 | 23 | & \textbf{Representational State Transfer (REST):} Web application architecture standard where client and server send and receive chunks of data 24 | && Client sends a request to the server's endpoint 25 | && Improves performance by caching 26 | && \textbf{Uniform interface:} Interface which returns self-descriptive resources 27 | && \textbf{Stateless:} Interface where all information about each request is contained, and no connection state is maintained by the application 28 | && \textbf{Cacheable:} Implementation detail where as much information as possible is cached to minimize server load 29 | 30 | & Request components: 31 | && \textbf{Method:} Action by an endpoint 32 | &&& POST, DELETE, GET, PUT 33 | && \textbf{Uniform Resource Locator (URL):} Endpoint to send the request to 34 | && \textbf{Path variable:} Data within a URL 35 | && \textbf{Query string:} Data as a non-hierarchical key-value pairs exposed in the URL, after a question mark 36 | && Only available for GET requests 37 | && \textbf{Header:} Data as a key-pair value 38 | && \textbf{Body:} Data as a block 39 | 40 | & Response components: 41 | && \textbf{Response status code:} 42 | && E.g. 200, 201, 401, 403, 404, 500 43 | 44 | \end{easylist} 45 | \subsection{Servers} 46 | \label{subsec:rest-apis:servers} 47 | \begin{easylist} 48 | 49 | & \textbf{Server:} Program in web development which exposes an API to consume 50 | 51 | & \textbf{Controller:} Component in a server which manages the endpoints and parameters 52 | 53 | \end{easylist} 54 | \clearpage 55 | -------------------------------------------------------------------------------- /cmpt-213-object-oriented-design-in-java/tex/unified-markup-language.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 213: Object Oriented Design in Java - A Course Overview 3 | % Section: Unified Modeling Language 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Unified Modeling Language} 9 | \label{sec:unified-modeling-language} 10 | \begin{easylist} 11 | 12 | & \textbf{Class Responsibility and Collaborator (CRC) Card:} Diagram showing the name, responsibilities, and dependencies of a class 13 | 14 | & \textbf{Unified Modeling Language:} Diagram of classes and their relationships 15 | 16 | & Each entity may have name, attributes, and/or operations 17 | && Operations: 18 | &&& Permissions are public (+) / protected (\#) / private (-) 19 | &&& Example: \lstinline!+ setLocation(Location) : void! 20 | && Stereotype descriptor: Label above a UML entity 21 | &&& Use to declare an interface 22 | 23 | & Relationships: 24 | && Has-a: Arrow with a solid line 25 | && Uses: Arrow with a dotted line 26 | && Is-a: Arrow with a solid line and closed head 27 | && Implements an interface: Arrow with a dotted line and closed head 28 | 29 | \end{easylist} 30 | \clearpage 31 | -------------------------------------------------------------------------------- /cmpt-276-introduction-to-software-engineering/cmpt-276.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-276-introduction-to-software-engineering/cmpt-276.pdf -------------------------------------------------------------------------------- /cmpt-276-introduction-to-software-engineering/cmpt-276.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 276: Introduction to Software Engineering - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\textperiodcentered\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\textperiodcentered\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage[T1]{fontenc} % For braces 31 | \usepackage{geometry} 32 | \geometry{margin=1.2in} 33 | \usepackage{graphicx} 34 | \graphicspath{ {img/} } 35 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 36 | \usepackage{listings} 37 | \lstset 38 | { 39 | language=C++, 40 | breaklines=true, 41 | showstringspaces=false 42 | } 43 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 44 | \usepackage{textcomp} % Allows the use of \textbullet with the font 45 | \usepackage{verbatim} 46 | 47 | \renewcommand{\arraystretch}{1.2} 48 | \renewcommand{\familydefault}{\sfdefault} 49 | 50 | \title{CMPT 276: Introduction to Software Engineering \\\medskip \Large A Course Overview} 51 | \author{Jeffrey Leung \\ Simon Fraser University} 52 | \date{Spring 2016} 53 | 54 | \begin{document} 55 | 56 | \maketitle 57 | \tableofcontents 58 | \clearpage 59 | 60 | \input{./tex/introduction.tex} 61 | \input{./tex/version-control.tex} 62 | \input{./tex/unit-testing.tex} 63 | \input{./tex/cpp.tex} 64 | \input{./tex/cpp-rest-sdk.tex} 65 | 66 | \end{document} 67 | -------------------------------------------------------------------------------- /cmpt-276-introduction-to-software-engineering/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 276: Introduction to Software Engineering - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & \emph{Virtual machine:} Software which emulates bare hardware, on which an operating system can be run 13 | && Multiple operating systems can be running on the same physical machine (`guests' running on a `host') 14 | && Can allow for a standardized development environment 15 | && Many machine instructions have no performance penalty; calling the operating system is slower 16 | 17 | \end{easylist} 18 | \clearpage -------------------------------------------------------------------------------- /cmpt-276-introduction-to-software-engineering/tex/unit-testing.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 276: Introduction to Software Engineering - A Course Overview 3 | % Section: Unit Testing 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Unit Testing} 9 | \label{sec:unit-testing} 10 | \begin{easylist} 11 | 12 | & \emph{Unit test:} Method of software programming in which the smallest dividable groups of modules are tested 13 | 14 | & Structure: 15 | && Suites are a collection of fixture(s) and test fixture(s) 16 | && Fixture classes provide setup and cleanup for testing an operation 17 | && Test fixtures are a collection of tests, before which a specified fixture is created and after which the fixture is deleted 18 | 19 | && After each test case, the expected results are compared with the actual results 20 | 21 | & Types of tests: 22 | && Correct usages 23 | && Repeated usages 24 | && Incorrect usages (e.g. too many/few parameters) 25 | && Edge cases (e.g. out-of-bounds, 0, invalid characters) 26 | && Exploits (e.g. database injections) 27 | 28 | & Characteristics to test: 29 | && Input validation 30 | && Input sanitation 31 | && States after an operation 32 | && Usability 33 | && Performance 34 | 35 | \end{easylist} 36 | \clearpage 37 | -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/cmpt-300.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/cmpt-300.pdf -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/cmpt-300.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 300: Operating Systems I - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage{amsmath} 10 | \usepackage{caption} 11 | \usepackage[ampersand]{easylist} 12 | \ListProperties( 13 | Progressive*=5ex, 14 | Space=5pt, 15 | Space*=5pt, 16 | Style1*=\textbullet\ \ , 17 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 18 | Style3*=\textasteriskcentered\ \ , 19 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 20 | Style5*=\textbullet\ \ , 21 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 22 | Style7*=\textasteriskcentered\ \ , 23 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 24 | Hide1=1, 25 | Hide2=2, 26 | Hide3=3, 27 | Hide4=4, 28 | Hide5=5, 29 | Hide6=6, 30 | Hide7=7, 31 | Hide8=8 ) 32 | \usepackage{geometry} 33 | \geometry{margin=1.2in} 34 | \usepackage{graphicx} 35 | \graphicspath{ {img/} } 36 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 37 | \usepackage{listings} 38 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 39 | \usepackage{textcomp} % Allows the use of \textbullet with the font 40 | \usepackage{tikz} 41 | \usepackage{verbatim} 42 | 43 | \renewcommand{\arraystretch}{1.5} 44 | \renewcommand{\familydefault}{\sfdefault} 45 | 46 | \title{CMPT 300: Operating Systems I \\\medskip \Large A Course Overview} 47 | \author{Jeffrey Leung \\ Simon Fraser University} 48 | \date{Fall 2018} 49 | 50 | \begin{document} 51 | 52 | \maketitle 53 | \tableofcontents 54 | \clearpage 55 | 56 | \input{./tex/introduction.tex} 57 | \input{./tex/processes.tex} 58 | \input{./tex/scheduling.tex} 59 | \input{./tex/interprocess-communication.tex} 60 | \input{./tex/synchronization.tex} 61 | 62 | \input{./tex/deadlocks.tex} 63 | \input{./tex/memory-management.tex} 64 | \input{./tex/virtual-memory.tex} 65 | 66 | \input{./tex/filesystems.tex} 67 | 68 | \end{document} -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/ipc-message-passing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/ipc-message-passing.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/page-table-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/page-table-1.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/page-table-2-tlb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/page-table-2-tlb.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/page-table-3-hierarch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/page-table-3-hierarch.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/page-table-4-hierarch-access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/page-table-4-hierarch-access.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/page-table-5-hashed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/page-table-5-hashed.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/page-table-6-inverted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/page-table-6-inverted.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/process-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/process-data.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/scheduling-queues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/scheduling-queues.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/structure-hybrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/structure-hybrid.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/structure-layered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/structure-layered.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/structure-microkernel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/structure-microkernel.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/structure-modular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/structure-modular.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/structure-monolithic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/structure-monolithic.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/img/system-call-interface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-300-operating-systems-i/img/system-call-interface.png -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/tex/_template.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 300: Operating Systems I - A Course Overview 3 | % Section: 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{} 9 | \label{} 10 | \begin{easylist} 11 | 12 | 13 | 14 | \end{easylist} 15 | \clearpage -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/tex/filesystems.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 300: Operating Systems I - A Course Overview 3 | % Section: Filesystems 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Filesystems} 9 | \label{sec:filesystems} 10 | \begin{easylist} 11 | 12 | & Cyclic links can cause infinite loops during searches 13 | 14 | & Mounting: 15 | && 16 | 17 | \end{easylist} 18 | \clearpage -------------------------------------------------------------------------------- /cmpt-300-operating-systems-i/tex/interprocess-communication.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 300: Operating Systems I - A Course Overview 3 | % Section: Inter-Process Communication 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Inter-Process Communication} 9 | \label{sec:interprocess} 10 | \begin{easylist} 11 | 12 | & \textbf{Inter-process communication (IPC):} Sharing of information from one process to another 13 | && Purposes: 14 | &&& Faster computation 15 | &&& Increased modularity 16 | &&& Increased convenience 17 | 18 | & \textbf{Shared memory:} Method of IPC in which a single memory space is used by multiple processes 19 | && Processes attach the shared memory space created by another process to their own address space 20 | && Pros: Fast, convenient 21 | && Cons: Requires synchronization to prevent conflicts 22 | && Implementations (POSIX): \lstinline[columns=fixed]{shm_open()} to create a shared memory space and \lstinline[columns=fixed]{mmap()} to create a mapping from a process to the shared space 23 | 24 | & \textbf{Message passing:} Method of IPC in which a process sends a message to another process through the kernel 25 | && Can be to a process directly or can use constructs such as ports, mailboxes 26 | && Process can block until a response is received 27 | && Unsent messages may buffer and be placed in a waiting queue 28 | && Diagram: See figure~\ref{fig:ipc-message-passing} 29 | && Pros: No conflicts possible 30 | && Cons: Slow, requires overhead through system calls and kernel 31 | 32 | \begin{figure}[!htb] 33 | \centering 34 | \includegraphics[width=0.2\textwidth]{ipc-message-passing} 35 | \caption{Diagram of message passing} 36 | \label{fig:ipc-message-passing} 37 | \end{figure} 38 | 39 | \end{easylist} 40 | \clearpage -------------------------------------------------------------------------------- /cmpt-310-artificial-intelligence-survey/course-overview/cmpt-310.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-310-artificial-intelligence-survey/course-overview/cmpt-310.pdf -------------------------------------------------------------------------------- /cmpt-310-artificial-intelligence-survey/course-overview/cmpt-310.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 310: Artificial Intelligence - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage{amsfonts} 10 | \usepackage{amsmath} 11 | \usepackage[skip=10pt]{caption} 12 | \usepackage[ampersand]{easylist} 13 | \ListProperties( 14 | Progressive*=5ex, 15 | Space=5pt, 16 | Space*=5pt, 17 | Style1*=\textbullet\ \ , 18 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 19 | Style3*=\textasteriskcentered\ \ , 20 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 21 | Style5*=\textbullet\ \ , 22 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 23 | Style7*=\textasteriskcentered\ \ , 24 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 25 | Hide1=1, 26 | Hide2=2, 27 | Hide3=3, 28 | Hide4=4, 29 | Hide5=5, 30 | Hide6=6, 31 | Hide7=7, 32 | Hide8=8 ) 33 | \usepackage{fancyvrb} 34 | \usepackage{forest} 35 | \useforestlibrary{edges} 36 | \usepackage{geometry} 37 | \geometry{margin=1.2in} 38 | \usepackage{graphicx} 39 | \graphicspath{ {img/} } 40 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 41 | \usepackage{listings} 42 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 43 | \usepackage{mathtools} 44 | \usepackage{pdflscape} 45 | \usepackage{tabularx} 46 | \usepackage{textcomp} % Allows the use of \textbullet with the font 47 | \usepackage{tikz} 48 | \usetikzlibrary{positioning,shapes,arrows} 49 | \usepackage{verbatim} 50 | 51 | \renewcommand{\arraystretch}{1.4} 52 | \renewcommand{\familydefault}{\sfdefault} 53 | 54 | \title{CMPT 310: Artificial Intelligence \\\medskip \Large A Course Overview} 55 | \author{Jeffrey Leung \\ Simon Fraser University} 56 | \date{Spring 2019} 57 | 58 | \begin{document} 59 | 60 | \maketitle 61 | \tableofcontents 62 | \clearpage 63 | 64 | \input{./tex/introduction.tex} 65 | \input{./tex/problem-solving.tex} 66 | \input{./tex/search-algorithms.tex} 67 | \input{./tex/game-playing.tex} 68 | \input{./tex/constraint-satisfaction-problems.tex} 69 | \input{./tex/logical-inference.tex} 70 | \input{./tex/probability.tex} 71 | \input{./tex/machine-learning.tex} 72 | \input{./tex/flashcard-questions.tex} 73 | 74 | \end{document} 75 | -------------------------------------------------------------------------------- /cmpt-310-artificial-intelligence-survey/course-overview/tex/logical-inference.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 310: Artificial Intelligence - A Course Overview 3 | % Section: Logical Inference 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Logical Inference} 9 | \label{sec:logical-inference} 10 | \begin{easylist} 11 | 12 | & \textbf{Entailment:} Logical connective which means the result is a consequence of the input 13 | && Notation: $\alpha \models \beta$ 14 | 15 | & \textbf{Satisfiability:} Whether a model exists where the logical sentence is true 16 | && Includes constraint satisfaction problems 17 | && Searches such as: Backtracking, local 18 | && \textbf{DPLL algorithm:} Backtracking algorithm which permutes the variables until all clauses are satisfied 19 | &&& \textbf{Pure symbol:} Symbol which is either never negated or always negated in each clause it appears 20 | &&& \textbf{Unit clause:} Clause which only contains a single literal 21 | && \textbf{WalkSAT algorithm:} Local non-deterministic algorithm which chooses a random false variable and changes it to true to attempt to find a solution 22 | & \textbf{Deduction/Inference:} Given a knowledge base, whether a logical sentence is true (i.e. $KB \models S$) 23 | && $KB \models S$ if and only if $KB \land \lnot S$ is unsatisfiable 24 | && \textbf{Knowledge base:} Collection of known true sentences 25 | 26 | & \textbf{Conjuctive Normal Form (CNF):} Form of a logical statement which is a conjunction of disjunction(s) of literals 27 | && Steps to reduce a statement to CNF: 28 | &&& Replace equivalencies with a conjunction of implications 29 | &&& Replace implications with $\lnot A \lor B$ 30 | &&& Use DeMorgan's Law to apply negations to clauses 31 | &&& Use the Distributive Law to reduce clauses to CNF 32 | 33 | & \textbf{Inference by resolution:} Process to reduce a set of CNF statements 34 | && Given a pair of clauses with complementary literals, resolve them to combine the clauses 35 | 36 | \end{easylist} 37 | \clearpage 38 | -------------------------------------------------------------------------------- /cmpt-310-artificial-intelligence-survey/course-overview/tex/problem-solving.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 310: Artificial Intelligence - A Course Overview 3 | % Section: Problem Solving 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Problem Solving} 9 | \label{sec:problem-solving} 10 | \begin{easylist} 11 | 12 | & Environment: Observable, deterministic, discrete 13 | & \textbf{State}: Possible arrangement of entities and agents in the environment 14 | && Transition: Change from an initial state to another state 15 | &&& Successor function: Mapping from the current state and action to a new state 16 | &&&& Notation: $(\textrm{state}, \textrm{action}) \rightarrow \textrm{state}$ 17 | &&& Goal state: Desired end state 18 | &&& Goal test: Condition which determines whether or not the current state is the goal state 19 | &&&& Notation: $(\textrm{state}) \rightarrow \textrm{true/false}$ 20 | &&& Path cost: Numeric cost to take a path 21 | &&& Includes the possibility of no change 22 | && E.g. For a two-square grid of a possibly dirty carpet with a vacuum cleaner, there are 4 possibilities for the dirty squares and 2 possibilities for the vacuum cleaner 23 | 24 | \end{easylist} 25 | \clearpage 26 | -------------------------------------------------------------------------------- /cmpt-310-artificial-intelligence-survey/minimax-worksheet/minimax-worksheet-solutions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-310-artificial-intelligence-survey/minimax-worksheet/minimax-worksheet-solutions.pdf -------------------------------------------------------------------------------- /cmpt-310-artificial-intelligence-survey/minimax-worksheet/minimax-worksheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-310-artificial-intelligence-survey/minimax-worksheet/minimax-worksheet.pdf -------------------------------------------------------------------------------- /cmpt-320-social-implications-of-a-computerized-society/cmpt-320.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-320-social-implications-of-a-computerized-society/cmpt-320.pdf -------------------------------------------------------------------------------- /cmpt-320-social-implications-of-a-computerized-society/cmpt-320.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 320: Social Implications of a Computerized Society - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage{graphicx} 33 | \graphicspath{ {img/} } 34 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 35 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 36 | \usepackage{textcomp} % Allows the use of \textbullet with the font 37 | \usepackage{verbatim} 38 | 39 | \renewcommand{\arraystretch}{1.2} 40 | \renewcommand{\familydefault}{\sfdefault} 41 | 42 | \title{CMPT 320: Social Implications of a Computerized Society \\\medskip \Large A Course Overview} 43 | \author{Jeffrey Leung \\ Simon Fraser University} 44 | \date{Fall 2018} 45 | 46 | \begin{document} 47 | 48 | \maketitle 49 | \tableofcontents 50 | \clearpage 51 | 52 | \input{./tex/introduction.tex} 53 | \input{./tex/privacy.tex} 54 | \input{./tex/ethics.tex} 55 | \input{./tex/freedom-of-speech.tex} 56 | \input{./tex/intellectual-property.tex} 57 | \input{./tex/life-with-technology.tex} 58 | \input{./tex/computer-crime.tex} 59 | \input{./tex/computers-in-the-workplace.tex} 60 | \input{./tex/economic-impact-of-technology.tex} 61 | 62 | \end{document} -------------------------------------------------------------------------------- /cmpt-320-social-implications-of-a-computerized-society/tex/computers-in-the-workplace.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 320: Social Implications of a Computerized Society - A Course Overview 3 | % Section: Computers in the Workplace 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Computers in the Workplace} 9 | \label{sec:computers-in-the-workplace} 10 | \begin{easylist} 11 | 12 | & Remote work/telecommuting: 13 | && Benefits for employees: 14 | &&& Flexibility in hours and locations 15 | &&& Increased productivity, satisfaction 16 | &&& No commuting expenses 17 | && Benefits for employers: 18 | &&& Less office space and equipment required 19 | &&& Allows work to continue regardless of weather 20 | && Benefits for society: 21 | &&& Less traffic, pollution, stress 22 | && Cons: 23 | &&& Difficulty in communication, coordination 24 | &&& Less loyalty 25 | &&& Unnatural work hours 26 | &&& Office space costs paid by employee 27 | &&& Security risks of personal and work material on same computer 28 | 29 | & Issues created by techology in the workplace: 30 | && Increased distraction, anxiety, email load 31 | && Increased work load, possible sleep deprivation (average American worker puts in 200 hours more per year than in 1973) 32 | 33 | & Employee crime: 34 | && \textbf{Embezzlement:} Theft of company property by an employee responsible for the property 35 | && \textbf{Logic bomb:} Software which destroys critical files or data after the departure of an employee 36 | 37 | & Types of work and connections: 38 | && \textbf{Sharing economy:} Network of people providing goods and services (e.g. Craigslist, AirBnB, Car2Go) 39 | && \textbf{Contractor:} Temporary worker who is not entitled to employee benefits but may have higher pay 40 | &&& Company has relatively less responsibility to control and direct the operation of the task 41 | 42 | & Miscellaneous effects of technology on work: 43 | && Ability to research company beforehand and apply remotely 44 | && Increased hiring screening 45 | && Ability to monitor employees during work through data entry, phone records, surveillance cameras 46 | &&& Rules against specific employee communications exist (e.g. working condition discussions, union activities, whistle blowing) 47 | && Ability to monitor employees' social media outlets and punish them for inappropriate behaviour 48 | 49 | \end{easylist} 50 | \clearpage -------------------------------------------------------------------------------- /cmpt-320-social-implications-of-a-computerized-society/tex/freedom-of-speech.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 320: Social Implications of a Computerized Society - A Course Overview 3 | % Section: Freedom of Speech 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Freedom of Speech} 9 | \label{sec:freedom-of-speech} 10 | \begin{easylist} 11 | 12 | & \textbf{Freedom of speech:} Ability to express opinions without restraint 13 | && Distinguished from action (e.g. inciting illegal acts, libel, or threats are not allowed) 14 | && \textbf{Chilling:} Inhibition of a natural or legal right 15 | &&& Laws cannot chill charter rights such as freedom of speech 16 | && Allows discussing and debating to improve social welfare 17 | && Be minimally restrictive (e.g. adults should not be restricted to child-appropriate content) 18 | 19 | & Software protection: 20 | && In 1990s, US government restricted publishing encryption software; judge decided that the source code was classified as speech 21 | 22 | & \textbf{Publisher/broadcaster:} Service which creates and manages content 23 | && Liable for content 24 | && Holds the right to freedom of expression and right not to publish 25 | & \textbf{Common carrier:} Service which hosts content or provides benefits from other entities 26 | && Not liable for content 27 | && Is required to give universal access 28 | & Generally, providers are not liable for illegal uses as long as the service has substantive legal use 29 | 30 | & Improvement in technology and stronger government presence allows for greater censorship 31 | 32 | & \textbf{Spam:} Unwanted targeted electronic communication 33 | && Free speech is not an issue 34 | && Possible economic method for deterrence: Charging a sender to pay 35 | &&& Deters lower-income groups 36 | && Technological method for deterrence: Filters 37 | && Can-Spam bill by US Congress: Requires opt-out option, cannot disguise \textit{From} field 38 | 39 | \end{easylist} 40 | \clearpage -------------------------------------------------------------------------------- /cmpt-320-social-implications-of-a-computerized-society/tex/life-with-technology.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 320: Social Implications of a Computerized Society - A Course Overview 3 | % Section: Life With Technology 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Life With Technology} 9 | \label{sec:life-with-technology} 10 | \begin{easylist} 11 | 12 | & \textbf{Luddite:} People who burned factories due to losing their jobs in the 1800's Industrial Revolution in England 13 | && \textbf{Neo-Luddite:} People who disagree with technology 14 | &&& Reasons: 15 | &&&& Unemployment 16 | &&&& De-skilling 17 | &&&& Removal of social structure 18 | &&&& Social isolation 19 | &&&& Lack of intellectual development 20 | &&&& Environmental damage 21 | &&&& Largest benefits to businesses and governments 22 | 23 | & Information on the internet: 24 | && Increased information consumption 25 | && Ability to be selective with news 26 | && Fake news and external manipulation (e.g. fake websites by Macedonian teenagers in 2016 US presidential election, Facebook removal of pages during 2018 US midterm elections) 27 | && Comment moderation is difficult, expensive, and biased 28 | && 10-point loss in IQ due to distractions by emails and phone calls; check phones every 12 minutes on average 29 | 30 | & Computers in community: 31 | && Efficient surface-level communication and connections 32 | &&& Greater quantity, less quality 33 | &&& Difficult to develop trust (less time off-line) 34 | && Increased transparency and oversharing 35 | && Information available about a person is misleading 36 | && Facebook negatively associated with well-being (American Journal of Epidemiology) 37 | 38 | \end{easylist} 39 | \clearpage -------------------------------------------------------------------------------- /cmpt-354-database-systems-i_partial/Entity-Relationship Diagram Template/Entity-Relationship Diagram.txt: -------------------------------------------------------------------------------- 1 | \usepackage{pdflscape} 2 | \usepackage{tikz-er2} % Entity-relationship diagram 3 | \usetikzlibrary{positioning} 4 | \tikzstyle{every entity} = 5 | [ 6 | draw = blue 7 | ] 8 | \tikzstyle{every attribute} = 9 | [ 10 | draw = red 11 | ] 12 | \tikzstyle{every relationship} = 13 | [ 14 | draw = black 15 | ] 16 | \tikzstyle{every isa} = 17 | [ 18 | draw = green 19 | ] 20 | 21 | 22 | 23 | \begin{landscape} 24 | \begin{figure}[!htb] 25 | \centering 26 | \caption{} 27 | \label{fig:} 28 | 29 | \begin{tikzpicture} 30 | [ 31 | node distance = 1.5cm 32 | ] 33 | 34 | % (Component) can be: 35 | % entity 36 | % attribute 37 | % derived attribute 38 | % relationship 39 | % isa 40 | \node[component] 41 | (componentLabel) 42 | % Can be: 43 | % above=of 44 | % below=of 45 | % right=of 46 | % left=of 47 | % above right=of 48 | % above right=2cm and 3cm of 49 | % etc. 50 | [above=of componentLabel] 51 | % Can be: 52 | % {\key{Name}} - primary key attribute; underlined 53 | {Name} 54 | % Can be: 55 | % edge[<-](componentLabel) - arrow towards this component 56 | % edge[->](componentLabel) - arrow towards the other component 57 | % edge[>=triangle 90](componentLabel) - arrowhead angle set to 90 degrees 58 | % edge[total](componentLabel) - double line 59 | % edge[label=(TEXT)](componentLabel) - edge text 60 | edge(componentLabel); 61 | 62 | % Right-angle edge 63 | \draw[link] 64 | (startComponentLabel.unitCircleAngle) % Begins drawing the line from the spot on the component corresponding to the unit circle angle 65 | % Can be: 66 | % |- - first vertical, then horizontal 67 | % -| - first horizontal, then vertical 68 | |- 69 | node[auto] 70 | {} 71 | (endComponentLabel); 72 | 73 | % Aggregation 74 | \node 75 | [ 76 | rectangle, 77 | draw=gray, 78 | fit=(entityLabel)(relationshipLabel)(entityLabel), % Components to aggregate 79 | inner xsep=0.5cm 80 | ] 81 | {}; 82 | 83 | \end{tikzpicture} 84 | \end{figure} 85 | \end{landscape} -------------------------------------------------------------------------------- /cmpt-354-database-systems-i_partial/Entity-Relationship Diagram Template/tikz-er2.sty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-354-database-systems-i_partial/Entity-Relationship Diagram Template/tikz-er2.sty -------------------------------------------------------------------------------- /cmpt-354-database-systems-i_partial/cmpt-354.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-354-database-systems-i_partial/cmpt-354.pdf -------------------------------------------------------------------------------- /cmpt-354-database-systems-i_partial/tex/_template.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 354: Database Systems I - A Course Overview 3 | % Section: 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{} 9 | \label{} 10 | \begin{easylist} 11 | 12 | 13 | 14 | \end{easylist} 15 | \clearpage -------------------------------------------------------------------------------- /cmpt-354-database-systems-i_partial/tex/data-warehousing-and-mining.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 354: Database Systems I - A Course Overview 3 | % Section: Data Warehousing and Mining 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Data Warehousing and Mining} 9 | \label{sec:data-warehousing-and-mining} 10 | \begin{easylist} 11 | 12 | & Traditional DBMSes are used to main data to record day-to-day operations 13 | && Online Transaction Processing (OLTP): 14 | & Content and historical data is analyzed to identify patterns 15 | && Uses: 16 | &&& Market research to target products to a particular market segment 17 | &&& Decision support for high-level decision-making 18 | && OLAP databases: 19 | 20 | \end{easylist} 21 | \subsection{Data Warehouses} 22 | \label{subsec:data-warehousing-and-mining:data-warehouses} 23 | \begin{easylist} 24 | 25 | & \emph{Data warehouse}: Consolidation of data from multiple databases in order for analysis of global patterns 26 | && Allows high-level decision making covering many aspects of an organization 27 | && Currency of data is not a priority 28 | 29 | & Data is: 30 | && Extracted from databases and other sources (heterogeneous sources) 31 | && Cleaned to minimize errors and missing information 32 | && Transformed to match semantics (semantic integration) 33 | && Loaded into the warehouse (metadata management - data such as load date, source, etc.) 34 | && Indexed for efficiency 35 | && Summarized 36 | 37 | & Issues: 38 | && %TODO 39 | 40 | & 41 | 42 | % NO data mining 43 | 44 | \end{easylist} 45 | \clearpage -------------------------------------------------------------------------------- /cmpt-354-database-systems-i_partial/tex/query-optimization.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 354: Database Systems I - A Course Overview 3 | % Section: Query Optimization 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Query Optimization} 9 | \label{sec:query-optimization} 10 | \begin{easylist} 11 | 12 | & \emph{Query optmization:} Process of finding an equivalent and more efficient query 13 | && Process: 14 | &&& Convert the SQL query to relational algebra 15 | &&& Find equivalent queries and their estimated costs 16 | &&& Choose the most efficient query 17 | && Modern DBMSes automatically optimize queries 18 | 19 | & Process of an unoptimized query: 20 | && Read as much of the first table into main memory as possible 21 | && Scan the second table in the Cartesian product for each block of records in main memory 22 | && Output the resulting records 23 | & Process of an optimized query: 24 | && Apply other operations when/before each Cartesian product/natural join is computed 25 | &&& Selection and projection do not require additional reads/writes 26 | 27 | & Example of a slow query: 28 | \begin{lstlisting} 29 | SELECT C.customerID, C.lastName, A.balance 30 | FROM Customer C, Owns O, Account A 31 | WHERE A.accNumber = O.accNumber AND 32 | C.customerID = O.customerID AND 33 | A.branchName = `London' AND 34 | C.firstName = `Bob' 35 | \end{lstlisting} 36 | 37 | && Process: 38 | &&& Computes the Cartesian product of the three tables 39 | &&& Selects any records which match the given conditions 40 | &&& Projects all columns in the SELECT list (in the final table) 41 | 42 | & Example of a faster query: 43 | \begin{lstlisting} 44 | SELECT C.customerID, C.lastName, A.balance 45 | FROM (SELECT accNumber, balance 46 | FROM Account 47 | WHERE branchName = `London' ) AS A 48 | NATURAL INNER JOIN Owns 49 | NATURAL INNER JOIN 50 | (SELECT customerID, lastname 51 | FROM Customer 52 | WHERE C.firstName = `Bob') AS C 53 | \end{lstlisting} 54 | 55 | && Process: 56 | && Selects all records which match the given conditions 57 | && Projects all columns in the SELECT list (in each separate table) 58 | && Computes the natural join of the three resulting tables 59 | 60 | & Indexing may reduce the cost of a selection (see %TODO indexing, subsection~\ref{}) 61 | 62 | \end{easylist} 63 | \clearpage -------------------------------------------------------------------------------- /cmpt-354-database-systems-i_partial/tex/relational-model.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 354: Database Systems I - A Course Overview 3 | % Section: Relational Model 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Relational Model} 9 | \label{sec:relational-model} 10 | \begin{easylist} 11 | 12 | & \emph{Relational database:} Collection of tables (mathematical concept of a relation 13 | && Tables have unique names; rows represent an entity or relationship 14 | 15 | & \emph{Tuple:} Record/row of a relational database 16 | 17 | & \emph{Relation:} Set of unique tuples 18 | && \emph{Relation instance:} Actual table with a particular set of rows 19 | &&& \emph{Cardinality (relation instance):} Number of tuples in a given relation instance 20 | && \emph{Relation schema:} Column headings of a table 21 | &&& Consists of the names of the relation, the names of the columns, and the domain of each field 22 | &&& \emph{Domain:} Set of possible values 23 | &&&& \emph{Relation instance:} Subset of the Cartesian product of the domains; set of distinct, valid tuples/records 24 | &&&&& \emph{Cartesian product:} All elements in a set paired with all elements in another set 25 | &&&&& I.e. One possible row 26 | &&& E.g. Customer relation: \\ 27 | Customer = \{ sin, firstName, lastName, age, income \} \\ 28 | Domain: integer(9), char(20), char(20), integer, realNumber 29 | && Degree (arity): Number of fields of a relation 30 | 31 | \end{easylist} 32 | \subsection{Relational Models vs. Databases} 33 | \label{subsec:relational-model:relational-models-vs-databases} 34 | \begin{easylist} 35 | 36 | & For differences in terminology, see table~\ref{tab:equivalent-terms-for-relational-models-and-databases} 37 | 38 | \Deactivate 39 | \begin{table}[!htb] 40 | \centering 41 | \caption{Equivalent terms for Relational Models and Databases} 42 | \label{tab:equivalent-terms-for-relational-models-and-databases} 43 | \begin{tabular}{ l l } 44 | Relational models: & Databases: \\ 45 | \hline 46 | Relation schema & Table schema \\ 47 | Relation instance / relation & Table \\ 48 | Field & Column/attribute \\ 49 | Tuple & Record/row 50 | \end{tabular} 51 | \end{table} 52 | \Activate 53 | 54 | \end{easylist} 55 | \clearpage -------------------------------------------------------------------------------- /cmpt-354-database-systems-i_partial/tikz-er2.sty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-354-database-systems-i_partial/tikz-er2.sty -------------------------------------------------------------------------------- /cmpt-373-software-development-methods/cmpt-373.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-373-software-development-methods/cmpt-373.pdf -------------------------------------------------------------------------------- /cmpt-373-software-development-methods/cmpt-373.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 373: Software Development Methods - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage{graphicx} 33 | \graphicspath{ {img/} } 34 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 35 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 36 | \usepackage{textcomp} % Allows the use of \textbullet with the font 37 | \usepackage{verbatim} 38 | 39 | \renewcommand{\arraystretch}{1.2} 40 | \renewcommand{\familydefault}{\sfdefault} 41 | 42 | \title{CMPT 373: Software Development Methods \\\medskip \Large A Course Overview} 43 | \author{Jeffrey Leung \\ Simon Fraser University} 44 | \date{Fall 2019} 45 | 46 | \begin{document} 47 | 48 | \maketitle 49 | \tableofcontents 50 | \clearpage 51 | 52 | \input{./tex/introduction.tex} 53 | \input{./tex/teamwork.tex} 54 | \input{./tex/the-agile-paradigm.tex} 55 | \input{./tex/design-and-architecture.tex} 56 | 57 | \end{document} 58 | -------------------------------------------------------------------------------- /cmpt-373-software-development-methods/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 373: Software Development Methods - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & Course objectives: Gain practical agile experience, limit complexity of large systems 13 | 14 | & Software development activities: Requirements-gathering, design, coding, testing, delivery 15 | 16 | & Team roles: 17 | && \textbf{Project owner:} Team member who understands and manages product vision, and manages the backlog with the goal of maximizing business value 18 | && \textbf{Scrum master:} Team member who guides the cohesion, organization, and performance of the team with the goal of creating a self-organizing agile team 19 | &&& Is an advisor and advocate, not the boss or decision-maker 20 | && \textbf{Team member:} Member who works to deliver the user stories which were chosen 21 | && \textbf{Repository manager (CMPT 373 only):} Team member who enforces code commit process 22 | 23 | \end{easylist} 24 | \clearpage 25 | -------------------------------------------------------------------------------- /cmpt-373-software-development-methods/tex/teamwork.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 373: Software Development Methods - A Course Overview 3 | % Section: Teamwork 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Teamwork} 9 | \label{sec:teamwork} 10 | \begin{easylist} 11 | 12 | & \textbf{Group:} People working on similar tasks without collaborating 13 | & \textbf{Team:} People collaborating on developing trust and making decisions together to achieve a shared objective 14 | 15 | & Team stages: 16 | && \textbf{Forming:} Team stage when members get used to each other 17 | && \textbf{Storming:} Team stage where opinions conflict and members compete 18 | && \textbf{Norming:} Team stage where conflicts are resolved and members are comfortable with effective teamwork 19 | && \textbf{Performing:} Team stage where work is productive and the team works cohesively 20 | && \textbf{Transforming:} Team stage where work is very productive 21 | && \textbf{Adjourning:} Team stage where the project is closed and the team is disbanded 22 | 23 | & Team rules: 24 | && Respect everyone 25 | && Criticize an idea or piece of work, not the person 26 | && Praise in public, criticize in private 27 | && Communicate 28 | && Agree on how decisions will be made 29 | && Avoid groupthink; embrace conflict 30 | 31 | & Advice: 32 | && Be proactive 33 | && Everyone should succeed 34 | &&& Be co-operative not competitive 35 | &&& Express your ideas 36 | && Understand first, then be understood 37 | && Collaborate 38 | &&& Uniformity does not create unity 39 | &&& Value diversity 40 | 41 | \end{easylist} 42 | \clearpage 43 | -------------------------------------------------------------------------------- /cmpt-373-software-development-methods/tex/the-agile-paradigm.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 373: Software Development Methods - A Course Overview 3 | % Section: The Agile Paradigm 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{The Agile Paradigm} 9 | \label{sec:the-agile-paradigm} 10 | \begin{easylist} 11 | 12 | & \textbf{Plan Driven Process / Big Design Up Front (BDUF):} Software planning paradigm which lays out as much detail and timeline as possible at the beginning of the project 13 | && Requires perfect planning to succeed 14 | 15 | & \textbf{Agile/iterative:} Software planning paradigm which constantly changes and improves on previous work 16 | && \textit{Planning-driven} 17 | && Plan and test constantly 18 | && Constantly improved documentation 19 | && \textbf{(User) story:} Feature request which provides value to a stakeholder 20 | && \textbf{Task:} Program changes to advance a story 21 | && \textbf{Backlog:} Prioritized set of stories and tasks which are not currently planned for work 22 | 23 | & \textbf{Sprint:} Period of time during which a set of stories are chosen to complete over the time 24 | && \textbf{Velocity:} Amount of work completed in previous iterations 25 | 26 | & Meetings: 27 | && \textbf{Stand-up:} Meeting where each team member briefly updates the team on what they accomplished since the previous meeting, what they want to accomplish before the next meeting, and what obstacles are causing issues 28 | && \textbf{Sprint review:} Meeting where the team demonstrates working software to stakeholders 29 | &&& Product owner gathers feedback 30 | &&& No promises should be given 31 | && \textbf{Retrospective:} Meeting where the team reviews work done and identifies improvements 32 | &&& Improves the team, identifies things to improve, and creates an action plan to implement changes 33 | && \textbf{Sprint planning:} Meeting where the team chooses the next stories and tasks for the upcoming sprint 34 | &&& Choose new tasks by matching the velocity of the previous sprint ecompose stories into tasks 35 | 36 | & \textbf{Sprint backlog:} List of tasks to deliver for a sprint 37 | & \textbf{Story point:} Smallest possible unit of work 38 | && Based on effort, not work 39 | && Express each story in terms of points 40 | 41 | \end{easylist} 42 | \clearpage 43 | -------------------------------------------------------------------------------- /cmpt-376w-technical-writing-and-group-dynamics/cmpt-376w.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-376w-technical-writing-and-group-dynamics/cmpt-376w.pdf -------------------------------------------------------------------------------- /cmpt-376w-technical-writing-and-group-dynamics/cmpt-376w.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 376W: Technical Writing and Group Dynamics - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage{graphicx} 33 | \graphicspath{ {img/} } 34 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 35 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 36 | \usepackage{textcomp} % Allows the use of \textbullet with the font 37 | \usepackage{verbatim} 38 | 39 | \renewcommand{\arraystretch}{1.2} 40 | \renewcommand{\familydefault}{\sfdefault} 41 | 42 | \title{CMPT 376W: Technical Writing and Group Dynamics \\\medskip \Large A Course Overview} 43 | \author{Jeffrey Leung \\ Simon Fraser University} 44 | \date{Summer 2017} 45 | 46 | \begin{document} 47 | 48 | \maketitle 49 | \tableofcontents 50 | \clearpage 51 | 52 | \input{./tex/introduction.tex} 53 | \input{./tex/elements-of-text.tex} 54 | \input{./tex/writing.tex} 55 | \input{./tex/reviewing-papers.tex} 56 | \input{./tex/allegories.tex} 57 | \input{./tex/writing-samples.tex} 58 | 59 | \end{document} 60 | -------------------------------------------------------------------------------- /cmpt-376w-technical-writing-and-group-dynamics/tex/_template.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 376W: Technical Writing and Group Dynamics - A Course Overview 3 | % Section: 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{} 9 | \label{} 10 | \begin{easylist} 11 | 12 | \end{easylist} 13 | \clearpage 14 | -------------------------------------------------------------------------------- /cmpt-376w-technical-writing-and-group-dynamics/tex/allegories.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 376W: Technical Writing and Group Dynamics - A Course Overview 3 | % Section: Allegories 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Allegories} 9 | \label{sec:allegories} 10 | 11 | \subsection{Programming} 12 | \begin{easylist} 13 | 14 | & Similarities between programming and writing: 15 | && Decoupling of monolithic code is similar to breaking down and organizing a large text 16 | && Object-oriented design is similar to refocusing discussions around one issue and fleshing it out 17 | && \emph{Refactoring:} Rewriting code without modifying functionality/behaviour 18 | && E.g. Removing complex code, decoupling functionality, improving modularity 19 | && Similar to restructuring and rewriting a text 20 | && Compression is similar to making text more concise 21 | 22 | \end{easylist} 23 | \subsection{Presentations} 24 | \begin{easylist} 25 | 26 | & Similarities between presenting and writing: 27 | && Communicate key ideas 28 | && Avoid being distracted by details 29 | && Start top-down with high-level ideas before moving to details 30 | 31 | \end{easylist} 32 | \subsection{Dimensionality Reduction} 33 | \begin{easylist} 34 | 35 | & \textbf{Dimension:} Attribute or statistic describing a phenomenon 36 | & \textbf{Dimensionality reduction:} Pruning the number of attributes or factors 37 | && Can include removal of duplicate dimensions, unimportant or irrelevant dimensions, or untractable dimensions (incalculable or impractical to calculate) 38 | &&& Allegory to writing with concision, removal of redundancy, and writing an incredibly long paper 39 | 40 | \end{easylist} 41 | \clearpage 42 | -------------------------------------------------------------------------------- /cmpt-376w-technical-writing-and-group-dynamics/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 376W: Technical Writing and Group Dynamics - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:intro} 10 | \begin{easylist} 11 | 12 | & Characteristics of poor writing: Ambiguity, omissions, obscurity, spelling errors, poor presentation 13 | && May indicate a lack of care, and create a lack of trust 14 | & Characteristics of good writing: Clearly expressed ideas, well-organized, easy to read 15 | && Short sentences with fewer clauses 16 | && Avoids repetition 17 | 18 | \subsection{Technical Writing} 19 | \label{subsec:intro:tech-writing} 20 | 21 | & \emph{Technical writing:} Communication about any topic 22 | 23 | \end{easylist} 24 | \clearpage -------------------------------------------------------------------------------- /cmpt-376w-technical-writing-and-group-dynamics/tex/reviewing-papers.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 376W: Technical Writing and Group Dynamics - A Course Overview 3 | % Section: Reviewing Papers 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Reviewing Papers} 9 | \label{sec:reviewing-papers} 10 | \begin{easylist} 11 | 12 | & Introduction: 13 | && Summarize paper briefly to demonstrate understanding 14 | && Provide positive feedback 15 | && Provide negative feedback 16 | && Discuss possible subjectivity 17 | 18 | & Body: 19 | && Discuss: 20 | &&& Clarity 21 | &&& Tone 22 | &&& Related works 23 | &&& Proper use of tables/figures/diagrams 24 | &&& Personal feelings 25 | &&& Expectations 26 | && Check for secondary sources in references 27 | && Pose questions to address lacking details 28 | 29 | & Conclusion: 30 | && Discuss overarching impressions 31 | 32 | \end{easylist} 33 | \clearpage 34 | -------------------------------------------------------------------------------- /cmpt-376w-technical-writing-and-group-dynamics/tex/writing-samples.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 376W: Technical Writing and Group Dynamics - A Course Overview 3 | % Section: Writing Samples 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Writing Samples} 9 | \label{sec:writing-samples} 10 | \begin{easylist} 11 | 12 | & ``Decisions in regard to administration of medication despite inability of an irrational patient appearing in a Trauma Center to provide legal consent rest with the attending physician.'' 13 | && `appearing' is redundant 14 | && `in a Trauma Center' is a nominalization which should be changed to a noun/subject modifier 15 | && Rewrites: 16 | &&& ``Despite the inability of an irrational Trauma Center patient to provide legal consent, decisions about the administration of medicine rest only with the attending physician.'' 17 | &&& ``Only the attending physician may provide medication to a Trauma Center patient who is unable to provide legal consent.'' 18 | &&& ``When a Trauma Center patient behaves so irrationally that they cannot legally consent to treatment, only the attending physician can decide to medicate them.'' 19 | & ``In the last several years, college costs have been rising so fast that they are now threatening the basis of our American democracy - equal opportunity for all. During that period, tuition has signicantly outpaced increases in family income. If this trend continues, a college education will soon be affordable only by the children of the wealthiest families in our society. When that happens, we will be divided as a people not only by wealth, but by knowledge and intellectual skills. Such a divide will erode equal opportunity and the egalitarian basis of our democratic society.'' 20 | && Rewrites: 21 | &&& ``Recent rising college costs undermine democracy by threatening equality of opportunity through tuition increasing faster than family income. If this continues, only the wealthiest will be able to afford a college education which will divide people by wealth, knowledge, and intellectual skill. This will erode equal opportunity.'' 22 | 23 | \end{easylist} 24 | \clearpage 25 | -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/brief-ll1-parsing/ll1-parsing.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/brief-ll1-parsing/ll1-parsing.pdf -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/cmpt-379.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/cmpt-379.pdf -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/cmpt-379.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 379: Principles of Compiler Design - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage{amsmath} 10 | \usepackage[ampersand]{easylist} 11 | \ListProperties( 12 | Progressive*=5ex, 13 | Space=5pt, 14 | Space*=5pt, 15 | Style1*=\textbullet\ \ , 16 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 17 | Style3*=\textasteriskcentered\ \ , 18 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 19 | Style5*=\textbullet\ \ , 20 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 21 | Style7*=\textasteriskcentered\ \ , 22 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 23 | Hide1=1, 24 | Hide2=2, 25 | Hide3=3, 26 | Hide4=4, 27 | Hide5=5, 28 | Hide6=6, 29 | Hide7=7, 30 | Hide8=8 ) 31 | \usepackage[T1]{fontenc} 32 | \usepackage{forest} 33 | \usepackage{geometry} 34 | \geometry{margin=1.2in} 35 | \usepackage{graphicx} 36 | \graphicspath{ {img/} } 37 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 38 | \usepackage{listings} 39 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 40 | \usepackage{multirow} 41 | \usepackage{textcomp} % Allows the use of \textbullet with the font 42 | \usepackage{verbatim} 43 | 44 | \renewcommand{\arraystretch}{1.2} 45 | \renewcommand{\familydefault}{\sfdefault} 46 | 47 | \title{CMPT 379: Principles of Compiler Design \\\medskip \Large A Course Overview} 48 | \author{Jeffrey Leung \\ Simon Fraser University} 49 | \date{Summer 2019} 50 | 51 | \begin{document} 52 | 53 | \maketitle 54 | \tableofcontents 55 | \clearpage 56 | 57 | \input{./tex/introduction.tex} 58 | \input{./tex/lexical-analysis.tex} 59 | \input{./tex/syntax-analysis.tex} 60 | \input{./tex/parsing-algorithms-bottom-up.tex} 61 | \input{./tex/parsing-algorithms-top-down.tex} 62 | \input{./tex/syntax-directed-translation.tex} 63 | \input{./tex/semantic-analysis-ssa.tex} 64 | \input{./tex/programming-language-structure.tex} 65 | \input{./tex/optimization.tex} 66 | \input{./tex/register-allocation.tex} 67 | 68 | \end{document} 69 | -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/img/dominance-frontier.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/img/dominance-frontier.jpg -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/img/lrk-states-diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/img/lrk-states-diagram.jpg -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/img/lrk-states-epsilon-diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/img/lrk-states-epsilon-diagram.jpg -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/img/register-interference-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/img/register-interference-graph.png -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/img/slr-1-trace-diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/img/slr-1-trace-diagram.jpg -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 379: Principles of Compiler Design - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & \textbf{Compiler:} Program which translates a source program from user intention in text form into target in machine code 13 | && \textbf{Interpreter:} Program which dynamically executes code 14 | 15 | & \textbf{Bootstrapping:} Creating a compiler for a language by building a compiler for a simple subset of the language, then using the subset for the rest of the language definition 16 | && Can be done with a different language 17 | 18 | & \textbf{Intermediate representation:} Machine code representation of the program which may be modified and optimized before outputting 19 | 20 | & Challenges: 21 | && Differing architectures, memory hierarchies, memory sizes 22 | && Instruction and algorithm parallelism 23 | && Branch prediction 24 | 25 | & Stages: 26 | && \textbf{Analysis (front-end):} Stage of compiling code which reviews and understands the code in lexical, syntax/parsing, and semantic/type-checking contexts 27 | && \textbf{Synthesis (back-end):} Stage of compiling code which generates and optimizes code 28 | 29 | \end{easylist} 30 | \clearpage 31 | -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/tex/optimization.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 379: Principles of Compiler Design - A Course Overview 3 | % Section: Optimization 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Optimization} 9 | \label{sec:optimization} 10 | \begin{easylist} 11 | 12 | & \textbf{Constant folding:} Compile-time preprocessing of constant values to avoid predictable runtime computation 13 | & \textbf{Constant propagation:} If a variable is set to a constant, then replace all future variable uses with the constant (until the variable is reassigned) 14 | & \textbf{Copy propagation:} Simplification of multiple computations of the same values 15 | & \textbf{Dead code elimination:} Removal of code which will never be executed, used, or have any side effects 16 | 17 | & \textbf{Algebraic simplification:} Basic arithmetic and algebraic simplifications which are computed during compile-time such as addition by 0 or multiplication by 0 or 1 18 | & \textbf{Reduction of strength:} Replacement of exponentiation with multiplication 19 | 20 | & Correctness: Optimizations must not change the meaning of a performance 21 | 22 | \end{easylist} 23 | \clearpage 24 | -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/tex/programming-language-structure.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 379: Principles of Compiler Design - A Course Overview 3 | % Section: Programming Language Structure 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Programming Language Structure} 9 | \label{sec:programming-language-structure} 10 | \begin{easylist} 11 | 12 | & \textbf{Procedure:} Series of computational steps to be executed 13 | && Assumption that execution is sequential (which can be violated by concurrency) 14 | && Assumption that control is returned to the caller after execution (which can be violated by exceptions) 15 | && \textbf{Activation:} Invocation of a given procedure 16 | &&& \textbf{Activation tree:} Tree of invoked procedures where each child node was invoked by its parent node 17 | && \textbf{Lifetime (procedure):} Set of all the steps required to execute the associated procedure and its subprocedures 18 | && Stack is used to keep track of all procedures which are currently active 19 | 20 | & \textbf{Control Flow Graph (CFG):} Diagram showing logic flow of code, with branching on conditional commands such as if/for/while loops 21 | 22 | \end{easylist} 23 | \clearpage 24 | -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/tex/semantic-analysis-ssa.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 379: Principles of Compiler Design - A Course Overview 3 | % Section: Semantic Analysis and Static Single Assignment 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Semantic Analysis and Static Single Assignment} 9 | \label{sec:semantic-analysis-ssa} 10 | \begin{easylist} 11 | 12 | & \textbf{Semantic analysis:} Validating a program's basic requirements and type compatibilities, processing static semantic checks, and adding run-time semantic checks 13 | && E.g. Checking that a \textit{main} function exists, that variables are declared, whether operand types are compatible 14 | 15 | & \textbf{Static Single Assignment (SSA):} Property of an intermediate representation where each variable is only assigned once 16 | && Used to distinguish and merge values from multiple possible paths of computation to create a single resulting value 17 | 18 | & \textbf{Dominance:} Characteristic of a node which is a mandatory predecessor of another node (i.e. any path from the root to the lower node must pass through the upper node) 19 | && Any node dominates itself 20 | && Definitions of a variable dominate its later usages 21 | && \textbf{Strict dominance:} Characteristic of a node which dominates a different node 22 | 23 | & \textbf{Dominance Frontier (DF):} Set of nodes which, given a target node, are the convergence of two nodes - one which is dominated by the target node and one which is not (i.e. all nodes such that the target node dominates a predecessor but not the node itself) 24 | && Notation: $DF(X)$ 25 | && Can include the node itself 26 | && E.g. See figure~\ref{fig:dominance-frontier-example} which calculates the dominance frontier of node 5 27 | 28 | \begin{figure}[!htb] 29 | \caption{Dominance Frontier Example} 30 | \label{fig:dominance-frontier-example} 31 | \begin{center} 32 | \includegraphics[width=\textwidth]{dominance-frontier} 33 | \end{center} 34 | \end{figure} 35 | 36 | && Every node in $DF(X)$ requires a $\phi$ (phi) function for each variable defined in $X$ 37 | 38 | & \textbf{Dominator tree:} Acyclical hierarchical structure of a set of nodes, where a node dominates all of its children 39 | 40 | \end{easylist} 41 | \clearpage 42 | -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/tex/syntax-directed-translation.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 379: Principles of Compiler Design - A Course Overview 3 | % Section: Syntax-Directed Transmission 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Syntax-Directed Transmission} 9 | \label{sec:syntax-directed-translation} 10 | \begin{easylist} 11 | 12 | & \textbf{Syntax-Directed Transmission:} Compiler implementation where the parser conveys and passes information between syntax trees 13 | && Generalization of a CFG where each symbol includes an additional attribute 14 | 15 | & \textbf{Attribute grammar:} Set of syntax-directed rules which construct a meaning from a set of strings 16 | && Addition to a parse tree 17 | && \textbf{Decorate/annotate:} Description of the effect of an attribute grammar on a parse tree 18 | 19 | & \textbf{Attribute:} Arbitrary value assigned to each symbol representation 20 | && \textbf{Synthesized attribute:} Parse tree attribute which is determined by the attribute value(s) of the child nodes 21 | && \textbf{Inherited attribute:} Parse tree attribute which is determined by the attribute value(s) of the parent and/or sibling nodes 22 | &&& E.g. Parent action \lstinline|{ $$.in = 3; }|, child action \lstinline|{ print($0.in); }| 23 | 24 | & \textbf{S-attributed definition:} Semantic-action grammar with only synthesized attributes 25 | & \textbf{L-attributed definition:} Semantic-action grammar where, for each production \\ $A \rightarrow B_1 \ldots B_{j-1} B_{j} \ldots B_{n}$, for each $j = 1 \ldots n$, each inherited attribute of $B_j$ depends on the inherited attributes of $A$ and the attributes of $B_1 \ldots B_{j-1}$ 26 | && Superset of S-attributed definitions 27 | 28 | \end{easylist} 29 | \clearpage 30 | -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/worksheets/1-lexical-analysis/1-lexical-analysis-answers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/worksheets/1-lexical-analysis/1-lexical-analysis-answers.pdf -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/worksheets/1-lexical-analysis/1-lexical-analysis-questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/worksheets/1-lexical-analysis/1-lexical-analysis-questions.pdf -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/worksheets/1-lexical-analysis/1-lexical-analysis-questions.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 379: Principles of Compiler Design - Lexical Analysis Worksheet 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper]{article} 8 | 9 | \usepackage{amsmath} 10 | \usepackage[ampersand]{easylist} 11 | \ListProperties( 12 | Progressive*=5ex, 13 | Space=5pt, 14 | Space*=5pt, 15 | Style1*=\textbullet\ \ , 16 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 17 | Style3*=\textasteriskcentered\ \ , 18 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 19 | Style5*=\textbullet\ \ , 20 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 21 | Style7*=\textasteriskcentered\ \ , 22 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 23 | Hide1=1, 24 | Hide2=2, 25 | Hide3=3, 26 | Hide4=4, 27 | Hide5=5, 28 | Hide6=6, 29 | Hide7=7, 30 | Hide8=8 ) 31 | \usepackage{geometry} 32 | \geometry{margin=1.2in} 33 | \usepackage{graphicx} 34 | \graphicspath{ {img/} } 35 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 36 | \usepackage{listings} 37 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 38 | \usepackage{multirow} 39 | \usepackage{textcomp} % Allows the use of \textbullet with the font 40 | \usepackage{verbatim} 41 | 42 | \renewcommand{\arraystretch}{1.2} 43 | \renewcommand{\familydefault}{\sfdefault} 44 | 45 | \title{CMPT 379: Principles of Compiler Design \\\medskip \Large Lexical Analysis Worksheet} 46 | \author{} 47 | \date{} 48 | 49 | \begin{document} 50 | 51 | \maketitle 52 | 53 | Given the following token definitions as regular expressions: 54 | \begin{lstlisting} 55 | TOKEN_A cda* 56 | TOKEN_B c*a*c 57 | TOKEN_C c*b 58 | \end{lstlisting} 59 | 60 | Provide the tokenized output for the following input strings using the greedy longest match lexical analysis method. Provide the list of tokens and the lexeme values. 61 | 62 | \begin{enumerate} 63 | \item cdaaab 64 | \vspace{2cm} 65 | 66 | \item cdccc 67 | \vspace{2cm} 68 | 69 | \item ccc 70 | \vspace{2cm} 71 | 72 | \item cdccd 73 | \vspace{2cm} 74 | 75 | \end{enumerate} 76 | 77 | \vspace{2cm} 78 | 79 | \end{document} 80 | -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/worksheets/2-syntax-analysis/2-syntax-analysis-answers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/worksheets/2-syntax-analysis/2-syntax-analysis-answers.pdf -------------------------------------------------------------------------------- /cmpt-379-principles-of-compiler-design/worksheets/2-syntax-analysis/2-syntax-analysis-questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-379-principles-of-compiler-design/worksheets/2-syntax-analysis/2-syntax-analysis-questions.pdf -------------------------------------------------------------------------------- /cmpt-383-comparative-programming-languages/cmpt-383.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 383: Comparative Programming Languages - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage{graphicx} 33 | \graphicspath{ {img/} } 34 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 35 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 36 | \usepackage{textcomp} % Allows the use of \textbullet with the font 37 | \usepackage{verbatim} 38 | 39 | \renewcommand{\arraystretch}{1.2} 40 | \renewcommand{\familydefault}{\sfdefault} 41 | 42 | \title{Course Code: Course Name \\\medskip \Large A Course Overview} 43 | \author{Jeffrey Leung \\ Simon Fraser University} 44 | \date{Season Year} 45 | 46 | \begin{document} 47 | 48 | \maketitle 49 | \tableofcontents 50 | \clearpage 51 | 52 | \input{./tex/introduction.tex} 53 | 54 | \end{document} -------------------------------------------------------------------------------- /cmpt-383-comparative-programming-languages/tex/_template.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 383: Comparative Programming Languages - A Course Overview 3 | % Section: 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{} 9 | \label{} 10 | \begin{easylist} 11 | 12 | 13 | 14 | \end{easylist} 15 | \clearpage -------------------------------------------------------------------------------- /cmpt-383-comparative-programming-languages/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 383: Comparative Programming Languages - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & Declarative vs. Imperative 13 | 14 | 15 | \end{easylist} 16 | \clearpage -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/cmpt-433.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-433-embedded-systems/cmpt-433.pdf -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/cmpt-433.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage{amsmath} 10 | \usepackage[ampersand]{easylist} 11 | \ListProperties( 12 | Progressive*=5ex, 13 | Space=5pt, 14 | Space*=5pt, 15 | Style1*=\textbullet\ \ , 16 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 17 | Style3*=\textasteriskcentered\ \ , 18 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 19 | Style5*=\textbullet\ \ , 20 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 21 | Style7*=\textasteriskcentered\ \ , 22 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 23 | Hide1=1, 24 | Hide2=2, 25 | Hide3=3, 26 | Hide4=4, 27 | Hide5=5, 28 | Hide6=6, 29 | Hide7=7, 30 | Hide8=8 ) 31 | \usepackage[T1]{fontenc} 32 | \usepackage{geometry} 33 | \geometry{margin=1.2in} 34 | \usepackage{graphicx} 35 | \graphicspath{ {img/} } 36 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 37 | \usepackage{listings} 38 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 39 | \usepackage{textcomp} % Allows the use of \textbullet with the font 40 | \usepackage{verbatim} 41 | 42 | \renewcommand{\arraystretch}{1.2} 43 | \renewcommand{\familydefault}{\sfdefault} 44 | 45 | \title{CMPT 433: Embedded Systems \\\medskip \Large A Course Overview} 46 | \author{Jeffrey Leung \\ Simon Fraser University} 47 | \date{Fall 2019} 48 | 49 | \begin{document} 50 | 51 | \maketitle 52 | \tableofcontents 53 | \clearpage 54 | 55 | \input{./tex/introduction.tex} 56 | 57 | \input{./tex/software.tex} 58 | \input{./tex/synchronization.tex} 59 | \input{./tex/debugging.tex} 60 | 61 | \input{./tex/communication-and-networking.tex} 62 | 63 | \input{./tex/signals-and-noise.tex} 64 | \input{./tex/electronics.tex} 65 | \input{./tex/bitwise.tex} 66 | 67 | \input{./tex/operating-system-components.tex} 68 | \input{./tex/linux-kernel-programming.tex} 69 | \input{./tex/systemd.tex} 70 | \input{./tex/bare-metal-programming.tex} 71 | 72 | \input{./tex/fmea.tex} 73 | 74 | \end{document} 75 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/communication-and-networking.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: Communication and Networking 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Communication and Networking} 9 | \label{sec:communication-and-networking} 10 | \begin{easylist} 11 | 12 | & \textbf{Serial port:} Direct (wire-to-wire) connection between two systems 13 | && Can transmit (Tx) and/or receive (Rx) 14 | & \textbf{Serial protocol:} Ruleset for bitwise communication over a serial port 15 | && \textbf{Bitrate:} Frequency of each bit communicated 16 | && \textbf{Start bit:} Bit which represents the beginning of information transfer 17 | && \textbf{End bit:} Bit which represents the termination of information transfer 18 | && Examples of protocols: 19 | &&& \textbf{RS232:} Serial protocol which operates from -12V (representing 1) to 12V (representing 0) 20 | &&& \textbf{TTL:} Serial protocol which operates from 0V to 3V/5V 21 | &&& \textbf{Dynamic Host Configuration Protocol (DHCP):} UDP/IP protocol where an IP address is dynamically assigned to a machine so it can be connected to on a network 22 | 23 | 24 | 25 | & \textbf{Pipe:} Unidirectional communication endpoint between two threads or processes 26 | 27 | & \textbf{Socket:} Abstracted bidirectional communication endpoint for sending data between two processes on the same computer or across a network 28 | && Server listens for data, client sends data 29 | && \textbf{TCP:} Communication protocol where all data is sent in order with automatic retransmission 30 | && \textbf{Datagram (UDP):} Communication protocol where each packet is standalone 31 | &&& \lstinline[columns=fixed]{htons():} Function which sends a short data packet from host to network 32 | &&& \lstinline[columns=fixed]{htonl():} Function which sends a long data packet from host to network 33 | &&& \lstinline[columns=fixed]{ntohs():} Function which receives a short data packet from network to host 34 | &&& \lstinline[columns=fixed]{ntohl():} Function which receives a long data packet from network to host 35 | 36 | & \lstinline[columns=fixed]{netcat:} Linux utility which reads/writes from TCP or UDP network connections 37 | & \textbf{Network byte order:} Protocol of whether the least or most significant bit is sent first 38 | && \textbf{Big endian:} Protocol where the most significant bit (MSB) is sent first 39 | 40 | \end{easylist} 41 | \clearpage 42 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/debugging.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: Debugging 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Debugging} 9 | \label{sec:debugging} 10 | \begin{easylist} 11 | 12 | & \lstinline[columns=fixed]{readelf}: Linux utility which displays details of an executable in an Executable and Linkable Format 13 | 14 | & gdb: 15 | && Generates debug symbols which can stripped later for a smaller, quicker executable 16 | && Informational commands: 17 | &&& \lstinline[columns=fixed]{list}: Show code 18 | &&& \lstinline[columns=fixed]{bt}: Show backtrace of current code 19 | &&& \lstinline[columns=fixed]{info x}: Display information of a breakpoint, frame, etc. 20 | &&& \lstinline[columns=fixed]{print x}: Prints the value of variable \lstinline[columns=fixed]{x} 21 | && Control commands: 22 | &&& \lstinline[columns=fixed]{target remote}: Connect a machine to debug an executable on 23 | &&& \lstinline[columns=fixed]{break n} or \lstinline[columns=fixed]{b n}: Sets a breakpoint at line or function \lstinline[columns=fixed]{n} 24 | &&& \lstinline[columns=fixed]{next}: Run until the next breakpoint occurs 25 | &&& \lstinline[columns=fixed]{up/down}: Moves to the previous/next stack frame 26 | && \textbf{Core file:} File dumped by gdb upon a crash which is an image of the memory 27 | &&& \lstinline[columns=fixed]{gdb ./executable core}: Run executable with a core file 28 | 29 | & \textbf{Instrumentation:} Addition of a tool to measure information/performance 30 | && \textbf{Profiling:} Runtime analysis of an executable through instrumentation 31 | &&& \textbf{gprof:} Linux profiling utility which describes how much time was spent in each part of the program 32 | &&&& \lstinline[columns=fixed]{gprof ./executable gmon.out}: Generate a log showing time usage in each part of the program 33 | && \textbf{Valgrind:} Memory debugging and profiling tool 34 | && \textbf{mtrace:} Linux memory tracking utility which traces allocation and frees dynamic memory 35 | &&& \lstinline[columns=fixed]{mtrace ./executable log.txt}: Generate a log showing memory usage 36 | &&& Less disruptive than Valgrind 37 | 38 | & Use a GPIO pin to track software performance, and an oscilloscope to view changes in pin value 39 | 40 | & \textbf{List Dynamic Dependencies (LDD):} Utility which locates required missing libraries 41 | 42 | 43 | \end{easylist} 44 | \clearpage 45 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/fmea.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: FMEA 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{FMEA} 9 | \label{sec:fmea} 10 | \begin{easylist} 11 | 12 | & \textbf{Failure Mode and Effect Analysis (FMEA):} Overview of how system components could fail and details about the failure detection/likelihood/effects/risk 13 | 14 | & For each failure possibility: 15 | && Rate the severity (1-10) 16 | && Rate the likelihood (1-10) based on causes 17 | && Rate the effectiveness of detection (1-10) 18 | 19 | & List possible actions to reduce risk 20 | 21 | & \textbf{Risk Priority Number (RPN):} Failure rating which is represents the product of the severity, likelihood, and detection effectiveness (1-1000) 22 | 23 | & \textbf{Danger zone:} A complex system which is tightly coupled and, therefore, difficult to test 24 | 25 | \end{easylist} 26 | \clearpage 27 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & \textbf{Embedded system:} Computer system with one dedicated function 13 | && 98\% of CPUs in 2008 manufactured by embedded systems 14 | && \textbf{Host machine:} Machine which is connected to and compiles code for the embedded system 15 | && \textbf{Target machine:} The embedded system 16 | && \textbf{Cross-compilation:} Development on a host device which produces code downloaded to a target hardware 17 | 18 | \end{easylist} 19 | \clearpage 20 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/operating-system-components.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: Operating System Components 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Operating System Components} 9 | \label{sec:operating-system-components} 10 | \begin{easylist} 11 | 12 | & \textbf{Application Binary Interface (ABI):} Standard of how a program uses datatypes, function calling conventions, and system calls 13 | 14 | & Bootup components: 15 | && \textbf{Embedded Multi-Media Controller (eMMC):} Flash storage on a chip on the board which contains the vital operating system files 16 | && \textbf{uSD Card:} SD card which can act as a replacement booter or flasher for the eMMC in case of corruption 17 | && \textbf{U-Boot:} Bootloader which initializes hardware and loads the kernel into memory 18 | &&& \textbf{Trivial Transfer File Protocol (TFTP):} Protocol used to boot a machine using specific files 19 | 20 | & \textbf{Kernel:} Core operating system component which handles process control, memory, IO, etc. 21 | & \textbf{Root filesystem:} Filesystem which contains an operating system 22 | 23 | & \textbf{Network File System (NFS):} Direct method to mount a directory from another device on the network, mirroring changes immediately 24 | 25 | & Linux directories: 26 | && \lstinline[columns=fixed]{/dev}: Devices 27 | && \lstinline[columns=fixed]{/etc}: Local system configuration 28 | && \lstinline[columns=fixed]{/proc}: Kernel and process information 29 | && \lstinline[columns=fixed]{/lib}: Shared libraries and kernel modules 30 | 31 | \end{easylist} 32 | \clearpage 33 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/signals-and-noise.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: Signals and Noise 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Signals and Noise} 9 | \label{sec:signals-and-noise} 10 | \begin{easylist} 11 | 12 | & \textbf{Signal:} Value to be recorded 13 | & \textbf{Ground:} 0V 14 | 15 | & \textbf{Voltage regulator:} Component which converts unstable input voltage to a stable output voltage 16 | & \textbf{Quantization:} Resolution of a single bit which involves a detectable change 17 | & \textbf{Sample rate:} How quickly an A2D samples the input 18 | && Audio requires high sample rates 19 | && Potentiometers require low sample rates 20 | 21 | & \textbf{Piecewise Linear (PWL):} Approximation of a function with a series of lines 22 | 23 | & Strategies to tolerate noise: 24 | && Change state only when a number of samples exceed the threshold 25 | && Require additional value beyond the threshold in each direction to change the value 26 | && Use a simple moving average of a past set of samples 27 | && \textbf{Simple Moving Average:} Method of smoothing equally weights all values 28 | && \textbf{Exponential Smoothing:} Method of smoothing which provides greater weights to recent values 29 | 30 | & \textbf{Hysteresis:} Property of a state machine where the changes lag behind the actual values 31 | 32 | & \textbf{Clamping:} Capping a signal at its maximum or minimum possible value to prevent overflow 33 | 34 | \end{easylist} 35 | \clearpage 36 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/software.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: Software 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Software} 9 | \label{sec:software} 10 | \begin{easylist} 11 | 12 | & Modular design: 13 | && Separate functionality into components (e.g. interface in header files and implementation on source files) 14 | && \textbf{External linkage:} Declaration of a member (function or variable) which is accessible by code in any other source file 15 | &&& Accessed from another source file using the keyword \textit{extern} 16 | &&& Avoid externally linked variables by providing access through functions 17 | && \textbf{Internal linkage:} Declaration of a member (function or variable) which is only accessible by code in the same source file 18 | &&& In C, use the keyword \lstinline[columns=fixed]{static} 19 | && Public files must have good comments or be easy to understand 20 | 21 | & C: 22 | && Creates loose assumptions if a function does not have a prototype 23 | && Include guard: Structure which ensures a header file is only included once per program 24 | && Declare a pointer as NULL after freeing the memory, to avoid a dangling pointer 25 | && String: Null-terminated (\lstinline[columns=fixed]{\0}) array of characters 26 | && Volatile: Keyword which specifies that a variable may change without the knowledge of the code, and therefore should not be optimized out 27 | && Differences between C90/C99: 28 | &&& Inline functions 29 | &&& Variable declarations throughout blocks 30 | &&& Single-line comments (\lstinline[columns=fixed]{//}) 31 | 32 | & HTML: 33 | && \lstinline[columns=fixed]{div} is a section/paragraph, \lstinline[columns=fixed]{span} is a block of text within a paragraph 34 | 35 | & JavaScript and jQuery: 36 | && \lstinline[columns=fixed]{\$("\#id").html("
text
");} to modify the HTML content 37 | && \lstinline[columns=fixed]|{ \$("\#id").css(" {'color':'red'} "); }| to modify the CSS styling 38 | && \lstinline[columns=fixed]{var input = \$("\#id").value();} to retrieve input field content 39 | && \lstinline[columns=fixed]{\$("\#id").hide();} to hide content 40 | 41 | \end{easylist} 42 | \clearpage 43 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/synchronization.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: Synchronization 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Synchronization} 9 | \label{sec:synchronization} 10 | \begin{easylist} 11 | 12 | & \textbf{Process:} Program which has a dedicated address space 13 | && \textbf{Virtual access space:} Component of a process which is an abstracted memory location 14 | && \textbf{fork():} Command which duplicates the address space of the current process 15 | && \textbf{exec():} Set of commands which replaces the current process with an executable file 16 | 17 | & \textbf{Thread:} Program which shares an address space with other instances of the same program 18 | && Threads of the same process share a virtual access space, including global variables 19 | & \textbf{Mutex:} Data structure which prevents simultaneous access to volatile data which may be changed 20 | && \textbf{Critical section:} Section of code which can only be running once at a time 21 | &&& Keep critical sections as minimal as possible 22 | & \textbf{Pipe:} Unidirectional data stream for inter-thread/process communication 23 | 24 | \end{easylist} 25 | \clearpage 26 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/tex/systemd.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 433: Embedded Systems - A Course Overview 3 | % Section: systemd 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{systemd} 9 | \label{sec:systemd} 10 | \begin{easylist} 11 | 12 | & \textbf{.profile:} Program which runs at login 13 | & \textbf{systemd (system daemon):} First user-space application which is executed at boot by the kernel 14 | && \textbf{Daemon:} Background procress 15 | 16 | & Always use absolute paths 17 | 18 | & \textbf{Watchdog (WD) timer:} Program which prevents system lock-up 19 | && \textbf{Hit/pet:} To contact the WD 20 | &&& Opening file \lstinline[columns=fixed]{/dev/watchdog} restarts the timer 21 | &&& If the program exits, WD continues running 22 | && Applications use a WD to recover from faults: 23 | &&& Periodically hits the WD 24 | &&& WD restarts the board if the timer expires 25 | &&& Critical when a reboot cannot be manually triggered 26 | 27 | \end{easylist} 28 | \clearpage 29 | -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/worksheets/bitwise-operations/bitwise-operations-worksheet-answers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-433-embedded-systems/worksheets/bitwise-operations/bitwise-operations-worksheet-answers.pdf -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/worksheets/bitwise-operations/bitwise-operations-worksheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-433-embedded-systems/worksheets/bitwise-operations/bitwise-operations-worksheet.pdf -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/worksheets/timer-calculation/timer-calculation-worksheet-answers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-433-embedded-systems/worksheets/timer-calculation/timer-calculation-worksheet-answers.pdf -------------------------------------------------------------------------------- /cmpt-433-embedded-systems/worksheets/timer-calculation/timer-calculation-worksheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-433-embedded-systems/worksheets/timer-calculation/timer-calculation-worksheet.pdf -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/cmpt-454.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/cmpt-454.pdf -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/cmpt-454.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 454: Database Systems II - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage{amsmath} 10 | \usepackage[ampersand]{easylist} 11 | \ListProperties( 12 | Progressive*=5ex, 13 | Space=5pt, 14 | Space*=5pt, 15 | Style1*=\textbullet\ \ , 16 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 17 | Style3*=\textasteriskcentered\ \ , 18 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 19 | Style5*=\textbullet\ \ , 20 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 21 | Style7*=\textasteriskcentered\ \ , 22 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 23 | Hide1=1, 24 | Hide2=2, 25 | Hide3=3, 26 | Hide4=4, 27 | Hide5=5, 28 | Hide6=6, 29 | Hide7=7, 30 | Hide8=8 ) 31 | \usepackage[skip=0.5\baselineskip]{caption} 32 | \usepackage{geometry} 33 | \geometry{margin=1.2in} 34 | \usepackage{graphicx} 35 | \graphicspath{ {img/} } 36 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 37 | \usepackage{listings} 38 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 39 | \usepackage{textcomp} % Allows the use of \textbullet with the font 40 | \usepackage{verbatim} 41 | 42 | \renewcommand{\arraystretch}{1.2} 43 | \renewcommand{\familydefault}{\sfdefault} 44 | 45 | \title{CMPT 454: Database Systems II \\\medskip \Large A Course Overview} 46 | \author{Jeffrey Leung \\ Simon Fraser University} 47 | \date{Spring 2021} 48 | 49 | \begin{document} 50 | 51 | \maketitle 52 | \tableofcontents 53 | \clearpage 54 | 55 | \input{./tex/introduction.tex} 56 | \input{./tex/data-storage-architecture.tex} 57 | \input{./tex/heap-file-structure.tex} 58 | \input{./tex/indexed-file-structure.tex} 59 | \input{./tex/external-sorting.tex} 60 | \input{./tex/query-optimization.tex} 61 | \input{./tex/fundamentals-of-transactions.tex} 62 | \input{./tex/concurrency-control.tex} 63 | \input{./tex/logging-and-recovery.tex} 64 | 65 | \end{document} -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/arm-assembly-diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/arm-assembly-diagram.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/heap-file-linked-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/heap-file-linked-list.png -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/heap-file-page-directory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/heap-file-page-directory.png -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/record-fixed-packed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/record-fixed-packed.png -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/record-fixed-unpacked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/record-fixed-unpacked.png -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/record-fixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/record-fixed.png -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/record-variable-fixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/record-variable-fixed.png -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/record-variable-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/record-variable-page.png -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/data-storage-architecture/record-variable-variable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/data-storage-architecture/record-variable-variable.png -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/external-sorting/merge-sort.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/external-sorting/merge-sort.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/external-sorting/replacement-sort.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/external-sorting/replacement-sort.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/indexed-file-structure/bplus-tree.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/indexed-file-structure/bplus-tree.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/indexed-file-structure/clustered-index.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/indexed-file-structure/clustered-index.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/indexed-file-structure/extendible-hashing-splitting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/indexed-file-structure/extendible-hashing-splitting.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/indexed-file-structure/extendible-hashing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/indexed-file-structure/extendible-hashing.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/indexed-file-structure/isam-tree.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/indexed-file-structure/isam-tree.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/indexed-file-structure/linear-hashing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/indexed-file-structure/linear-hashing.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/indexed-file-structure/static-hashing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/indexed-file-structure/static-hashing.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/img/indexed-file-structure/unclustered-index.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-454-database-systems-ii/img/indexed-file-structure/unclustered-index.jpg -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/tex/heap-file-structure.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 454: Database Systems II - A Course Overview 3 | % Section: Heap File Structure 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Heap File Structure} 9 | \label{sec:heap-file-structure} 10 | \begin{easylist} 11 | 12 | & \textbf{Logical record:} Abstract concept of data which can be inserted/deleted/modified/searched 13 | && Value-based searches include: 14 | &&& Equality search: Search for records equal to a given value 15 | &&& Range search: Search for records greater/less than a given value 16 | 17 | & \textbf{Heap files:} File organization structure where records are unordered 18 | && Disk pages are allocated/deallocated dynamically as required 19 | && Efficient for inserting, searching by RID, and file scanning 20 | && Inefficient for searching values of the fields 21 | 22 | & \textbf{Linked list heap file implementation:} Heap file implementation containing one linked list with full pages, and one linked list with unallocated pages 23 | && Allocation process: Search through each non-full page to find one with enough space 24 | && Diagram: See figure~\ref{img:heap-file-linked-list} 25 | 26 | \begin{figure}[!htb] 27 | \centering 28 | \includegraphics[width=.8\linewidth]{data-storage-architecture/heap-file-linked-list} 29 | \caption{Heap File: Linked List Implementation} 30 | \label{img:heap-file-linked-list} 31 | \end{figure} 32 | 33 | & \textbf{Page directory heap file implementation:} Heap file implementation consisting of a linked list where each node contains a set of pointers to pages, and the amount of free space on the pages 34 | && Allocation process: Search through nodes to find a page with enough space (reading only one page) 35 | && Diagram: See figure~\ref{img:heap-file-page-directory} 36 | 37 | \begin{figure}[!htb] 38 | \centering 39 | \includegraphics[width=.8\linewidth]{data-storage-architecture/heap-file-page-directory} 40 | \caption{Heap File: Page Directory Implementation} 41 | \label{img:heap-file-page-directory} 42 | \end{figure} 43 | 44 | \end{easylist} 45 | \clearpage -------------------------------------------------------------------------------- /cmpt-454-database-systems-ii/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 454: Database Systems II - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & Database (DB): Set of files designed to contains data which can be modified and retrieved, and is optimized for certain operations 13 | 14 | & Database Management System (DBMS): Program which manipulates a database 15 | 16 | \end{easylist} 17 | \clearpage -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/cmpt-473.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-473-software-testing-reliability-security/cmpt-473.pdf -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/cmpt-473.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage{amsmath} 10 | \usepackage[ampersand]{easylist} 11 | \ListProperties( 12 | Progressive*=5ex, 13 | Space=5pt, 14 | Space*=5pt, 15 | Style1*=\textbullet\ \ , 16 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 17 | Style3*=\textasteriskcentered\ \ , 18 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 19 | Style5*=\textbullet\ \ , 20 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 21 | Style7*=\textasteriskcentered\ \ , 22 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 23 | Hide1=1, 24 | Hide2=2, 25 | Hide3=3, 26 | Hide4=4, 27 | Hide5=5, 28 | Hide6=6, 29 | Hide7=7, 30 | Hide8=8 ) 31 | \usepackage{geometry} 32 | \geometry{margin=1.2in} 33 | \usepackage{graphicx} 34 | \graphicspath{ {img/} } 35 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 36 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 37 | \usepackage{textcomp} % Allows the use of \textbullet with the font 38 | \usepackage{verbatim} 39 | 40 | \renewcommand{\arraystretch}{1.2} 41 | \renewcommand{\familydefault}{\sfdefault} 42 | 43 | \title{CMPT 473: Software Quality Assurance \\\medskip \Large A Course Overview} 44 | \author{Jeffrey Leung \\ Simon Fraser University} 45 | \date{Spring 2020} 46 | 47 | \begin{document} 48 | 49 | \maketitle 50 | \tableofcontents 51 | \clearpage 52 | 53 | \input{./tex/introduction.tex} 54 | 55 | \input{./tex/debugging.tex} 56 | \input{./tex/types-of-testing.tex} 57 | \input{./tex/property-based-testing.tex} 58 | \input{./tex/a-b-testing.tex} 59 | 60 | \input{./tex/input-space-partitioning.tex} 61 | 62 | \input{./tex/graph-coverage.tex} 63 | \input{./tex/logic-based-coverage.tex} 64 | \input{./tex/mutation-analysis-and-testing.tex} 65 | \input{./tex/regression-testing.tex} 66 | 67 | \input{./tex/program-analysis.tex} 68 | \input{./tex/test-planning.tex} 69 | 70 | \input{./tex/automated-test-generation.tex} 71 | 72 | \input{./tex/performance.tex} 73 | \input{./tex/security.tex} 74 | 75 | \end{document} 76 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/img/flow-diagram-for.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-473-software-testing-reliability-security/img/flow-diagram-for.jpg -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/img/flow-diagram-if-shortcircuit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-473-software-testing-reliability-security/img/flow-diagram-if-shortcircuit.jpg -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/img/flow-diagram-switch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-473-software-testing-reliability-security/img/flow-diagram-switch.jpg -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/img/flow-diagram-while.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/cmpt-473-software-testing-reliability-security/img/flow-diagram-while.jpg -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/a-b-testing.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: A/B Testing 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{A/B Testing} 9 | \label{sec:a-b-testing} 10 | \begin{easylist} 11 | 12 | & \textbf{A/B testing:} Hypothesis testing which provides different services to randomly selected individuals 13 | && Requires a hypothesis and population to test 14 | 15 | & Used to evaluate: 16 | && Usability improvements 17 | && Perforamnce improvements 18 | && Promotion effectiveness 19 | && Gradual rollouts 20 | 21 | & Possible issues: 22 | && Uncontrolled influencing factors 23 | && Populations may not be representative 24 | && False positives/negatives 25 | &&& \textbf{p-hacking:} Altering results by executing many tests to compound the effect of false positives/negatives, and choosing exactly when to stop based on the results 26 | &&& \textbf{Regression to the mean:} Tendency for results to return to relatively normal levels after an extreme event 27 | &&&& E.g. Poorly performing students are placed in a program, after which their grades improve 28 | 29 | & Ways to mitigate issues: 30 | && Calculate significance and test amount beforehand, rather than stopping when significance is reached 31 | 32 | \end{easylist} 33 | \subsection{Hypothesis Testing} 34 | \label{subsec:hypothesis-testing} 35 | \begin{easylist} 36 | 37 | & T-Test: Comparison between samples of populations 38 | && Modeled as a distribution 39 | && Requires the data to have a known variance, independence from other factors 40 | 41 | & Sequential testing may have bounding criteria for when to stop early 42 | 43 | & \textbf{Multi-armed bandit:} Testing technique which determines the best of multiple options based on evidence so far 44 | && Requirements: 45 | &&& Reward probabilities do not change 46 | &&& Sampling is singular, instantaneous, and independent 47 | 48 | && \textbf{$\epsilon$-greedy strategy:} Multi-armed bandit technique where the greater the previous sample proportion, the more likely the population is sampled 49 | &&& Sensitive to variance 50 | 51 | && \textbf{Thompson sampling:} Multi-armed bandit technique where the probability of the best arm is chosen 52 | 53 | \end{easylist} 54 | \clearpage 55 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/automated-test-generation.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Automated Test Generation 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Automated Test Generation} 9 | \label{sec:automated-test-generation} 10 | \begin{easylist} 11 | 12 | & \textbf{Automated test generation:} Executing program analysis to automatically derive tests 13 | 14 | & \textbf{Fuzz testing:} Automated test generation method which creates sample program inputs 15 | && \textbf{Generational (model-based) fuzz testing:} Fuzz testing method which creates inputs based on a predefined model 16 | &&& Inputs will be valid; cannot test invalid inputs 17 | && \textbf{Mutational (heuristic change based) fuzz testing:} Fuzz testing method which creates inputs based modifying a test suite 18 | &&& Given a corpus of inputs, evolve new inputs; if the input tests a new area of the program, add it to the corpus 19 | &&&& Criteria can be different lines of code, more/less memory, etc. 20 | &&& Inputs may not necessarily be valid 21 | 22 | & \textbf{Symbolic execution:} Automated test generation method which replaces program inputs with symbolic values and calculates inputs based on constraints 23 | && \textbf{Concolic (dynamic symbolic) traversal:} Symbolic execution where values are maintained as symbolic, then calculated at the end to reveal every possible path 24 | 25 | & \textbf{Execution generated testing:} Symbolic execution where some values are set to be concrete 26 | 27 | & \textbf{Execution tree:} Graph of the possible paths taken by a program 28 | 29 | \end{easylist} 30 | \clearpage 31 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/debugging.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Debugging 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Debugging} 9 | \label{sec:debugging} 10 | \begin{easylist} 11 | 12 | & \textbf{Debugging:} Application of the scientific method to find and eliminate an incorrect behaviour 13 | 14 | & Steps: 15 | && Ignore assumptions 16 | &&& Mental model of software may be incorrect 17 | &&& Comments may be incorrect 18 | && Reproduce the behaviour 19 | && Brainstorm possible reasons why the incorrect behaviour occurred 20 | && Choose the most testable and likely hypotheses 21 | 22 | & Debugging framework features: 23 | && Breakpoints (conditional) 24 | && Stepping through/over code 25 | && State: 26 | &&& Print/display 27 | &&& Modification 28 | &&& Watchpoints 29 | && Call functions 30 | 31 | \end{easylist} 32 | \subsection{Bug Reporting} 33 | \label{subsec:bug-reporting} 34 | \begin{easylist} 35 | 36 | & Perspectives: 37 | && Developer: How a bug should be handled 38 | && Client/teammate: How a bug should be reported/fixed 39 | 40 | & Error messages should contain: 41 | && What is incorrect 42 | && Where the error occurred 43 | && When the error occurred 44 | 45 | & Good error messages allow you to: 46 | && Reproduce a failure 47 | && Find the original creator 48 | && Combine duplicate error reports 49 | && Identify causes 50 | && Prioritize 51 | && Identify workarounds 52 | && Create an accurate fix 53 | 54 | & Prioritize bugs by: 55 | && Frequency 56 | && Risk level or consequence 57 | && Recency of introduction 58 | 59 | & Bug reports should contain: 60 | && Summary 61 | && What happened, when, where 62 | && Expected result 63 | && Steps to reproduce 64 | && Product, version, feature 65 | && Platform and environment 66 | && Severity/priority 67 | && Owner(s) 68 | && Duplicate(s) 69 | 70 | \end{easylist} 71 | \clearpage 72 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/managing-bugs.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Managing Bugs 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \end{easylist} 9 | \clearpage 10 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/performance.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Performance 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Performance} 9 | \label{sec:performance} 10 | \begin{easylist} 11 | 12 | & Performance areas include: 13 | && Speed/runtime 14 | && Resource management 15 | && Throughput 16 | && Responsiveness 17 | 18 | & Analyzed differently depending on component granularity (e.g. system-level, instruction-level) 19 | 20 | & Strategies of measuring performance: 21 | && Identify area of interest 22 | 23 | & Evaluating results: 24 | && Be aware of: 25 | &&& Warm-up time 26 | &&& Caching 27 | && Measure and compare across changes 28 | && Run many executions and take the average 29 | 30 | & Measurement of results: 31 | 32 | && \textbf{Arithmetic mean:} Average of measurements which measure the same value 33 | &&& Equation: 34 | \begin{equation} 35 | \frac{ \displaystyle \sum_{i=1}^N r_i }{N} 36 | \end{equation} 37 | 38 | && \textbf{Harmonic mean:} Average of measurements which report rates (e.g. throughput for multiple tasks) 39 | &&& Represents the constant rate required for the same amount of time 40 | &&& Calculated by dividing the total number of rates by the rate per unit (inversion of the rate) 41 | &&& Equation: 42 | \begin{equation} 43 | \frac{N}{ \displaystyle \sum_{i=1}^N \frac{1}{r_i} } 44 | \end{equation} 45 | && \textbf{Geometric mean:} Average of measurements which represent different values 46 | &&& A change in any benchmark affects the final value proportionally 47 | &&& Represents a multiplied score of performance 48 | &&& Equation: 49 | \begin{equation} 50 | \sqrt[N]{ \prod_{i=1}^N r_i } 51 | \end{equation} 52 | && \textbf{Standard deviation:} Measure of confidence in the mean 53 | &&& Large values imply needing more samples or correction of methodological error 54 | 55 | \end{easylist} 56 | \clearpage 57 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/program-analysis.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Program Analysis 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Program Analysis} 9 | \label{sec:program-analysis} 10 | \begin{easylist} 11 | 12 | & \textbf{Program analysis:} Tools and techniques which automatically analyze software behaviour 13 | 14 | & \textbf{Dynamic analysis:} Analysis about a single instance of program execution 15 | && Can be computationally expensive 16 | && Does not examine all possible executions 17 | 18 | & \textbf{Static analysis:} Analysis on source code about all possible executions 19 | && Undecidability prevents some analyses 20 | && \textbf{Abstract interpretation:} Static analysis method which simulates different execution paths 21 | 22 | & False positives/negatives may occur 23 | 24 | & Examples: 25 | && Valgrind: Dynamic binary instrumentation tool to check for memory leaks 26 | &&& Only works on executables which provide both stack and heap allocated memory 27 | && Clang sanitizers: Compile-time instrumentation tools to analyze safety of usage 28 | 29 | \end{easylist} 30 | \clearpage 31 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/property-based-testing.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Property-Based Testing 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Property-Based Testing} 9 | \label{sec:property-based-testing} 10 | \begin{easylist} 11 | 12 | 13 | & \textbf{Property-based testing:} Testing which generates tests to evaluate functional properties/requirements 14 | && Mathematical representation of an expectation 15 | 16 | & Common test strategies: 17 | && \textbf{Symmetry:} Test strategy where operations are performed to return to the original value 18 | && \textbf{Alternative:} Test strategy where a value is compared with a value generated from alternative solutions 19 | && \textbf{Induction:} Test strategy 20 | && \textbf{Idempotence:} Test strategy where performing an operation more than once has no effect 21 | && \textbf{Invariant:} Test strategy where a property of a preprocessed value must be equal to the property of a processed value 22 | 23 | \end{easylist} 24 | \clearpage 25 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/regression-testing.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Regression Testing 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Regression Testing} 9 | \label{sec:regression-testing} 10 | \begin{easylist} 11 | 12 | & \textbf{Regression testing:} Method of testing which ensures previous functionality is preserved, supporting change 13 | 14 | & Unexpected behaviour can be caused by: 15 | && New environments 16 | && Modifying other components 17 | 18 | & Regression test suite is a subset of the test suite 19 | 20 | & Components are tests for: 21 | && Previously fixed bugs 22 | && Units 23 | && System 24 | 25 | & Upon a failing test, one or more of the following should occur: 26 | && Fix the software bug 27 | && Fix stale test inputs 28 | && Change expected behaviour 29 | 30 | \end{easylist} 31 | \subsection{Managing Test Suite Size} 32 | \label{subsec:regression-testing:managing-test-suite-size} 33 | \begin{easylist} 34 | 35 | & Limit regression test suite size by preventing redundant tests (e.g. not useful behaviour, not covered by adequacy criteria) 36 | 37 | & Choosing a subset of tests: 38 | && Conservative approach: Run all tests 39 | && Cheap approach: Run tests which have requirements relating to the modified lines 40 | && Middle ground approach: Run tests affected by how changes propagate by software 41 | &&& \textbf{Change impact analysis:} Identification of how a change affects other components 42 | 43 | \end{easylist} 44 | \clearpage 45 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/test-planning.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Test Planning 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Test Planning} 9 | \label{sec:test-planning} 10 | \begin{easylist} 11 | 12 | & \textbf{Test plan:} Documentation of testing goals, concerns, methodology, metrics 13 | && Guides testing process 14 | 15 | & \textbf{Attribute-component-capability (ACC) testing:} Analysis of how testing addresses user-focused importance of components 16 | && Test requirements and case count are sorted into their corresponding cell 17 | && \textbf{Attribute:} High-level nonfunctional property to ensure (e.g. fast, secure) 18 | && Component: Entity or grouping of software 19 | && \textbf{Capability:} A characteristic of the system which supports a component having a particular attribute (e.g. for a database being secure, passwords should not be stored in plaintext) 20 | 21 | \end{easylist} 22 | \clearpage 23 | -------------------------------------------------------------------------------- /cmpt-473-software-testing-reliability-security/tex/types-of-testing.tex: -------------------------------------------------------------------------------- 1 | % 2 | % CMPT 473: Software Quality Assurance - A Course Overview 3 | % Section: Types of Testing 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Types of Testing} 9 | \label{sec:types-of-testing} 10 | \begin{easylist} 11 | 12 | & Test cases: 13 | && Require an input and expected output/state/behaviour 14 | && \textbf{Oracle:} Evaluation of the output/behaviour of a test 15 | && \textbf{Mock:} Entity which is used to measure or examine behaviour 16 | && \textbf{Stub:} Fake entity which is used during testing to replace a component 17 | 18 | & If external state is uncontrolled, tests will be nondeterministic 19 | && Factors causing lack of control: 20 | &&& Lack of isolation 21 | &&& Asynchronous behavior 22 | &&& Remote services 23 | &&& Time 24 | &&& Resource leaks 25 | 26 | & \textbf{Coverage/adequacy:} Measurement of how well a test suite addresses quality criteria 27 | 28 | & \textbf{Test Driven Development (TDD)}: Software testing where unit tests are created first and used to drive development 29 | 30 | & \textbf{Unit testing}: Software testing of the smallest possible components 31 | && Principles include component isolation, simplicity, ease of understanding 32 | 33 | & \textbf{Integration testing}: Software testing based on the connection of multiple components 34 | 35 | & \textbf{Acceptance testing}: Software testing based on acceptance criteria 36 | 37 | & \textbf{Black-box testing:} Software testing based on the external input specification of a system 38 | && Involves \hyperref[sec:input-space-partitioning]{input space partitioning} 39 | & \textbf{White-box testing:} Software testing based on the internal program structure of a system 40 | && Involves \hyperref[sec:graph-coverage]{graph coverage} 41 | 42 | & \textbf{Fuzz testing:} Method of exploratory software testing which inputs randomly mutated data into a program to evaluate random inputs 43 | 44 | & Test scenarios can be concrete (e.g. $x = 5$) or abstract (e.g. for all $x$, $x > 0$) 45 | && Abstract test cases can generate a test and check the oracle, using: 46 | &&& Testing with randomly generated values 47 | &&& Symbolic execution 48 | 49 | & Testing strategies which evaluate the existing test suite for effectiveness: 50 | && MC/DC 51 | && Mutation testing 52 | 53 | \end{easylist} 54 | \clearpage 55 | -------------------------------------------------------------------------------- /easc-106-earth-through-time/README.md: -------------------------------------------------------------------------------- 1 | # EASC 106 2 | 3 | This Microsoft Word document requires the following fonts: 4 | 5 | * Lucida Bright 6 | * Nexa Bold 7 | * Nexa Light -------------------------------------------------------------------------------- /easc-106-earth-through-time/easc-106.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/easc-106-earth-through-time/easc-106.docx -------------------------------------------------------------------------------- /easc-106-earth-through-time/easc-106.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/easc-106-earth-through-time/easc-106.pdf -------------------------------------------------------------------------------- /engl-101w-introduction-to-fiction/README.md: -------------------------------------------------------------------------------- 1 | # ENGL 101W 2 | 3 | This Microsoft Word document requires the following fonts: 4 | 5 | * Lucida Bright 6 | * Nexa Bold 7 | * Nexa Light -------------------------------------------------------------------------------- /engl-101w-introduction-to-fiction/engl-101w.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/engl-101w-introduction-to-fiction/engl-101w.docx -------------------------------------------------------------------------------- /engl-101w-introduction-to-fiction/engl-101w.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/engl-101w-introduction-to-fiction/engl-101w.pdf -------------------------------------------------------------------------------- /iat-210-introduction-to-game-studies/iat-210.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/iat-210-introduction-to-game-studies/iat-210.pdf -------------------------------------------------------------------------------- /iat-210-introduction-to-game-studies/iat-210.tex: -------------------------------------------------------------------------------- 1 | % 2 | % IAT 210: Introduction to Game Studies - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\textperiodcentered\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\textperiodcentered\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 33 | \usepackage{verbatim} 34 | 35 | \renewcommand{\arraystretch}{1.2} 36 | \renewcommand{\familydefault}{\sfdefault} 37 | 38 | \title{IAT 210: Introduction to Game Studies \\\medskip \Large A Course Overview} 39 | \author{Jeffrey Leung \\ Simon Fraser University} 40 | \date{Summer 2015} 41 | 42 | \begin{document} 43 | 44 | \maketitle 45 | \tableofcontents 46 | \clearpage 47 | 48 | \input{./tex/history-of-play-and-games.tex} 49 | \input{./tex/properties-of-games.tex} 50 | \input{./tex/types-of-games.tex} 51 | \input{./tex/narrative.tex} 52 | \input{./tex/participatory-gaming.tex} 53 | \input{./tex/designing-games.tex} 54 | \input{./tex/reasons-for-game-design.tex} 55 | \input{./tex/business.tex} 56 | \input{./tex/the-audience.tex} 57 | \input{./tex/the-players-perspective.tex} 58 | 59 | \end{document} -------------------------------------------------------------------------------- /iat-210-introduction-to-game-studies/tex/designing-games.tex: -------------------------------------------------------------------------------- 1 | % 2 | % IAT 210: Introduction to Game Studies - A Course Overview 3 | % Designing Games 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Designing Games} 9 | \label{sec:designing-games} 10 | \subsection{General Game Design} 11 | \label{subsec:designing-games:general-game-design} 12 | \begin{easylist} 13 | 14 | & Game mechanics: 15 | && Add verbs/actions to increase the number of mechanical interactions 16 | &&& Allow actions to act on more objects 17 | && Add nouns/objects 18 | & Ensure flow: 19 | && Create small, achievable goals and manageable challenges 20 | && Write clear rules 21 | && Give immediate feedback 22 | 23 | & Allow game goals to be achieved through multiple gameplay gestalts (see subsection~\ref{subsec:the-players-perspective:gameplay-gestalts}) 24 | 25 | & Balance: 26 | && Cake-cutting example: Two people share a slice of cake. One person cuts the slice in half, the other person chooses who gets which slice. 27 | &&& Cutter has an incentive to cut the slice as fairly as possible 28 | &&& Ensures fairness and does not enable cheating 29 | 30 | \end{easylist} 31 | \subsection{Designing Rules} 32 | \label{subsec:designing-games:designing-rules} 33 | \begin{easylist} 34 | 35 | & Designing rules: 36 | && Designed iteratively with trial and error 37 | && Order: 38 | &&& Create operational rules 39 | &&& Create foundational rules and ensure game balance 40 | &&& Use playtesting and iteration to cover every circumstance possible 41 | &&& Create written rules 42 | 43 | \end{easylist} 44 | \clearpage -------------------------------------------------------------------------------- /iat-210-introduction-to-game-studies/tex/the-audience.tex: -------------------------------------------------------------------------------- 1 | % 2 | % IAT 210: Introduction to Game Studies - A Course Overview 3 | % The Audience 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{The Audience} 9 | \label{sec:the-audience} 10 | \subsection{Game Players} 11 | \label{subsec:the-audience:game-players} 12 | \begin{easylist} 13 | 14 | & Stereotypically anti-social teenagers 15 | & Large amount of society 16 | & Ongoing feedback loop created by new platforms and rapid data transfer exists between: 17 | && Businesses 18 | && Game designers 19 | && The audience 20 | 21 | \end{easylist} 22 | \subsection{Hardcore Gamers} 23 | \label{subsec:the-audience:hardcore-gamers} 24 | \begin{easylist} 25 | 26 | & Consumers of a wide range of games 27 | & Can be competitive 28 | & Participate in game culture beyond the game itself 29 | 30 | \end{easylist} 31 | \subsection{Casual Gamers} 32 | \label{subsec:the-audience:casual-gamers} 33 | \begin{easylist} 34 | 35 | & Limited interest in and time for video games 36 | & Do not usually self-identify as gamers 37 | & May play games types such as: 38 | && Puzzle 39 | && Hidden object 40 | && Arcade 41 | && Card/casino games 42 | & May play games on non-game devices 43 | & Requires games which: 44 | && Are easy to learn 45 | && Are quick to play 46 | && Are easily accessible/convenient 47 | && Have either no goal or easily achieveable goals 48 | && Have a flat difficulty curve 49 | & Demographics: Older and more female than other types of gamers 50 | 51 | \end{easylist} 52 | \subsection{Player Personae} 53 | \label{subsec:the-audience:player-personae} 54 | \begin{easylist} 55 | 56 | & Developers must: 57 | && Understand their audience 58 | &&& \emph{Psychographic approach:} Analysis of interests, attitudes, and opinions 59 | && Avoid self-referential design (designing with their own ideals in mind rather than the audience's ideals) 60 | 61 | & \emph{Persona:} Fictional depiction of the psychology and lifestyle of an ideal player 62 | && Created by developers to target the game towards a certain audience 63 | && Includes: 64 | &&& A picture 65 | &&& Personal history and details 66 | &&& Aspirations 67 | &&& Desires 68 | &&& Goals 69 | &&& Use-case scenario with the game 70 | && Begins with a notion of the audience, and improved by data 71 | && Different from a focus group 72 | 73 | \end{easylist} 74 | \clearpage -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/iat-267.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/iat-267-introduction-to-technological-systems/iat-267.pdf -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/iat-267.tex: -------------------------------------------------------------------------------- 1 | % 2 | % IAT 267: Introduction to Technological Systems - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage{circuitikz} 10 | \usepackage[ampersand]{easylist} 11 | \ListProperties( 12 | Progressive*=5ex, 13 | Space=5pt, 14 | Space*=5pt, 15 | Style1*=\textbullet\ \ , 16 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 17 | Style3*=\textasteriskcentered\ \ , 18 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 19 | Style5*=\textbullet\ \ , 20 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 21 | Style7*=\textasteriskcentered\ \ , 22 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 23 | Hide1=1, 24 | Hide2=2, 25 | Hide3=3, 26 | Hide4=4, 27 | Hide5=5, 28 | Hide6=6, 29 | Hide7=7, 30 | Hide8=8 ) 31 | \usepackage[T1]{fontenc} 32 | \usepackage{geometry} 33 | \geometry{margin=1.2in} 34 | \usepackage{graphicx} 35 | \graphicspath{ {img/} } 36 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 37 | \usepackage{IEEEtrantools} 38 | %\usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 39 | \usepackage{listings} 40 | \lstset 41 | { 42 | breaklines=true, 43 | showstringspaces=false, 44 | language=C 45 | } 46 | \usepackage[default, osfigures]{opensans} 47 | \usepackage{siunitx} 48 | \usepackage{textcomp} % Allows the use of \textbullet with the font 49 | \usepackage{tikz} 50 | \usepackage{verbatim} 51 | 52 | \renewcommand{\arraystretch}{1.5} 53 | %\renewcommand{\familydefault}{\sfdefault} 54 | 55 | \title{IAT 267: Introduction to Technological Systems \\\medskip \Large A Course Overview} 56 | \author{Jeffrey Leung \\ Simon Fraser University} 57 | \date{Spring 2016} 58 | 59 | \begin{document} 60 | 61 | \hypersetup{pageanchor=false} 62 | \maketitle 63 | \tableofcontents3 64 | \clearpage 65 | \hypersetup{pageanchor=true} 66 | 67 | \input{./tex/introduction-to-embedded-and-computing-systems.tex} 68 | \input{./tex/electricity-and-circuit-design.tex} 69 | \input{./tex/sensors.tex} 70 | \input{./tex/actuators.tex} 71 | \input{./tex/technological-systems.tex} 72 | \input{./tex/networking.tex} 73 | \input{./tex/arduino.tex} 74 | \input{./tex/processing.tex} 75 | 76 | \end{document} 77 | -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/img/arduino-switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/iat-267-introduction-to-technological-systems/img/arduino-switch.png -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/img/arduino-uno-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/iat-267-introduction-to-technological-systems/img/arduino-uno-diagram.png -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/img/force-sensing-resistor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/iat-267-introduction-to-technological-systems/img/force-sensing-resistor.png -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/img/network-direct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/iat-267-introduction-to-technological-systems/img/network-direct.png -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/img/network-ring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/iat-267-introduction-to-technological-systems/img/network-ring.png -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/img/network-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/iat-267-introduction-to-technological-systems/img/network-star.png -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/tex/actuators.tex: -------------------------------------------------------------------------------- 1 | % 2 | % IAT 267: Introduction to Technological Systems - A Course Overview 3 | % Section: Actuators 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Actuators} 9 | \label{sec:actuators} 10 | \begin{easylist} 11 | 12 | & \emph{Pulse-width modulation:} Emulation of analog output using digital-only actuators by pulsing the output on and off repeatedly 13 | && The magnitude of the analog output is proportional to the amount of time the output is on relative to the amount of time the output is off 14 | 15 | \end{easylist} 16 | \subsection{Light and Display} 17 | \label{subsec:actuators:light-and-display} 18 | \begin{easylist} 19 | 20 | & \hyperref[subsubsec:electricity-and-circuit-design:circuits:components]{LEDs}: 21 | && LED driver chip regulates the power to a matrix (grid) of LEDs 22 | 23 | & \emph{Liquid Crystal Display (LCD):} Display which allows for detailed display on a screen 24 | && Generally use 4 or 8 pins to input data and 3 pins for communication synchronization 25 | 26 | \end{easylist} 27 | \subsection{Motion} 28 | \label{subsec:actuators:motion} 29 | \begin{easylist} 30 | 31 | & Characteristics of motors: 32 | && Voltage 33 | && Critical current values: 34 | &&& \emph{Stall current:} Amount of current used when the motor is applying maximum torque due to being held in place during operation 35 | &&&& Highest possible current during normal operation 36 | &&& \emph{Running current:} Amount of current used when the motor is activated normally 37 | && Speed 38 | && Torque 39 | && Position (servos/steppers only) 40 | & Types of motors: 41 | && \emph{DC motor:} Motor which has a controllable speed 42 | && \emph{Servo/stepper motor:} Motor which outputs a controllable position with constant, preset speed 43 | &&& Controlled by the amount of time of an input pulse 44 | 45 | \end{easylist} 46 | \subsection{Sound} 47 | \label{subsec:actuators:sound} 48 | \begin{easylist} 49 | 50 | & \emph{Piezospeaker:} A speaker which uses \hyperref[sec:actuators]{pulse-width modulation} and \hyperref[subsec:electricity-and-circuit-design:types-of-electricity]{piezoelectricity} to output a sound 51 | 52 | \end{easylist} 53 | \clearpage 54 | -------------------------------------------------------------------------------- /iat-267-introduction-to-technological-systems/tex/processing.tex: -------------------------------------------------------------------------------- 1 | % 2 | % IAT 267: Introduction to Technological Systems - A Course Overview 3 | % Section: Processing 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Processing} 9 | \label{sec:processing} 10 | \begin{easylist} 11 | 12 | & Processing programming language: 13 | && Built upon Java 14 | && Designed to create visually-oriented and interactive programs 15 | && Open source 16 | 17 | & \lstinline[language=Java]{void setup()}: 18 | && Custom-defined function 19 | && Run once before the other code 20 | && Window size: \lstinline[language=Java]{void size(x, y);} 21 | && Background colour: \lstinline[language=Java]{void background(rgb);} 22 | && Frame rate: \lstinline[language=Java]{void frameRate(frames);} 23 | & \lstinline[language=Java]{void loop()}: 24 | && Custom-defined function 25 | && Run continually 26 | 27 | & Coordinates begin at (0, 0) at the top left of the window 28 | & Colours set on the screen are additive 29 | 30 | & \href{https://processing.org/tutorials}{Official tutorials} 31 | & \href{https://processing.org/reference/libraries}{Processing libraries} 32 | && \href{http://code.compartmental.net/tools/minim}{Minim (Audio)} 33 | && \href{https://processing.org/reference/libraries/net}{Network} 34 | && \href{http://processing.org/reference/libraries/serial}{Serial} 35 | 36 | \end{easylist} 37 | \clearpage 38 | -------------------------------------------------------------------------------- /macm-101-discrete-mathematics-i_partial/README.md: -------------------------------------------------------------------------------- 1 | # MACM 101 2 | 3 | This Microsoft Word document requires the following fonts: 4 | 5 | * Lucida Bright 6 | * Nexa Bold 7 | * Nexa Light -------------------------------------------------------------------------------- /macm-101-discrete-mathematics-i_partial/macm-101.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/macm-101-discrete-mathematics-i_partial/macm-101.docx -------------------------------------------------------------------------------- /macm-101-discrete-mathematics-i_partial/macm-101.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/macm-101-discrete-mathematics-i_partial/macm-101.pdf -------------------------------------------------------------------------------- /rem-100-global-change/README.md: -------------------------------------------------------------------------------- 1 | # REM 100 2 | 3 | This Microsoft Word document requires the following fonts: 4 | 5 | * Lucida Bright 6 | * Nexa Bold 7 | * Nexa Light -------------------------------------------------------------------------------- /rem-100-global-change/rem-100.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/rem-100-global-change/rem-100.docx -------------------------------------------------------------------------------- /rem-100-global-change/rem-100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/rem-100-global-change/rem-100.pdf -------------------------------------------------------------------------------- /see-101w-process-form-convention-in-professional-genres/see-101w.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/see-101w-process-form-convention-in-professional-genres/see-101w.pdf -------------------------------------------------------------------------------- /see-101w-process-form-convention-in-professional-genres/see-101w.tex: -------------------------------------------------------------------------------- 1 | % 2 | % SEE 101W: Process, Form & Convention - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[ampersand]{easylist} 10 | \ListProperties( 11 | Progressive*=5ex, 12 | Space=5pt, 13 | Space*=5pt, 14 | Style1*=\textbullet\ \ , 15 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 16 | Style3*=\textasteriskcentered\ \ , 17 | Style4*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 18 | Style5*=\textbullet\ \ , 19 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 20 | Style7*=\textasteriskcentered\ \ , 21 | Style8*=\begin{normalfont}\begin{bfseries}\textperiodcentered\end{bfseries}\end{normalfont}\ \ , 22 | Hide1=1, 23 | Hide2=2, 24 | Hide3=3, 25 | Hide4=4, 26 | Hide5=5, 27 | Hide6=6, 28 | Hide7=7, 29 | Hide8=8 ) 30 | \usepackage{geometry} 31 | \geometry{margin=1.2in} 32 | \usepackage{graphicx} 33 | \graphicspath{ {img/} } 34 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 35 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 36 | \usepackage{textcomp} % Allows the use of \textbullet with the font 37 | \usepackage{verbatim} 38 | 39 | \renewcommand{\arraystretch}{1.2} 40 | \renewcommand{\familydefault}{\sfdefault} 41 | 42 | \title{SEE 101W: Process, Form \& Convention \\\medskip \Large A Course Overview} 43 | \author{Jeffrey Leung \\ Simon Fraser University} 44 | \date{Fall 2019} 45 | 46 | \begin{document} 47 | 48 | \maketitle 49 | \tableofcontents 50 | \clearpage 51 | 52 | \input{./tex/introduction.tex} 53 | \input{./tex/invention.tex} 54 | \input{./tex/drafting.tex} 55 | 56 | \end{document} 57 | -------------------------------------------------------------------------------- /see-101w-process-form-convention-in-professional-genres/tex/drafting.tex: -------------------------------------------------------------------------------- 1 | % 2 | % SEE 101W: Process, Form & Convention - A Course Overview 3 | % Section: Drafting 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Drafting} 9 | \label{sec:drafting} 10 | \begin{easylist} 11 | 12 | & \textbf{Thesis statement:} Argumentative sentence(s) which declares a clear position on a specific topic 13 | && Must be debatable (ideally controversial) 14 | && Remaining essay content supports the thesis with evidence 15 | 16 | & Choose an order to write - for example: 17 | && Best-known sections (for momentum) 18 | && Introduction (for an overview) 19 | 20 | \end{easylist} 21 | \subsection{Sourcing} 22 | \label{subsec:drafting:sourcing} 23 | \begin{easylist} 24 | 25 | & Academic sources are: 26 | && Peer reviewed 27 | && Writen by an academic 28 | && Published by an academic institution 29 | && Reliable 30 | 31 | \end{easylist} 32 | \subsection{Revision} 33 | \label{subsec:drafting:revision} 34 | \begin{easylist} 35 | 36 | & Over 40\% of writing time should be for revision 37 | 38 | & Revision can be to improve: 39 | && Content quality 40 | && Persuasiveness 41 | && Format conventions 42 | && Organization and structure 43 | && Flow 44 | && Conciseness 45 | && Grammar, spelling, punctuation 46 | 47 | & Strategies: 48 | && Revise different characteristics of the paper over multiple sweeps 49 | && Read the text aloud 50 | && Read a paper copy 51 | && Give your mind a break and return to reread the text later 52 | 53 | & When editing a sentence, review the entire sentence 54 | 55 | & \textbf{Proofreading:} 56 | 57 | \end{easylist} 58 | \clearpage 59 | -------------------------------------------------------------------------------- /see-101w-process-form-convention-in-professional-genres/tex/introduction.tex: -------------------------------------------------------------------------------- 1 | % 2 | % SEE 101W: Process, Form & Convention - A Course Overview 3 | % Section: Introduction 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Introduction} 9 | \label{sec:introduction} 10 | \begin{easylist} 11 | 12 | & To ensure clear communication: 13 | && Consider audience and purpose 14 | && Organize content 15 | && Follow mechanics of good writing 16 | 17 | & \textbf{3 Phases of writing:} Inventing, drafting, and revising 18 | && May be linear or iterative 19 | 20 | \end{easylist} 21 | \clearpage 22 | -------------------------------------------------------------------------------- /see-101w-process-form-convention-in-professional-genres/tex/invention.tex: -------------------------------------------------------------------------------- 1 | % 2 | % SEE 101W: Process, Form & Convention - A Course Overview 3 | % Section: Invention 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Invention} 9 | \label{sec:invention} 10 | \begin{easylist} 11 | 12 | & \textbf{Invention:} Judgement-free generation of ideas and connections of similar ideas 13 | && Creative and messy 14 | && Leads to the generation of structure and content 15 | 16 | & \textbf{Rhetorical issues:} Contextual understanding of a piece of writing 17 | && Occasion 18 | && Intended audience and their characteristics 19 | && Purpose 20 | && Current solution 21 | && Tone 22 | && \textbf{Probing question:} Specific question directed towards the writer for more thought or context which can provide a new critical perspective 23 | && \textbf{Mini question:} Question which explores a specific area of a larger topic 24 | 25 | & Strategies to combat writer's block: 26 | && Work on higher-level tasks (e.g. defining audience) 27 | && Work on less creative tasks (e.g. document structure, bibliography) 28 | && Begin with the easiest section 29 | 30 | & Invention strategies: 31 | && \textbf{Freewriting:} Writing content without stopping or critical thinking 32 | &&& Not coherent or grammatically correct 33 | && \textbf{Brainstorming:} Generation of disjointed ideas without limitation or critical thinking 34 | && \textbf{Clustering/mind mapping:} Connection of similar ideas in a logical manner 35 | && Heuristics 36 | 37 | \end{easylist} 38 | \clearpage 39 | -------------------------------------------------------------------------------- /see-101w-process-form-convention-in-professional-genres/tex/persuasion.tex: -------------------------------------------------------------------------------- 1 | % 2 | % SEE 101W: Process, Form & Convention - A Course Overview 3 | % Section: Persuasion 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Persuasion} 9 | \label{sec:persuasion} 10 | \begin{easylist} 11 | 12 | & Define the action or change the reader should be persuaded to undergo 13 | && Make a specific request 14 | && Show confidence 15 | 16 | \end{easylist} 17 | \clearpage 18 | -------------------------------------------------------------------------------- /see-101w-process-form-convention-in-professional-genres/tex/structure.tex: -------------------------------------------------------------------------------- 1 | % 2 | % SEE 101W: Process, Form & Convention - A Course Overview 3 | % Section: Structure 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Structure} 9 | \label{sec:structure} 10 | \begin{easylist} 11 | 12 | & \textbf{Abstract:} 1 paragraph/page brief description of the paper and its conclusions, for a reader to determine whether to read the entire paper 13 | 14 | & \textbf{Introduction:} 1 paragraph to provide a concise description of the direction of the paper and the main points to be covered 15 | && Begin general, finish specific 16 | 17 | & \textbf{Paragraph:} %TODO 18 | && \textbf{Topic sentence:} Sentence of a paragraph which states the key idea 19 | && \textbf{Concluding sentence:} Sentence of a paragraph which summarizes the paragraph 20 | 21 | \end{easylist} 22 | \clearpage 23 | -------------------------------------------------------------------------------- /stat-100-chance-and-data-analysis/img/xkcd-221-random-number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/stat-100-chance-and-data-analysis/img/xkcd-221-random-number.png -------------------------------------------------------------------------------- /stat-100-chance-and-data-analysis/img/xkcd-552-correlation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/stat-100-chance-and-data-analysis/img/xkcd-552-correlation.png -------------------------------------------------------------------------------- /stat-100-chance-and-data-analysis/stat-100.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jleung51-coursework/notes/c4640bbcb65c94b8756ccc3e4c1bbc7d5c3f8e92/stat-100-chance-and-data-analysis/stat-100.pdf -------------------------------------------------------------------------------- /stat-100-chance-and-data-analysis/stat-100.tex: -------------------------------------------------------------------------------- 1 | % 2 | % STAT 100: Chance and Data Analysis - A Course Overview 3 | % 4 | % Author: Jeffrey Leung 5 | % 6 | 7 | \documentclass[10pt, oneside, letterpaper, titlepage]{article} 8 | 9 | \usepackage[justification=centering]{caption} 10 | \usepackage[ampersand]{easylist} 11 | \ListProperties( 12 | Progressive*=5ex, 13 | Space=5pt, 14 | Space*=5pt, 15 | Style1*=\textbullet\ \ , 16 | Style2*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont} \ \ , 17 | Style3*=\textasteriskcentered\ \ , 18 | Style4*=\textperiodcentered\ \ , 19 | Style5*=\textbullet\ \ , 20 | Style6*=\begin{normalfont}\begin{bfseries}\textendash\end{bfseries}\end{normalfont}\ \ , 21 | Style7*=\textasteriskcentered\ \ , 22 | Style8*=\textperiodcentered\ \ , 23 | Hide1=1, 24 | Hide2=2, 25 | Hide3=3, 26 | Hide4=4, 27 | Hide5=5, 28 | Hide6=6, 29 | Hide7=7, 30 | Hide8=8 ) 31 | \usepackage[T1]{fontenc} 32 | \usepackage{geometry} 33 | \geometry{margin=1.2in} 34 | \usepackage{graphicx} 35 | \graphicspath{ {img/} } 36 | \usepackage[colorlinks=true, linkcolor=blue]{hyperref} 37 | \usepackage[retainorgcmds]{IEEEtrantools} 38 | \usepackage{lmodern} % Allows the use of symbols in font size 10; http://ctan.org/pkg/lm 39 | \usepackage{multirow} 40 | \usepackage{pgfplots, pgfplotstable} 41 | \usepgfplotslibrary{statistics} 42 | \pgfplotsset{compat=newest} 43 | \usepackage{textcomp} % Allows the use of \textbullet with the font 44 | \usepackage{tikz} 45 | \usetikzlibrary{patterns} 46 | \usepackage{verbatim} 47 | 48 | \renewcommand{\arraystretch}{1.2} 49 | \renewcommand{\familydefault}{\sfdefault} 50 | 51 | \title{STAT 100: Chance and Data Analysis \\\medskip \Large A Course Overview} 52 | \author{Jeffrey Leung \\ Simon Fraser University} 53 | \date{Fall 2015} 54 | 55 | \begin{document} 56 | 57 | \maketitle 58 | \tableofcontents 59 | \clearpage 60 | 61 | \input{./tex/elements-of-statistics.tex} 62 | \input{./tex/analysis-of-single-variable-data.tex} 63 | \input{./tex/analysis-of-multi-variable-data.tex} 64 | \input{./tex/data-collection.tex} 65 | \input{./tex/analysis-of-population-proportions.tex} 66 | %\input{./tex/probability.tex} 67 | \input{./tex/measurement-of-data.tex} 68 | \input{./tex/ethics.tex} 69 | 70 | \end{document} -------------------------------------------------------------------------------- /stat-100-chance-and-data-analysis/tex/_template.tex: -------------------------------------------------------------------------------- 1 | % 2 | % STAT 100: Chance and Data Analysis - A Course Overview 3 | % Section: 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{} 9 | \label{} 10 | \begin{easylist} 11 | 12 | 13 | 14 | \end{easylist} 15 | \clearpage -------------------------------------------------------------------------------- /stat-100-chance-and-data-analysis/tex/ethics.tex: -------------------------------------------------------------------------------- 1 | % 2 | % STAT 100: Chance and Data Analysis - A Course Overview 3 | % Section: Ethics 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Ethics} 9 | \label{sec:ethics} 10 | \begin{easylist} 11 | 12 | & Standard ethical procedures: 13 | && \emph{Institutional review board:} Group which judges whether a study will provide valuable information and is statistically sound 14 | && Having an institutional review board ensure that subjects are not harmed 15 | && Collecting assurance of informed consent in advance from all subjects 16 | &&& Information about the nature, purpose, and possible risks of the study 17 | &&& Not required only when it concerns observation in a public area 18 | && Prevention of any possible physical harm 19 | && Keeping all data confidential and anonymous 20 | 21 | & Other considerations: 22 | && Emotional harm 23 | && Privacy 24 | && Deception 25 | 26 | & Examples of unethical procedures: 27 | && Selling products under the guise of conducting a survey 28 | && Publishing fabricated data 29 | 30 | & \emph{Clinical trial:} Experiment which studies the effects of various medical treatments on human patients 31 | && Risks for the current experimental patients; benefits for future patients 32 | && Random comparative experiments ensure the real effects of a treatment are shown 33 | && Medical ethics and international ethics support the interests of the subject over the interests of the society 34 | &&& Therefore, there is only reason to conduct clinical trials when there is: 35 | &&&& Sufficient reason to believe the treatment may help the experimental group 36 | &&&& Sufficient doubt to believe the treatment may help the control group 37 | 38 | 39 | \end{easylist} 40 | \clearpage -------------------------------------------------------------------------------- /stat-100-chance-and-data-analysis/tex/probability.tex: -------------------------------------------------------------------------------- 1 | % 2 | % STAT 100: Chance and Data Analysis - A Course Overview 3 | % Section: Probability 4 | % 5 | % Author: Jeffrey Leung 6 | % 7 | 8 | \section{Probability} 9 | \label{sec:probability} 10 | \subsection{Introduction} 11 | \label{subsec:probability:introduction} 12 | \begin{easylist} 13 | 14 | & \emph{Experiment:} Process which creates a bag of outcomes 15 | & \emph{Sample space:} Set of all possible outcomes 16 | && Denoted by $S$ 17 | & \emph{Event:} Possible outcome which satisfies a given condition(s) 18 | && Denoted by $E$ 19 | 20 | & \emph{Probability:} Value between 0 and 1 (inclusive) representing the proportion of times an outcome/event is expected 21 | && Denoted by $P(event)$ 22 | && Calculation: 23 | \begin{math} 24 | P(A) = \frac{|A|}{|S|} 25 | \end{math} 26 | where |X| is the number of outcomes for X 27 | && 0 means the event is impossible; 1 means the event is certain 28 | && Represented either by a fraction or a decimal value 29 | 30 | && E.g. The probability of getting an odd number when rolling a 6-sided die: 31 | 32 | \medskip 33 | \Deactivate 34 | \begin{center} 35 | \begin{tabular}{ r @{ = } l } 36 | $S$ & Results of rolling a 6-sided die = 1, 2, 3, 4, 5, 6 \\ 37 | $|S|$ & 6 \\ 38 | $E$ & Getting an odd number = 1, 3, 5 \\ 39 | $|E|$ & 3 \\ 40 | $P(E)$ & $\frac{|E|}{|S|}$ = $\frac{3}{6}$ = 0.5 41 | \end{tabular} 42 | \Activate 43 | \end{center} 44 | 45 | & %TODO 46 | 47 | 48 | \end{easylist} 49 | \clearpage --------------------------------------------------------------------------------