I am a fan of MOOCs (Massive Open Online Courses). These courses allow people everywhere (well, at least those with access to the Internet) to have access to courses taught by the top people in the field. For example, Peter Norvig, head of research at Google and the author of the top textbook on artificial intelligence, and Sebastian Thrun, a research professor at Stanford who lead the development of a robotic vehicle that won the DARPA challenge race to drive a 150 mile mountainous course, taught an free online course on artificial intelligence. 160,000 people in 190 countries enrolled in the course. This is a phenomenal shift in education. Students no longer need to be accepted to elite universities to have access to the highest quality instruction. I’ve used MOOCs in several of my courses ranging from introduction to computer science courses to upper level courses.
Continue reading
Author Archives: raz
Syllabus
University of Mary Washington
Department of Computer Science
CPSC110H: Honors Introduction to Computer Science
Description
This course provides an introduction to computer programming focusing on how to build physical devices and design programs.
Course Objectives
- Gain a conceptual understanding of computers, computing, and issues with technology through breadth-first topics.
- Develop skills in algorithmic problem-solving, expressed in a programming language.
- Represent and manipulate information in a program that executes on a computer.
Section Goal
The goal of the sections I teach is to acquire programming skills. In addition to the course objectives listed above, objectives specific to these sections include:
- to be able to use basic algorithm concepts to solve problems including
- variables
- boolean expressions
- conditions
- loops
- threads
- events
- functions
- to be able to write simple programs to solve problems using Python
Format
The course takes an active, hands-on approach to learning. Students will spend much of the class time exploring, experimenting, and evaluating code using their own laptops and electronics kits. Class time is divided between very short lectures, individual experimentation with programming, working on code with a partner, team projects, and quizzes. During the first week all students will be assigned to permanent teams. Depending on the final class size there will be about 4 people per team. Teams are constructed so they contain people with a variety of skills including those with l33t skillz.
Required Materials
Textbook
There is no textbook for the course.
Laptops
I am assuming that nearly everyone (perhaps 28 out of 30 students) has a laptop. You will be working with your laptop during a large percentage of our class. It doesn’t matter if your laptop runs Microsoft Windows, is a Mac, or an Ubuntu machine. It doesn’t matter if it is 5 years old. It also doesn’t matter how powerful it is–even a basic netbook will work. Don’t worry if you don’t have one. Make sure you can get on the university’s secure network.
Grading
Grading is based on a method developed by Professor Lee Sheldon at Indiana University. It is based on obtaining experience points (XP). The number of XP determines what level you are at. You start the class at Level Zero and with 0 XP. The level you obtain at the end of the semester determines your final grade. Here is the chart:
There will be opportunities to earn at least 2200XP during the course. If you fail to obtain enough XP on one task you can simply do an additional task. For example, if you do poorly on a quiz, you can elect to do an additional side challenge. You gain XP working individually, with a partner, and with your team.
If you are at Level Zero when mid-semester reports are due, I will report your work as unsatisfactory.
Activities
Quizzes – 400 XP
There will be approximately 6-8 short (5-10 question) multiple-choice readiness assessment tests given during the course. Each test will be taken individually, then, immediately after, the same test will be taken as a team. Each individual test is worth on average 25 points; each team quiz is also worth on average 25XP. Makeup tests will not be given.
Homework – 350XP
10-12 homework assignments will be distributed throughout the semester. To accomodate students of different abilities some challenges may come in different editions: the standard edition and the hacker’s edition. You NFL Jerseys Cheap gain more XP by completing the hacker’s edition.
Individual & Partner Programming Challenges – 300XP
Approximately nine programming challenges will be assigned throughout the semester. Some are specified as partner tasks and some as individual tasks. These challenges will be done in class. Most of these challenges are variations of programming you have done as part of working through team tasks.
Team Programming Challenges – 450XP
For these challenges you will work with your team. You will be working on writing code (programs) that solve a particular problem. This work is typically done during class time. The experience points vary depending on the challenge. Typical challenges wil be about 30-50XP.
Midterm Creative Project – 100-200 XP (optional)
If you are feeling inspired, you can create a project on your own.
Final Creative Project – 350XP
This is a chance to use the skills you developed over the semester and build something of your own invention. Further details of the project will be given mid semester.
Side Challenges – at least 150XP
In other classes this might be termed extra credit. Throughout the semester I will post a side challenge–typically a question–on our website. Depending on the question, it can be answered with a short paragraph or a few lines of code. The experience points will vary depending on the challenge but will be worth at least 20XP.
Team Participation – about 100XP
Each student will rate the helpfulness of all members of their team. Individual team participation scores will be the sum of the points they receive from other members of their team. Each team member distributes 100 points to other members of the team. The average team participation score will be 100 points. The rater must differentiate some of their ratings (they cannot assign the same rating to all members).
Avatar names, pseudonyms, noms de plume
During the first week of class I will ask you for your avatar name, pseudonym, whatever. This is the name that will appear on the Experience Point Google Spreadsheet that will be viewable by everyone in the class. If you wish to remain anonymous, don’t share your avatar name with anyone. On the other hand, if you would like recognition for achieving level 10 oakley sunglasses cheap as an example (“a big shout out to tera miner for achieving level 10″), you can share your name. The decision is yours. To further protect the anonymity of those who wish to remain anonymous, the spreadsheet will also be populated by fictitious avatar names.
Do I need to be a math wiz or computer geek to succeed in this class?
I am hoping that there will be some of you who look over the above list of activities and think, wow! that’s exactly what I want to do. I expect some of you will look at that list and panic. Programming in front of a teacher–that seems scary and high stress. You may hate math and feel you have no talent there. You may feel that you are not computer geeky enough to take the class. Rest assured, this is not the case. I designed this course to enable people from a variety of backgrounds to succeed. You’ll be doing the majority of your programming in class and much of that time will be working with other students. If you have problems we will solve them quickly. The computer language we will be using is easy to learn but yet very expressive.
I figure if I can program chances are good that you can program. I have a Bachelor of Fine Arts in music performance. I took zero math classes in college. Zero. Maybe you think, yeah, but you were probably a math wiz in high school. Nope. I went to an all Wholesale NFL Jerseys boys trade high school with basically zero math. Regardless of your background, if you are interested in learning to program you can do it.
If you have any questions or would like more information about the course please contact me.
If you have any computer related questions, even if they are not central to the topic of this course, please come and see me.
Accommodations for students with special needs
Any student with a documented disability may receive a special accommodation to complete any requirements of this course. If you are have a disability or believe you have one you may wish to self-identify. You may do so by providing documentation to the Office of Disability Services located in Room 203 of George Washington Hall (Phone: Voice 540-654-1266, Fax: 540-654-1163). Appropriate accommodations may then be provided for you. If you have a condition that may affect your ability to exit the premises in an emergency or that may cause an emergency during class, you are encouraged to discuss this in confidence with me and/or anyone at the Office of Disability Services. This office can also answer any questions you have about the Americans with Disabilities Act (ADA).
Academic Integrity
I assume you are an ethical student and a person with integrity. I expect that you will follow the university honor code (see http://rosemary.umw.edu/CSHonorCode.html). Please use common sense and ask yourself what would a person RM8 with integrity do? To help you, I would like to make three comments related to this:
Plagiarism
Plagiarism means presenting some other person’s work as your own. This can mean using some other person’s words without acknowledging their source, or using some other person’s ideas. Copying another student’s work (homework or exam) is also plagiarism. Plagiarism will minimally result in an automatic zero for that submission.
Collusion
Collusion is unauthorized collaboration that produces work which is then presented as work completed independently by the student. Collusion includes participating in group discussions that develop solutions which everyone copies. Penalties for plagiarism and collusion include receiving a failing grade for the course.
Classroom behavior
I ask that you respect the other people in the class. I recognize that your life circumstances may require you to receive cell phone calls during class. If this is the case please set your cell phone on vibrate and discretely leave the class to accept calls. During tests, if you walk out of the classroom, or consult/display your cell phone, I will assume you are done with the test and collect your grading sheet.
Class participation
I expect students to attend classes regularly. Since you will be spending jordans for cheap the majority of class time working on projects, if you miss a class you will miss the opportunity to earn XP. That said, attendance is not taken and no XP will be awarded based directly on attendance. If you are going to miss a class, please be courteous and inform me and your teammates.
General Education Student Learning Outcomes
- Students will demonstrate an ability to interpret quantitative/symbolic information. For example, students should be able to examine an algorithm or source code and state in English the behavior of that code.
- Students will have the ability to convert relevant information into various mathematical/analytical forms. For examples, students should be able to take a problem description and produce a working computer program.
- Students will be able to apply analytical techniques or rules to solve problems in a variety of contexts. For examples, take an idea they have for an Android application, produce a specification for how to implement that idea, and produce a working version of the program.
- Students will gain an appreciation for how analytical techniques or rules are used to address real-world problems across multiple disciplines.
Schedule
The class schedule is posted on the course website.
Important details
Here are some other important things you should know:
- Regarding XP. As in a computer game, there is no negotiation for what XP you need to attain a certain level. For example, level 11 (the level associated with an A-) requires 2000 XP. Last semester someone sent me email saying they had 1998 XP, they worked really really hard all semester and deserved an A-. I gave him the A- but starting now the boundaries are hard and there is no negotiating.
- Cheating. Every semester I have multiple cases of people cheating either through plagiarism or collusion (see Fake Ray Bans above definitions). Minimally, I give a person a 0 for that submission. When I taught a New Mexico, I automatically flunked people for an instance of cheating. For example, last semester two people worked together on the final exam. When I sent email telling them they got a zero, one wrote back complaining that this would really affect their final grade. In this class, most of the work will be done in groups, but be very mindful of when you should be doing work on your own.
- Crowd sourcing and reducing my Cognitive Load. Here’s the deal. When communicating with me please error on the side of giving me too much information. Last semester, I received emails with sentences like “My partner was Austin” (when there were 3 Austins in the class) or “I worked with Matt”. It reduces my cognitive load if you specify what section you are in and give full names.
Book to be Published
My book, A Programmer’s Guide to Data Mining: The Ancient Art of the Numerati, is to be translated into Chinese and published by Posts and Telecommunications Press, the largest publisher of computer books in China. This Chinese version will be available in Mainland China, Taiwan, Hong Kong, and Macau. I am super excited about this opportunity to help more people learn about data mining. As always, the English version of the book is available for free at guidetodatamining.com. Also forthcoming is an English paperback edition for under $20. Now I just need to finish the revisions.
Underspecification of Cognitive Status
Jeanette Gundel presented a talk “Underspecification of cognitive status in reference production: the grammar-pragmatics interface” at the Workshop on Bridging the Gap between Computational, Empirical, and Theoretical Approaches to Reference at the Annual Cognitive Science Meeting in Boston. The talk was about our work on the Givenness Hierarchy. Continue reading
Scientific Productivity Rating
There are two common indices for scientific productivity: the h-index and the g-index. I have gone up in both these ratings. My h-index is now 13. This means that I have 13 articles each of which has been cited at least 13 times. The Wikipedia entry for the g-index says ” a value for h of about 12 might be typical for advancement to tenure (associate professor) at major research universities.” To put that number in perspective, Sebastian Thrun, a robotics professor at Stanford and developer of the Google Self-Driving Car, has an h-index of 95. So while I am very happy with my 13, it isn’t that great in the scheme of things. My g-index is now 39– I have 39 publications whose combined citations exceed 39 squared. My Erdõs number is 3.
Cluster by Night
If you are a student looking for a cool individual study project or are just interested in a project for its own sake, you might consider updating the existing resource, Cluster by Night. Cluster by Night (CnB) is a live CD approach to setting up an HPC (High Performance Computing) cluster for MPI work. (MPI is a programming library that allows you to write programs for computing clusters.) We’ve used CnB for the last several years in our operating systems class. What distinguishes CbN from other approaches (for example, the popular PelicanHPC) is that it can work with an existing network. With other approaches the master node on the cluster hands out IP addresses; with CbN the cluster nodes receive their IP addresses from the existing DHCP server. I think Cluster by Night is an awesome resource.
How can you help? Continue reading
topiCS paper – Accepted!
Jeanette Gundel, Nancy Hedberg, and I finally got our paper, Underspecification of Cognitive Status in Reference Production: Some Empirical Predictions accepted to the journal, Topics In Cognitive Science, a journal of the Cognitive Science Society. It will be appearing in the special issue on “Production of Referring Expressions: Bridging the Gap between Computational and Empirical Approaches to Reference.” Within the Givenness Hierarchy framework we outlined in our 1993 paper, lexical items included in referring forms are assumed to conventionally encode two kinds of information: conceptual information about the speaker’s intended referent and procedural information about the assumed cognitive status of that referent in the mind of the addressee. In this current paper we explore the role of underspecification of cognitive status in reference processing.We show how this framework accounts for a number of experimental results in the literature.
Presented Workshop in Kansas
I just presented a half-day session on data and text mining at the Digital Jumpstart Workshop at the University of Kansas. I am grateful to the co-directors of the Institute for Digital Research in the Humanities for inviting me to this event, which was open to KU faculty, staff, and graduate students. Links to the resources I covered at the workshop are available at Resources for the Digital Jumpstart Workshop.
Kansas Corpus Linguistics Talk
I just presented an invited paper “Don’t throw the analysis out with the bath water: Lessons learned from Modern Standard Arabic geographical classification” at the University of Kansas. The talk was sponsored by the departments of Linguistics and Slavic Languages. The abstract is as follows:
In corpus linguistics we throw out information. For example, in collecting corpora we necessarily omit some information about the extralinguistic context and only record that which we consider relevant for the purpose of our current research. In the analysis stage, we often remove data without thinking plavix price. One clear example of this is the routine practice of removing frequent words (commonly referred to as ‘stop words’) in a pre-processing step before analysis. In this talk I describe my work in Modern Standard Arabic geographical classification to illustrate the importance of being more mindful when we make these decisions about what to keep and what to discard. For example, I will show that it is possible to geographically classify text solely using words that some researchers have described as being fluff, superfluous, and non-significant. I will also describe how the paucity of metadata of commonly available Arabic corpora hampers research such as this
API Workshop
I just attended, as an invited participant, the Maryland Institute for Technology in the Humanities’ API Workshop, which was held on February 25th and 26th. The workshop alternated between presentations, lightning talks, and what the organizers called ‘unconferencing’. The highlights for me were the talks given by Mano Marks on Google’s MAP API, Google’s Fusion Table, and Google Refine. I’ve spent more time than I care to remember cleaning up language data. For example, I spent weeks cleaning up a Guarani lexicon. Google Refine is a tool that helps automate that process. If I used that for the Guarani lexicon I would have been done in a day! Google Fusion Table is an amazingly easy way to create map mashups just using a spreadsheet. The maps you create can be embedded on your web page.