- Instructor: Elizabeth Wickes
- Office: 329 Information Sciences Building
- Email: [email protected]
- Cell phone: look in moodle, I'm not putting this on github (do not call after 9pm)
This course covers the common data and document processing constructs and programming concepts used in library and information science. The history, strengths and weaknesses of the techniques are evaluated in the context of our discipline. These constructs and techniques form the basis of applications in areas such as bibliographic records management, full text management and multimedia. No prior programming background is assumed. The first half of the course will focus on programming essentials in Python, and the second half will have us explore other applications and how to integrate the fundamentals to solve more complex problems.
The following are more 'educational wins' rather than formal learning goals. Of course I hope that you learn how to program in this class, but not everyone taking the course wants to program after taking the class. So why is this still a valuable class for you to take? Read on.
- Evaluate programming book and resource searches and/or bookstore selections
- Understand some memes you didn’t before
- Run a reference interview for a patron who comes to you wanting to learn how to program
- Critically evaluate or write a reality-based technical job description
- Speak confidently about technical concepts and tools in consultations or job interviews
- Hold stronger & more productive conversations with developers
- Act as a bridge between programmers and non-programmers (this is a false binary, but I'll deal with it for the sake of brevity)
- Confidently engage with developers and other IT staff with technical jargon and detail
- Detect vendor hand waving and other crap
- Evaluate the usefulness and applicability of potential technical tools (e.g. an open source command line tool)
- Identify a programming problem and take steps toward writing a program to solve it
- Make use of more technical tools, or technical features of tools you currently use (e.g. SQL in Access, RegEx in text editors, etc.)
- Continue self study of programming
- Succeed in further programming coursework
- Do some coding!
- Regular class times:
- Live session attendance is a requirement for all enrolled students. Sessions will be recorded and available across all sections.
- AO: 5:30-7:30pm Mondays online in BBC (a guest link will be made available for A and B sections)
- (Optional) Lab/office hours open to AO: 7:30-8:30 in BBC classroom, directly following class. This hour will be used for traditional office hours and optional lab time. All students are welcome to remain or join us in the online class room and stay there while they work on the homework, and ask questions or have discussions with the other students and the instructor in the room. I will sometimes depart early if everyone leaves and I have transit issues, so if you plan to arrive after 8pm please email me so I know to stay.
- Make an appointment to meet with me:
- Appointment booking information is in the class moodle.
The quick: you will need to purchase access to the Zelle third edition. Only the third edition will work for our class. I will have an office copy in case of emergency, but that copy cannot be your primary copy.
- Zelle, John. Python Programming: an introduction to computer science. (THIRD edition). Franklin, Beedle & Associates Inc.
- Python for Everyone (http://pythonlearn.com/book.php and https://books.trinket.io/pfe/index.html) This a free book available online or for purchase if you want a physical copy. These chapters are optional and meant to provide additional information and context if desired. There are a few weeks where I strongly suggest that you read this book first, and will note it in moodle.
The Third edition of the Zelle book is required. Neither of the other editions will match up with the content and homework problems and therefore will not be supported or accommodated. You are expected to have consistent access to the textbook. Do not use any of the pirated PDF versions because they do not match up with the print edition in ways that will impact your grade.
I expect all students to be capable of the following computing activities.
- Install programs
- Unzip and zip files
- Take screenshots
- Send emails with attachments
- Know how to navigate your file system, opening folders and moving around your directory, etc.
- Be comfortable interacting in Blackboard Collaborate
- Be able to share your screen in Blackboard Collaborate
It's ok if you need a refresher on how to do these things on your operating system. YouTube is a pretty solid choice for this, and you can contact the helpdesk if you need further assistance. I expect you do be able to do these things and will not be covering them in class.
2 and 4 credit hour students will complete the same number of assignments, but the 2 credit hour students will have shorter/fewer problems as part of the assignment. The breakdown is very carefully considered according to what will appear on the midterm and later projects, but there isn't a specific chart on how much extra time each assignment will take.
Here is the points breakdown:
Assignment | Count | 2 hours | 2 hours | 4 hours | 4 hours |
---|---|---|---|---|---|
Points | Total (~Weight) | Points | Total (~Weight) | ||
Quizzes | 13 | 5 | 65 (13%) | 5 | 65 (10%) |
Homework | 13 | 15 | 195 (39%) | 20 | 260 (41%) |
Midterm | 1 | 80 | 80 (16%) | 100 | 100 (16%) |
Essays | 2 | 30 | 60 (12%) | 40 | 80 (13%) |
Final project | 1 | 100 | 100 (20%) | 130 | 130 (20%) |
Totals | 500 | 635 |
These weights are carefully constructed such that your weekly homework will be important for your grade, but points lost on the weekly homework will not destroy your grade if you have a bad week or regularly loose some points. So long as you average about a 75% on the homework you can expect to maintain an A range.
Policies:
- Extra credit will be available but may only be used to boost the score of attempted weekly homework assignments, and your total homework grade will be capped at the homework max.
- You must complete the midterm and final project to pass the course, even if you would have a passing grade without those points.
- For final course grades, I will use a +/- letter grade scale generally following the traditional 10% groups. I generally don’t give out A+ grades (A and A+ have the same weight).
- Communication is key. Reach out if you have any questions or concerns about the homework or your grade. Data entry mistakes do happen, so don’t hesitate to reach out if you have any questions. Sometimes extension requests are missed or not entered correctly. We check for these situations, but sometimes things slip through. You will never be penalized for our mistakes, but you need to tell us that a mistake happens.
- Mark and read through the homework questions before reading the chapter. This will give you an idea of what to focus on in your readings.
- Do not fear the math. Several of the chapters are very math heavy in examples, but I’ve selected homework problems that should not require advanced math ability to complete (which is why I suggest you read the problems first). I’ll also provide some clarifications of the math lingo in the assignment moodle page.
- You will need to start your assignments early and give yourself time to step away and seek help. Just because an answer may only require a few lines of code doesn’t mean you will only need a few minutes to figure that out.
- While there are reading requirements, one of the most important things to do is to practice the lessons being taught in the book. Reading more is rarely the answer if you are having serious difficulty with the material.
- Everything you need to solve the homework should be in the lecture notes, readings, or discussed in class. But you still may find that searching online can help you put things together.
- Regular and repeated practice will help you internalize the concepts and syntax. I cannot stress enough that you need to start early. Completing the homeworks should take at least an hour for an experienced programmer, but you should expect them to take between 3-5 hours depending on the content. This means that between reading the chapter, attempting the homework, testing, and revising, you should expect to spend at least 10-15 hours a week on this class.
- Look things up all the time, until you've gotten it right several times in a row. You aren't expected to memorize a buch of rules and syntax. Structure your notes is a usable way and look things up as you go. Eventually you'll need to look things up less and less.
- Follow the 2 hour rule: When you are working on a programming problem and have spent an hour without making any progress forward (even slow progress is fine), take at least a 30 minute break. Work on something else, take a walk, do the dishes, etc. Then go back to the problem, and if you are still not making any progress forward after another hour, stop and email me for help. Work on something else or go to bed. Do not spend an entire day on a single problem ever. I’d rather give you an extension than read that you’ve done that. Stop and ask for help after 2 hours of making zero progress forward.
- Plan to use all your homework extensions. There is no penalty for using them or bonus for not. I don't factor these into you grades in any way. The policy for how they work is in a separate section. There is a lot of homework and you have a lot going on. Please plan on using these as you need them.
- The weekly discussion forums are the place to talk about unclear points or to get help with a problem. Don’t post the entirety of your homework answers on the discussion boards, but you can ask clarification or technical questions about them. Chances are high that someone else has a similar problem, and the feedback can generally be much faster with the entire classes eyes rather than just the instructor and TA.
- Try and stick to a limit of 2-3 hours a day of work on this class and no more. Don’t attempt to do everything (reading, quiz, homework) in one day. Instead, (as much as possible) pick a regular part of your day of about 30-60 minutes to work on this class. Doing this work in smaller pieces helps you retain and internalize what you’ve read and practiced.
- I do not require any extra readings for this class. Everything required is meant to be immediately helpful to you for your homework. Optional readings are there in case you'd find different examples helpful.
Generally speaking, all due dates will be on Saturday nights. Exceptions to this are the quizzes, the final, and if you set your essay due dates to be something else.
Quizzes are set such that you have unlimited time and unlimited attempts. The purpose of the quizzes is to prompt you to review the material before class and to help you engage with the materials. Quizzes are set to be due the night before class. We understand that you will forget about the quizzes from time to time, so we will reopen them for you if you email us to ask. Right now there isn’t a limit to these requests, but we reserve the right to enforce a cap if reopening quizzes becomes a recurring need for individual students.
These will generally be multiple choice and based on the readings.
These assignments are meant to provide practice and experience such that you will be prepared to complete later assignments. I do not expect all students to get perfect grades on each assignment, and thus several extra credit opportunities will be made available. The numerous assignments also mean that missing points for single homework assignments do not have a large negative impact on your grade.
Here are the required elements for any homework submission:
- Narrative
- One narrative file for the entire homework, PDF preferred. Include your netid in the file name. There is as later section that describes what this is.
- Example file name: wickes1_hw01_narrative.pdf
- Python files (these are the py files that PyCharm creates), one for each problem
- Some HW problems will build off each other, and you can combine them into one py file. Just clearly mark where the code is for each problem.
- Example file name: wickes1_pe4.py, wickes1_pe4+8.py, etc.
In sum, here’s a schedule of dates around these weekly homeworks:
- Saturday 11:55pm, weekly homework due
- Monday 11:55pm, last chance for late submission for the 10% late penalty from the max homework points. Also deadline to request an extension.
- Tuesday 11:55pm, last chance for the late submission, with a 30% penalty from the max homework points. Any homeworks without an extension will be given a 0. Wednesday 11:55pm, due date for homeworks on an extension. Any homeworks on extension not submitted by this time will be given a 0.
The weekly homeworks are due on Saturday evenings at 11:55 (moodle only supports 5 min increments). You don't have one due the first week of class). You may submit a homework assignment up to 8am the next day without penalty. The last chance to submit a late weekly homework assignment and recieve any credit is end of day tuesday. Assignments under an extension have until wednesday.
Submission after Saturday but before end of day monday will result in a 10% deduction from the maximum possible points for the assignment. Submission after end of day monday but before end of day Tuesday will result in a 30% deduction from the maximum possible points for the assignment (from the full base, not on top of the monday penalty).
This Saturday due date has been chosen and retained based on input from 452 students and is purposeful so you have Sunday to start work on the next week’s materials. I’m fully aware that this does put the pressure on during the week, but it is important that you start early in the week and work on things in little bits and pieces. You should not wait until Saturday morning to begin the homework. Ideally, you will be working on the homework over the course of the week and only need a little time on Saturday to finalize. Obviously, you won’t be able to pull this off every single, week, so please take advantage of the extension option.
Case by case exceptions to this Saturday schedule have been made for students with extreme and documented work schedules that will interfere with the saturday due date. (for example, 12 hour shifts on saturdays). Please be in contact if you are in this position.
Each student will be given a pool of 3 extensions to use for the weekly homeworks over the course of the semester. These give you until end of day Wednesday to submit that previous week’s homework without penalty. You do not need to ask for approval to use one of these, but you must inform us that you are using it.
Extension requests are due by end of day the Monday after the homework due date.
There is no benefit or penalty for use of the extensions, and I strongly encourage you to use them. Extension requests are due by end of day Monday after the homework due date or else the homework will be automatically graded as 0. Exceptions will be made for students experiencing a crisis that prevented them from communication and will be handled on a case by case basis.
Narratives will be required as part of the submission and are required for each of the programming problems. Some homework problems will have free text (non-coding) answers that you can provide in your narrative. You don’t need to provide a narrative answer for these discussion questions (but can if you want to clarify things).
The minimum requirements for a narrative are:
- at least 100 words of substancive prose on each programming problem (again, written problems don't need narratives).
- short reflection on the week (about 100 words again) summarizing any thoughts and feedback about how things went. The TAs will be reviewing these during grading and passing along feedback to me.
First off, don't panic about the narrative. These are informal write ups (think more of a casual lab report rather than an essay or paper) that describe your process of solving the homework problems. I expect about 100 words per homework problem (not per sub problem, so if PE1 has a, b, and c items you write 100 words for all of PE1), and you’ll likely have longer responses as the problem get more complex. Plus a few sentences of reflection about how the week went.
I stress that informality aspect about this. We are looking for you to explain your approach and how it went. You do need to say more than "that was fine" but please don't make this a formal paper or a stream of consciousness about everything you did. We grade this on a pass/fail basis, so you'll get full credit if you hit the minimum required threshold.
Write the narrative as you finish each problem and don’t sink a ton of extra time into this. These help us understand your code and give you partial credit if need be. THe narrative is the place we go to understand what happened if you complete a problem incorrectly or don't finish something. Many times we can still award full credit or partial credit for elements if you explain your interpretation or what you tried. For example, if your interpretation of a problem was wrong but correctly executed and documented it the narrative, we might be able to award more or full points. This won't always be the case, but trust me, we go deeply through the narratives to extract partical credit if you need it.
Things to include in your narratives (not all required, just prompts to get you thinking): what your assumptions about the rules of the problem are, any problems you ran into, which part of the lecture notes you found helpful, questions you came up with and can’t find the answer to, etc. These aren’t required sections, but suggestions to get you thinking. You can include screen shots if you want. To be clear, you need to describe substantive information on the problem at hand and include the relevant code to get the points. Partial credit will not be given if you only describe that you worked on the problem for hours but don’t talk about what you did or show us any code.
There is no one right way to write a narrative. Do your best to follow these guidelines and we will tell you if you need to make any changes. We will be more forgiving on the first few homeworks while we are giving you feedback about your narrative. Every student will have a different style of narrative, and that’s fine!
Narratives will be worth about 20-30% of your homework grade. We will only take off points if either you don’t submit a narrative with your homework, are missing a narrative for a problem, or you ignore direct feedback about changing how you write your narratives.
Do not write Python code in Word. The instructor can tell when you do this and is deeply annoyed by it. Please use proper formatting for inline text or use a screenshot.
Including your netid in your file names is really helpful. You will submit your homework files into the upload area of the assignment page in moodle.
The midterm has two associated due dates:
- Midterm check in date: Saturday October 13
- Midterm due date: Saturday October 27
No due date extensions will be granted for either midterm due date unless you are experiencing a personal crisis. A 10% late penalty for up to 2 days after the due date, and the assignment will be marked as 0 after that.
The midterm is a larger programming problem that you should be working through during the first half of the course. The due date for this assignment technically after the halfway point of the semester, but we’re going to still call it a midterm. The spirit behind this is that it will be completed as we go through the primary Python section of class. Many of your homework problems in the first half of the course will directly relate to what you will need to do for this.
There will be a midpoint check in due for the midterm, designed for me to see what you have done so far so I can provide feedback and answer any questions you have. This is a graded and required element. There isn’t a specific amount that you need to have done for the check in, but the more you do have attempted the more comments I can provide and questions I can answer.
This is a single large programming problem that must be started early. Given the complexity of the problem, a “check in” two weeks before the due date will be required. This process means that, two weeks before the midterm due date, you submit whatever you have so far.
The minimum expected for the check in is: a short paragraph or draft narrative describing what you’ve done so far and a list of any questions that you may have on the code, and some substantial amount of code. The code can be a bit scattered and not run, but you must submit some code for me to comment on. This shouldn’t be too hard, as several of the previous weeks’ homeworks will involve writing code meant to be useful for the midterm and I expect that you will copy it over.
All topics necessary to complete the midterm will be presented before this check in date, but many students need more time to synthesize the concepts. Deductions in points will only be made if you do not have code and/or questions submitted. As the goal of this is to provide feedback on your code before grading, no points will be taken off for incomplete code or code that doesn’t work/run. While some students may have the midterm complete at this point, I do not expect that the midterm is due then.
These essays are designed to have you explore and learn more about the history of computing. The topics will range from historical comparisons of specific programming languages to a historical summary of a tool or technology. These essays are expected to be written like short papers using a formal voice, so you should use proper formatting and citations. These are not informal reaction essays or personal stories. You may use any citation style you’d like, so long as it is consistent.
I don’t expect that you’ll be able to find scholarly published works (such as journal articles) for these essays, but I do expect that you use authoritative sources & authors. Ask if you are unsure about any sources! The University Library can also help you navigate the research process. We’ll talk more about this in class.
Writing skill is not being graded, but these need to be written seriously and be readable. Those new to academic writing are strongly encouraged to make use of the writing centers on campus for help. Elizabeth is also willing to review these before submission and can give you quick feedback.
Any student caught plagiarizing any portion of their essays will receive a 0 for that topic assignment and may be escalated to student affairs for additional academic integrity review. I am strict about this and reserve the right to change your grade is plagiarism is discovered after I've entered a grade for that essay.
All students are welcome to report their name and netid on the last page of any written work, but please put your credit hour designation on the first page. This blind grading helps the graders reduce any potential bias, but we do need to know your credit hours so we know which rubric to grade with.
There are three essay topics available at different times throughout the semester and only two essays are required. Should you desire to complete all three, your lowest grade will be dropped. Otherwise, you may elect to skip an essay.
The essays will use a flexible due date system, as described below. I have given a proposed due date for each of them, and you may choose to move that due date by request.
You are allowed to change the due date by one week on either end. Once you have given me a new due date in that range, you will be held to those dates. Due date changes are due Saturday September 22 by 11:55pm. All default due dates will be locked in after this date if you have not put in a request to have them changed.
We will change your due dates in moodle to what you requested, but you can consider the email thread being the official declaration.
Here are the default due dates:
- Topic 1 default due date: Saturday of week 5 (Saturday, September 29)
- Topic 2 default due date: Saturday of week 10 (Saturday, November 3)
- Topic 3 default due date: Saturday of week 14 (Saturday, November 24)
The 11:55 pm with 8am grace period that the weekly homeworks will be in use for this.
As the due dates can be changed to match your schedule, no extentions will be granted except for a personal crisis situation.
There are three due dates associated with the final project:
- Final Project Proposal date: October 20
- Final Project Check-in: November 24
- Final Project Due Date: December 20 (subject to change depending on when the registrar announces the final grade due date)
No extensions for the final project will be approved, except for a personal crisis. Extensions for the proposal and checkin are rare but will be approved on a case by case basis for situations where you are waiting on an external person for information, or there is some other delay outside of your control. For the proposal and checkin, a 10% late penalty off the max value for the assignment will be taken each day for up to two days, and the assignment graded at 0 after that. Final projects submitted after the 8 hour grace period will be counted at 0.
You must receive a passing grade on the final to pass the class, no matter what your other scores calculate to.
The proposal happens early in the semester, so you will need to be thinking about ideas as soon as we get rolling. Refer to the full assignment document to read about the exact requirements for these elements.
Several extra credit assignments and options will be available to you. No homework scores will be dropped because I want you to attempt each homework assignment. However, the total extra credit points available will be about 1-2 homework assignments. Your final grade calculation at the end of the semester may only hold a maximum of 100% for any category, which means any additional points will be dropped during final grade calculation. Moodle will not reflect this correctly.
These extra credit points will only be applied to your homework grades, and only toward attempted homework assignments. This means you cannot complete extra credit as an alternative to a full homework assignment, but should provide a solid grade buffer should you need it.
Refer to the specific section about extentions and late submissions for each type of assignment.
In general:
There is an 8 hour grace period for assignment submission. All assignments are due at 11:55pm, so any submissions turned in before 8am the next day will not receive a late penalty. The calendar in moodle can look confusing if you set a due date early in the morning.
The weekly homeworks have formal extention support, while the midterm, essays, and final do not. Extensions for these items will not be granted except for truly exceptional situations or where described in the specific policy for that assignment.
Being behind on homework or just needing more time is not a personal crisis. This category involves house fires/floods, medical emergencies for yourself or a dependent, a death in your family, etc. Any student experiencing something like this is encouraged to reach out to their advisor and the student affairs team. You are welcome to contact me if you feel comfortable explaining the situation.
Attendance to live class is required. On campus section students are required to attend on campus sessions and online section students are required to attend the synchronous session. These are university and college level policies and are not open for negotiation.
Students are allowed to miss two class sessions:
- one for “life happens” situations (illness, family events, etc.)
- and one for pre-planned reasons such as conference attendance, job interviews, professional events, etc.
Students needing to miss more than these two class sessions must contact the instructor to discuss arrangements.
- “Life happens” procedures: students must notify the instructor ASAP before or after missing a class for a “life happens” event. You are not required to report or provide any personal information to use this day. Just say that you are using a “life happens” day. You will still be expected to watch the recorded class and the homework must still be turned in before the solutions are posted to qualify for full credit.
- Documented events procedures: students must request approval to miss class before the class is missed. You will still be expected to watch the recorded class and all late homework policy rules still stand.
http://www.inclusiveillinois.illinois.edu/ As the state’s premier public university, the University of Illinois at Urbana-Champaign’s core mission is to serve the interests of the diverse people of the state of Illinois and beyond. The institution thus values inclusion and a pluralistic learning and research environment, one in which we respect the varied perspectives and lived experiences of a diverse community and global workforce. We support diversity of worldviews, histories, and cultural knowledge across a range of social groups including race, ethnicity, gender identity, sexual orientation, abilities, economic class, religion, and their intersections.
We are committed to providing a learning environment where our students can succeed. If you require special accommodations, please contact us and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES, you may visit 1207 S. Oak Street, Champaign, call 217.333.4603, or email [email protected]. We will try to meet all accommodations once the process has started. Please note accommodations are not retroactive to the beginning of the semester, but begin the day you contact your professor with a current letter of accommodation from DRES.
When the assignments require narrative or written (e.g. non-code) answers, appropriate attribution and citation is required. This is a graduate level course and all students are expected to know and understand the concept of plagiarism and academic integrity. Several writing centers offer services to answer questions about plagiarism. The instructor will follow one of the standard procedures when plagiarism is submitted: http://studentcode.illinois.edu/article1_part4_1-402.html. Students will be given 0 points for an assignment if it contains plagiarism in whole or in part. No make up work will be accepted to replace that grade. The instructor reserves the right to fail a student if more serious plagiarism is found.
The Code of Policies and Regulations Applying to All Students will be applied in all instances of academic misconduct committed by students. This applies to all exams, presentations, assignments and materials distributed or used in this course. You can review these policies at the following web site: http://admin.illinois.edu/policy/code/index.html