==== Information Literacy — instructors' notes and ideas ==== Original PPT slides: {{ :class:il:il2-00.pdf |}} If the lecture is split between two rooms, how well could flipping the class actually work? * students interacting with each other in teams in-class? * enough staff to provide individual help to students or teams? * how can remote students participate effectively in the in-class engagement/learning session? How will the staff be divided between the two rooms? * How will questions from the "annexe" room be forwarded to the main room? * How will questions from remote students be addressed? What social media or other systems can we prepare and use to engage the students? * for their mutual help, peer-to-peer * for them to request/receive help from staff * **how to encourage** * weaker students to post their questions and requests for assistance online * stronger students to help weaker ones Need help with effectively using social media (Pr. Liang? Mr. Katsuma?) * creating MS team with 128 participants (without typing 128 names and clicking add 128 times) * forming groups of students according to abilities * if possible: one strong, one medium, one weaker student per team * is this the right way to manage skill diversity at all? * creating online sub-group for student teams to collaborate * or identifying a free online team support service where they can sign up for free and create their own group ** METALEARNING ** Each week: Students submit three sources of online information that they used. For search engines, say what search terms or phrase was used. For other sources, say how the source was found. For each source: how high is your confidence in the quality of information? === Assignments === What is the preferred method of * distributing assignment materials * SharePoint, Wiki, etc. * collecting assignment materials * is there an online system that can automatically tabulate submission information? Reinforce learning through active reflection. * when learning about text processing, make a text document about making text documents * when learning about presentations, make a presentation about making presentations * when learning about spreadsheets, make a spreadsheet about learning about spreadsheets (how?) Or motivate learning by orienting material towards student interests. * make a text/presentation/spreadsheet document about your home/hobby/... Use active/literate materials to present and demonstrate concepts interactively offline * a text document that teaches you text formatting by explaining how to reformat its own contents * etc. === TODO === * finish class outlines * find online resources for every class * finish designing assignments and evaluation methods * prepare lecture material * videos: use third party videos where possible? * reference: use online short courses where possible? [[http://www.instructionaldesign.org/theories/experiential-learning/]] [[http://www.instructionaldesign.org/theories/constructivist/]] [[https://artofeducation.wordpress.com/2012/05/08/differentiated-instruction-3/]] [[http://www.tecweb.org/styles/gardner.html]] [[https://tertiary-education.studentnews.eu/s/2328/57788-Tertiary-education/2879256-12-Finland-Teaching-methods.htm?c1=15384]] [[https://artofeducation.wordpress.com/2012/06/07/what-we-can-learn-from-finland-students-are-more-than-test-scores/]] [[https://www.usuniversity.edu/login/computer-literacy-tutorials/]] ==== Week 1 — Professional communication tools ==== ** Intro **\\ Course personnel and web site. Course outline: information, digital, computer, and general literacy. In this course we concentrate on the practical aspects of using computers to communicate any kind of information effectively. We will cover many different aspects about how to find, retrieve, store, manipulate, and share information using computers and networks in a safe and efficient manner. * **Information Literacy** refers to a set of skills that enables a person to identify an information needed, locate and access the required information, evaluate the information found, and communicate and use that information effectively. With the explosion of information available electronically, both good and bad, information literacy has taken on a major role in all educational settings. We therefore concentrate on aspects of information literacy that relate in particular to using computers and networks to use information in an academic setting. * **Literacy** means the ability to locate and use printed and written information to make decisions and to function in society, both personally and professionally. * **Computer Literacy** means the ability to use the computer and basic computer applications to complete practical tasks associated with your work, study, or daily activities. * **Digital Literacy** is the ability to effectively and critically use digital technology to navigate, evaluate, and create information. It includes the ability to understand and use information that is presented in multiple formats. === Communication tools === Interactive vs. non-interactive. Advantages and disadvantages. === E-mail === Still the standard communication tool in professional life (academic, industry). E-mail paradigm: sender, encoder, transport, decoder, recipient. Parts of the e-mail message: date, from, to, cc, bcc, subject. == E-mail addresses == * recipient's name, "@" sign, place to which mail should be delivered * cf., conversation: send a message to Mark at home, send another to Mary at work == Email etiquette (netiquette) == //Note on presentation style: the main points below are presented descriptively (not prescriptively) as solutions to questions intended to encourage intuitive understanding// * //what is the purpose of e-mail communication?// * //how can I approach e-mail so as to maximise its efficiency?// * //what is the purpose of a subject line?// * //what should I put in a subject line?// * //is there any reason to change/edit the subject line?// * //what is the purpose of a reply?// * //how can I structure my reply to be most efficient?// * //is context important?// * //what kinds of quotation are most effective?// * //how much of the original message should I quote?// //etc.// * always use a relevant subject line; some people ignore e-mails unless the subject line indicates relevance/importance; * initial greeting, as if you were writing a paper letter using title or formal name; if you don't know if a woman is married, use "Ms." instead of "Mrs." or "Miss" * professional: Dear Sir, Dear Madam, Dear Professor, Dear Mr. Secretary, Dear Dr. Spock, Dear Ms. Jones, Dear Mr. Kite, or in a message to many people you can begin with: Dear all, Dear colleagues * personal: Dear Sally, or more informally: Hi Sally, Hello Sally. * include a pleasantry if you have not talked to the person for a while * professional or personal: I hope you are well. * if you are replying, thank them for their previous message: * professional: Thank you for your message concerning laboratory waste materials. * personal: Thanks for the info about all those cool vacation destinations! * write simply, clearly, and concisely; include only necessary content; if you have longer content to include, add it as an attachment * if you have several topics of conversation, consider sending one e-mail per topic * e-mail is not dynamic like in-person conversation; you cannot modify your delivery based on recipient reaction; convey your mood or expression using emoticons for smiling, winking/joking, regret/sadness * **never** assume e-mails are private; recipients can add others to cc: line, or you may accidentally "reply all" instead of "reply sender" * if you have to include confidential information, put it in a password-protected attachment and send the password separately (preferably by telephone in the most sensitive situations) * never type in all-capitals, because THIS IS LIKE SHOUTING in face-to-face * and never, ever use alternating case, for any reason: tHiS kInD oF wRiTiNg Is PoPuLaR wItH tEeNaGeRs BuT sErVeS oNlY oNe PuRpOsE wHiCh Is To MaKe ThE cOnTeNt ExTrEmElY dIfFiCuLt To ReAd * write properly: check spelling and grammar; SNS shortcuts for limited message size such as "How R U 2day? I'm gr8, OK C U 2nite!" have no place in e-mail conversations; * writing proper sentences is just as easy and quick and you have unlimited text space in an e-mail * use a level of politeness that is appropriate; for professional e-mails never use slang, strong language, or other inappropriate content (imagine you are having a face-to-face conversation with all the people who will receive the e-mail) * be sensitive to cultural differences: if writing to Japanese, put sentences on a line of their own; if writing to non-Japanese, run sentences together horizontally into a paragraph, etc. * proof read every message before sending it; put yourself "in the place" of the recipient and check that it communicates efficiently and clearly * avoid flaming: voicing strong opinions or arguing; never respond when you are angry; if you cannot help writing while angry, read it again the next day before sending; * abusive e-mails are just as unprofessional as face-to-face abuse (and are just as much harassment and can get you fired, expelled from university, etc.) * put your name (and other contact information if appropriate: official title, telephone number, postal address, etc.) at the end of your messages * precede it with a pleasantry if appropriate: "Looking forward to your reply." * if you are in a hurry for a reply, say so politely: "Please let me know at your earliest convenience." * formal ending (to lawyer, doctor, etc.): "Sincerely, Jim" or "Faithfully, Jane" * very polite professional ending: "Best regards, Jim", or "King regards, Joan" * professional ending (work or university): "Regards, Jack" * do not send spam or propagate chain mails * respect copyright; if you include material written by someone else include either a link to the original online or an attribution (author's name) * if you forward an e-mail, it is almost always appropriate to cc: the original sender so they know who reads their mail and who might respond to it * consider if you need to forward the entire message: edit the content to send only the relevant part(s), if you can * when you receive e-mail, respond to it in a timely manner * if you cannot reply to an important e-mail within a reasonable time, send a short replay saying you received the message and when you think you can reply properly * if the e-mail contains important information but does not need a reply, send a very short acknowledgement of receipt: Dear Katsuma-san, Information received - thank you! Regards, Ian * if you add or remove people from the cc: line when replying, say so at the start of your e-mail * reply to the fewest people possible: use reply-to-sender whenever you can (make reply-to-sender be the default in your mail reader, if you can) * be careful of replying to all when your reply is meant only for the sender * especially so if you include some informal comment about the other people in the conversation that you would not want them to read * don't send "me too!" messages to a large group of recipients * if you have to, send a "me too!" to the original sender only * the original sender can always follow up with "five more people contact me to say they have the same problem" if that information is relevant * if composing an original message, put fill in the address last to avoid sending a half-finished message by accident * when adding the to: address, beware of auto-fill from contact lists that might put the wrong recipient with a similar name to the person you intended * use plain text if possible: it makes smaller messages, they are more "portable" (can be read anywhere), and you are not tempted to use distracting "pretty" formatting * if you receive e-mail not intended for you, reply with a short note to let the sender know * however, if the e-mail looks at all suspicious then just ignore it * the sender might be testing your e-mail address to see if it is current, before including it in a list of "active" e-mail address that they will sell to advertising companies == Effective communication and organisation == * change the subject line if you change the topic; especially important for people with threaded e-mail viewers; * topics are organised by thread, and people ignore threads that are not relevant to them; changing topic starts a new thread. * Changing subject line to reflect new topics also helps when searching for e-mails; * some mail readers (gmail) automatically group "conversations" together, and good subject lines are essential; * if you change the subject line, retain some indication of the original, e.g. "Where to meet next weekend [was: Possible vacation activities]" * quote the original message, but do not quote the entire message and then reply underneath; * instead either reply at the top and leave the quoted message underneath, or reply in-line by adding your responses in the middle of the quoted original; * this is best with very short quoted sections (edit the quote sections if necessary to keep only the relevant text); * if it is not obvious you are replying in-line, say "responses are in-line below" at the top of your message == Attachments == Documents attached to an e-mail message. * Beware of large attachments: some mail programs will delete your mail without any warning or indication. * How to zip/unzip large files or folders with many files. * Hint: use a .txt file attachment or .zip the content if layout is important (viz, ASCII art). == E-mail safety and security == E-mail is a potential way an attacker can inject viruses or malware into your computer, or steal your personal information (rapidly followed by your personal money, possessions, etc.). * always use an e-mail service, or your own program, that scans attachments for viruses * be especially distrustful of attachments you were not expecting * do not click on web URLs in messages from people you do not know * even from people or organisations you know, there can be counterfeit e-mails with links to malicious sites * always check URLs before clicking on them (hover the mouse and read the URL, or right click to "copy link" and then inspect it in your browser's address bar before pressing ENTER) * be very careful of cleverly disguised URLs, e.g: * instead of "account.amazon.co.jp" you might be tricked into clicking on "account-amazon.co.jp" * the web page might look exactly like amazon.co.jp but will actually steal your username and password when you try to log in * it might (e.g.) steal your login details, tell you "password incorrect", and redirect you to the real amazon site so that you suspect nothing illegal has happened * never, ever reply to anyone asking for any kind of financial details or other personal information (e.g., the famous Nigerian crown prince who needs to send 100 billion yen to your account in return for you keeping 50% of it) * no legitimate organisation will ever ask you to give them your password by e-mail, or any other messaging service == E-mail filters == Most e-mail clients (Apple iMail, Mozilla Thunderbird, etc.) let you set up filters to perform automated actions on your e-mail. * match e-mail by sender address, recipient address, keywords in the subject line, etc. * filters can automatically move mail to a specific folder, or delete them * e.g., I have rules for * putting Amazon e-mail about orders into a specific folder * automatically deleting e-mail from several senders who somehow manage to get through my spam filter == Other communication channels == There are lots of them. They typically differ from e-mail either because * they are public forums where anyone (or your entire team) can read messages * they are for "instant messaging" when you have to communicate with a minimum of delay * they allow only very short messages or small images * they provide specialised support (like automatically linking content in your messages with management tasks, to-do items, etc.) Informal channels, not so useful for work: Instagram, Facebook Informal channels that can be useful for work: SMS, Line, etc.; e.g., for announcing your train is delayed and you will be late for a meeting Formal channels that support work: Slack, MS Teams, specialised sites like github.com for software development (issues, bug tracking, task assignment, etc.) == Texting == Faculty and managers and more likely to prefer email while students and new hires may be more likely to use texting for their primary communication. Text messages are brief and come with the expectation that they will be quickly answered within a few minutes to a couple of hours. E-mails are often longer and a response may not be expected for 1 to 2 days. E-mails are more likely to be classified and saved, and referenced again long after they were sent. Because they are brief, text messages tend to be condensed, be more informal, and use more abbreviations. Follow these general guidelines when texting in a professional setting: * Ask permission before texting as some faculty may prefer communication by email, or may not even have an account for texting and will require all communication to be by e-mail. * If you do text, always identify yourself. Configure your smartphone to include a signature file with your name in all text messages. * Use texting only when it is appropriate. Texting is best used when you require a quick response or if you want to share a key piece of information. Anything more should be moved to e-mail or a live conversation. * Keep it brief. As a general rule, a text message should be no more than 150 characters. * Be factual and on topic. Expressions of emotion such as emojis usually do not belong in a text sent in a professional setting. * Use abbreviations with care. Abbreviations are easy to misunderstand or misinterpret. * Respond to incoming texts as soon as reasonability appropriate. However, be considerate of your environment: are you are driving, or in the middle of an important conversation? Wait for the appropriate time before responding. * Use correct spelling and punctuation evenin texts. Proper punctuation helps to keep your message clear. Poor spelling indicates you do not know the correct spelling or maybe do not care. * Nothing written is ever confidential. Be prepared for your text to be forwarded or shared when you least expect it. === Assignment (graded) === ** We could also reverse this: Mr. Katsuma sends an e-mail to the entire class, and everyone has to "reply-to-sender" with the requested information. ** Find an image that you like a lot (either on the Internet or a personal image that is OK to share). Download it. Compress it into a .zip file. Write an e-mail to: katsuma.yoshiyuki@kuas.ac.jp and attach the .zip file with the image to the message. In your message: * use a proper subject line * use a proper greeting * explain what kind of file you have attached to the e-mail * use a proper closing and "signature" Mr. Katsuma will respond to you with a short question (actually, four questions but we won't say so at first): Dear course member, Thank you for your e-mail and the attached image. Can you tell me... 1. Why did you choose that image? 2. Where did you get the image? 3. What do you think are the four most important rules that you should always do when using e-mail? 4. What are four examples of things you should not do when using e-mail? Looking forward to your reply! Regards, Katsuma Yoshiyuki Reply to him, quoting his question(s), and responding to each of them in-line. **Grading**\\ 10 points maximum for * proper initial e-mail * subject, greeting, proper sentences, name and signature [3 points] * zipped attachment with image [2 points] * proper reply * greeting, proper sentences, name and signature [2 points] * inline answers about the image [1 points] * inline about four "must dos" of e-mail [1 points] * inline answer about four "do nots" of e-mail [1 points] ==== Week 2 — Text processing ==== Simple text editors for trivial documents: Notepad, TextEdit, LeafPad * recipes, shopping lists, to-do lists, notes, meeting minutes * beware line-end conventions * on windows, Notepad will not display Mac or Linux documents properly because of line endings * solution: install Notepad++ instead which can do the right thing Serious text editors * for people who spend most of their time editing text (programmers, web designers, etc.) * Emacs, Vim, etc. [[https://www.toptal.com/it/programming-editors-a-never-ending-battle-with-no-clear-winner|Overview of popular text editors]] Desktop publishing * WYSIWYG -- what you see is what you get * content and layout developed at same time * immediate feedback of final appearance * advantages: easy to use * disadvantages: * difficult to make professional looking documents * formatting options hidden in difficult-to-find places or obscure pop-up menus * encourages authors to concentrate on layout far too early instead of concentrating on content first * you are forced to use their WYSIWYG built-in editor, which in most cases will be atrocious compared to a dedicated text editor * e.g., for home or business: Word, LibreOffice * e.g., professional publishing: Quark Express, Adobe InDesign * mark-up * content and layout are separated * add annotations to the content to specify its purpose (text, heading, quotation, itemized list, etc.) * layout is automatic based on the annotations * advantages: * encourages authors to concentrate on content * default layouts often produce professional-looking results * you can use your favourite text editor to prepare the document * disadvantages: * modifying layout requires expertise in how the mark-up language is implemented * e.g., for home or business: "markdown" for Wikis, documentation, blogging * e.g., professional publishing: Web HTML+CSS for corporate web sites, LaTeX for scientific publishing === MS Word === Online resources: [[https://support.microsoft.com/en-us/word|MS's own tutorials]] Set your Word UI language to English! == Configuration == Setting your author name and initials, default paper size, spelling and auto-correction preferences, character encoding (**always** use UTF-8), etc. == Getting started == * create a blank document * the file menu: save as, save, export to PDF * adding text and headings using styles * using styles from the outset gives you advantages, such as automatic table of contents * spell checking, find-and-replace * using keyboard shortcuts to speed up copy, cut, paste, find/replace * counting the number of words in your document == Basic formatting == * fonts and font sizes * never, ever, use a Japanese font to typeset text written with roman alphabet * absolutely everything about the end result is wrong and native readers find it very unpleasant to read * Western languages always use proportional spacing unless there is a very good reason not to * consider the final use of your document: if it will be printed or converted to a PDF then **change the default font** * Calibri looks OK for on-screen documents displayed on Windows computers (Century is hardly any better) * it looks utterly ghastly in every other possible context * suggestions: Times New Roman for normal text, TNR or Helvetica for headings, Courier for mono-spaced text (code, listings, etc.) * serif and sans-serif fonts * for online documents always prefer sans-serif fonts (the simpler characters are more legible on pixelated displays) * for printed documents always prefer serif fonts (the decorations greatly aid the eye in identifying patterns leading to faster and easier reading) * font sizes: optimal line length is about 60 characters; upper limit is about 75 characters * adjust font size based on column width: for multi-column text (newsletters, pamphlets) use a smaller font size * alignment and justification * if the columns are narrow relative to text size, use ragged right formatting * otherwise justified text is preferred * how to copy and paste formatting * golden rule: every formatting choice you make should make the content more accessible to the reader * limit the number of typefaces that you use to two or three * limit or avoid the use of coloured text * in general: the simpler you keep your document, the easier it is for the reader to read * always put yourself in the position of the reader and ask "how would I like to see this material presented?" == Lists and quotations == * bulleted lists, enumerated lists * how to customize the numbering (e.g, after breaking a long list with a sentence of normal text) * how to format long quotations using indented paragraphs == Using the ruler: indentation == * how to apply indentation using the ruler * how to fix hanging indentation in lists * golden rule: **never** use spaces to manually align content in multi-line list items or other situations * it is immediately and obviously wrong to anyone with an eye for typography (the alignment will never be exactly right) * your alignment will break as soon as you modify the text == Using the ruler: tabs == * left, right, center, and decimal tabs * how to set, adjust, and clear tab stops == Line spacing == * when to use it (manuscripts and drafts that will be printed and then hand-commented in writing) * 1.5 x spacing is almost always better than literal 2 x double spacing == Page formatting == * changing page margins * using multiple columns * changing document or single page to landscape orientation * using headers and footers * page numbering * explicit page breaks == Pictures and tables == * inserting tables * inserting pictures == Hyperlinks == * do you really need them? * they only work in original Word documents or in PDF readers that support hyperlinked text * put yourself in the position of the reader who has to print the document on paper == Mathematical formulae == * how to create simple mathematical formulae == Collaboration == * commenting * tracking changes * accepting and rejecting changes * online collaboration: SharePoint, etc. === Assignment (graded) === Either: create a short document about yourself (home town, hobby, favorite things, etc.) * include an automatied table of contents, at least one list of items, a photograph (with text flowing around) * maybe format it like a resume? * save your document to a SharePoint folder using your ID as the document title Or: download a prepared Word file that contains a "literate tutorial" covering * setting heading styles and inserting a table of contents * formatting several sentences as itemized lists * inserting a photograph * making a table * saving the document to a SharePoint folder using your ID as the document title * **questionnaire** * previous experience with office, networking, internet applications, scripting and automation * results can be used to form groups for teamwork in later classes === Preparation for next class === TBD ==== Week 3 — Presentation preparation ==== Presentation software: making slides, page templates, images and drawings, export as PDF, math formulae Output formats: PDF for sharing and printing Golden rule: * everything in your slide is about maximising the (efficiency of) transfer of information to your audience * everything in your slide that does not help to communicate content **decreases** the effectiveness of your slide * make sure everything in the slide has a purpose * does your fancy coloured background make the slide more readable? * does your little animation in the corner help concentrate your audience's attention on the main content of your slide? * can the audience read your slide very quickly, so as not to be distracted from what you are saying? * does your slide make it easy for your audience to ask questions at the end * page numbers, page titles, divisions of the talk into larger sections by topic * is your slide content primarily an aid to the audience to understand your talk, or an aid to you to remind you what to talk about * if the latter, would it be better to write your talk outline on catalogue cards and read them instead of your slides? * if you don't have to write your script on your slides, can you use something more effective instead -- like a picture? === Assignment (graded) === Make a short article or slide show on a topic of interest, including graphics or photos. * self-introduction * your home town * your favorite things at the convenience store * your daily routine (and what you like/disklike about it) Save as PDF and e-mail it to the instructor. Or: in-class engagement activity * PPT document asking students to extend with * new pages using different templates * images * simple line drawing * short video clip recorded from inside PPT * math formula * upload to SharePoint or OneDrive from within PPT * invite the TA to view the document === Next week preparation === TBD ==== Week 4 — Number processing ==== Spread sheet software: tabulation, formulae, import/export as CSV files tricks to anchor cell references, graphs and charts == Integration with Word/PPT == == Connections to external data == == Formatting == === Assignment (graded) === TBD === Next class preparation === TBD ==== Week 5 — File system organisation ==== Why using the command line to access your files will make you five times more productive and a more effective engineer === Kinds of media: SSH, HDD, Flash === * reliability, MTBF, avoid flash for anything you care about (assume 100% failure rate) * importance of regular backups === Hierarchical file system layout and organisation === * directories (folders) vs regular files * hierarchical organisation: tree metaphor * organisational strategies * by kind, by date, by project, by ... === Sharing files and folders === * links (shortcuts) * multiple volumes (disks), local or remote * Windows way: start a whole new tree and give it a single-letter name * Modern way: designate a "mount" point within the existing tree that becomes a bridge to the disk or network filesystem * file system path names * compare: web URLs to identify pages on a web site === File system navigation === Finder/Explorer vs. the command line * clickety-click nagivation and path name equivalent * listing directories * sorted listings * additional information about files === File attributes === * access permissions * timestamps * special attributes for directories (sticky bits, etc.) === Assignment (graded) === TBD === Next class preparation === TBD ==== Week 6 — The command line ==== Why using the command line for everything will make you ten times more productive and a more effective engineer * Apply operations to many files at once * Save commands in a script file to automate data processing tasks === Terminal ‘shell’ vs. Windows command prompt === === Commands and arguments compared to words in text === === Processing file contents using command-line programs === Searching, sorting, modifying, analysing data in text files === === Standard input and output === === Pipelines: combining simple commands to perform complex tasks === === Using CSV files as simple databases === === Editing plain text files === === Online resources === [[http://swcarpentry.github.io/shell-novice]] Commands and arguments versus words in text Searching, sorting, modifying, analysing data stored in text files using command-line tools Standard input and output, pipelines: combining simple commands to perform more complex tasks using CSV and text files (e.g., from "office" tools) as simple databases Editing plain text files === Assignment (graded) === Extract, analyse and generate a report on the contents of many files. E-mail the script, and its results, to the instructor. === Next class preparation === TBD ==== Week 7 — Command sequencing ==== === Files as a natural target for automated processing === Rationale: files are the first "concrete" objects students formally encounter, so they make a natural target for automated processing. === Scaling operations === Operating on on one file => performing bulk operations on many files === Scripts === Saving sequences of shell commands to automate a process. * using a script as a new command in a pipeline == Editing text and shell script files == == Accessing command-line arguments in shell scripts == === Assignment (graded) === TBD === Next class preparation === TBD ==== Week 8 — Shell variables ==== === Variables === * assigning, accessing === Filename expansion === * globbing === Iterating over multiple files using a variable === * for .. in .. do .. done === Parameter substitution === * Prefix, suffix removal * Pattern replacement * File name manipulation === Indirect command execution === * Using command output as an argument to another command === File attribute manipulation === * chmod * touch === Assignment (graded) === TBD === Next class preparation === TBD ==== Week 9 — Conditionals and loops ==== === Command exit status === * Success or failure as useful information === The ‘if’ statement === * Selecting behaviour according to success or failure * Selecting behaviour according to variable content === The ‘case’ statement === * Selecting behaviour according to string patterns === The ‘while’ statement === * Repeating behaviour according to a condition === Common idioms in shell scripts === === Scriptable commands: sed, awk === === Examples === Combining scripting and command-line tools for data management. Search/organise music/photo collection by tags, simple catalogue card deck, etc. === Assignment (graded) === * Extract, analyse and generate a report on the contents of many files (e.g., histogram of tag values). * Create a script to back up the contents of one folder to another, named after the date and time * a kind of DIY versioned backup E-mail the script and results to the instructor. === Next class preparation === TBD ==== Week 10 — The Internet ==== === How the Internet works === == names, addresses and routes == * a name is what you seek * an address is where to find it * a route is how to get there == the parts of an IP address == == the DNS == == the difference between the Internet and the Web == === Standard services === web, ssh, mail, ... === Finding information online === == Search engines for text and other media types == * Wikipedia, YouTube * pop culture vs. information * bias, censorship * permanence of online data, etc. * beware vanishing references * how to use [[http://archive.org]] * media rights * reliable sources: Wolfram MathWorld, Google scholar, RG, digital libraries (, cf. physical library?), citeseer, ACM/IEEE DL, DOI, etc. * beware that these are not necessarily immune to the problems of the next section == Media literacy == media bias and the importance of original research * the media **are** lying to you, until you prove to yourself otherwise on a case-by-case basis * who owns the media? do they have an agenda? can the (their) media be used to influence the beliefs (misconceptions) of the entire population? * scientists can lie to you too (check conflicts of interest or funding bias) * would you trust a survey on the health impact of car exhaust fumes that was sponsored by an oil company? * would you trust a survey on lung cancer from a lab that was financed by a tobacco company? * beware governments funding research which furthers or confirms their political agendas * learn to distinguish opinion from fact * seek original sources for all facts that you use or that affect you * insist on watertight references to original sources for all "facts" received from or quoted by media or authority figures (especially politicians) * notice ways in which beliefs, opinions, and superstitions are framed as statements of fact * understand category errors and practice noticing them * become familiar with the standard methods that media, organisations, and individuals use for lying through statistics * "There are three kinds of lies: lies, damned lies, and statistics" [unknown, via Mark Twain] * "Some people use statistics as a drunk man uses a lamp-post: for //support// rather than for //illumination//" [Alfred Housman] * look for experimental results that are statistically unbiased and independently reproducible (and which have been) === Online resources === [[https://edu.gcfglobal.org/en/topics/internet/]] === Assignment (graded) === TBD === Next class preparation === TBD ==== Week 11 — Data mobility ==== The network is the computer * Remote login with ssh * Remote desktop with RDP/VNC * Remote windows with X11 Network file systems: NFS, SMB, AFP File transfer protocols and applications * FTP, scp, rsync Data distribution and file sharing * Centralised: Web site, FTP server, Dropbox * Decentralised: peer-to-peer, Syncthing * Advantages and disadvantages How to share very large files === Assignment (graded) === Download a text file from a server, modify and edit it using command-line tools, upload the result (to where???). === Next class preparation === TBD ==== Week 12 — The World Wide Web ==== The Internet vs. the World Wide Web Uniform resource indicators and locators * URI components and interpretation of web addresses Content delivery * Server * Client * Protocol Hyper-Text Transfer Protocol Hyper-Text Mark-up Language Anatomy of a simple web page Using a browser as a previewer for local HTML files === Assignment (graded) === Create a simple web page: "Hello, web!" Send the page (or a URL to an online version) to the TA by e-mail === Next class preparation === TBD ==== Week 13 — Content creation ==== HTML and the structure of web pages * Meta content * Body content Common tags and content types * Headings, paragraphs, lists, tables * Anchors * External links * Internal links * Images and other media types; appropriate image/video resolution, etc. Style * old way: tag attributes * new way: cascading style sheets Web page verification * online HTML verifiers Search Engine Optimisation? Content management systems * Wordpress * Wikis Markup (HTML) vs. markdown (WP, Wiki, Github, ...) === Assignment (graded) === Hand-made web page on a topic of interest * proper meta tags for charset and title * body: headings, paragraphs, list, table, image * hyper-refs === Next class preparation === TBD ==== Week 14 — Web applications and cloud services ==== === How they work === Client-server model and HTTP POST requests Automatic content generation Server-side: PHP + database Client-side: JavaScript Structured data mobility: XML and JSON == benefits == your services run on a virtual computer (one rain drop in a cloud of identical rain drops) * it is often easy to provide transparent fail-over to another cloud server when yours fails * it is often easy to provide load balancing and scaling by adding/removing servers from a pool as demand requires the software is never out of date * security fixes can be timely * feature updates happen for free == risks == there is no such thing as the cloud, it's just someone else's computer your data is stored on someone else's computer. * if that someone else is a commercial entity, and the company fails or cancels the cloud service, your data is lost forever. * they may or may not be performing backups * if they are, they may not be backing up your data * if they are, they may not be willing to restore it for you (cf., famous google mail cases) * data formats might not be readable by your own applications * data you really care about has to be exported to a portable format every time it is changed * you have no control over who is looking at your data your application runs partly on someone else's computer, partly on your computer * on your computer, typically using JavaScript in the browser * you are entirely dependent on their software remaining compatible with your browser * if they update their software, the application may break for you (cf., MS Teams on Mac, Etherpad on Debian, etc.) * your customisation options are severely limited or simply nonexistent the software is never out of date * the service provider can **remove** features (that you depend on) as well as add them one way to obtain the benefits without the risks: * run your own cloud service on your own computers * run your own cloud service on virtual computers in the cloud * paying attention to security, e.g., use end-to-end encryption between clients and only store strongly encrypted data on the server === Types of cloud services === * SaaS - software as a service * PaaS - platform * IaaS - infrastructure * FaaS - function * MBaaS - mobile back-end * serverless computing === Types of cloud web applications === == File management == == Document management == == Source code control == * Data and code repositories * File versioning * Check-in, check-out, modify+commit * Branching, merging, conflict resolution * Centralised (Subversion) vs. decentralised (Mercurial) vs. github/lab * Risks and benefits * Why you should always use a repository for important source code == Project management == === Setting up your own === LAMP/MAMP stacks open-source resources for self-hosted cloud services | ** use case ** | ** systems ** | | source code control | Gitea (git only), Phabricator (git, Subversion, Mercurial) | | project management | Phabricator (source code) | | portfolio management | Mahara | | collaborative document editing | Etherpad | | file synchronisation | Syncthing | | wiki | Dokuwiki | | comprehensive services | Nextcloud | | blog | Wordpress, Hugo | === Assignment (graded) === TBD === Next class preparation === TBD ==== Week 15 — Safety and security ==== Sensitive information * Confidential: personal, financial, proprietary, personally identifiable * Behavioural: trackers; meta/EXIF data in images, etc. Effective use of passwords * Risks of ‘remember me’ or ‘keep me logged in’ options on web applications Security basics * Encrypted communication: ssh, HTTPS * How to encrypt files, archives, e-mails * Password protecting your web pages or site Malware, spyware, viruses, & M$ macros Effective backup strategies === Online resources === [[https://edu.gcfglobal.org/en/internetsafety]] === Assignment (graded) === * Create an encrypted archive, put archive online, use encrypted e-mail to send the archive URL and password to the instructor. * Find all sensitive information leaked from a web page (exif/GPS data in images, URLs with embedded username/password, etc.)