Syllabus
What you will be doing.
You will be working at your own pace through a Khan Academy course on Javascript Programming. In class you will primarily be coding and have the opportunity to get plenty of help.
Why this is better than doing Khan on my own
I am not a big fan of lecturing in class. It is far better for students to watch videos of the lectures on their own and use class time to offer one-on-one coaching. Programming is a skill like piano playing. You are not going to learn how to play piano from a lecture – you need feedback from a teacher. The same is true about programming. I think pairing the exceptional Khan course with in-class coaching will be a successful experience for you.
Grading System
On average, 40% of the people in the sections of 110 I have taught get an A or A-.
The rough description: You do stuff, you get points (XP). As you gain XP you move up in levels. The level you are at the end of the semester determines your final grade. Here is the chart.
There is a total of at least 2600 points.
Here is how you earn points:
Survived the first half of the course – 250xp
Everyone starts with 250xp. I know that we could have had the scale start at zero, but there is something nice about starting with some points.
Complete a topic unit – 700xp
There are 15 units and each unit is worth roughly 50xp., Our team can view your progress on Khan Academy, and we will do in-person code checks of the very short coding tasks they have you do.
Complete Khan Academy Projects – 900xp
There are 9 projects, each worth 100xp, Each should roughly take you one hour to complete. Some are exactly the Khan Academy projects. Others are the Khan Projects plus a remix.
Web projects – 700xp
5 projects worth around 150 each. These are easier (much easier) versions of what you have been doing–writing web pages containing Javascript on Domain of One’s Own.
3×5 card
When you complete one of the above (a topic unit, a challenge, etc) you should give us a 3×5 card with your name and what you completed. For units and projects, we may ask you to demo your code in class. For web projects, you will demo your code in class.
The XP Spreadsheet
What you need:
- a laptop
- headphones / earbuds
The usual Syllabus stuff
Department of Computer Science
CPSC110: 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
These objectives are true of all sections of cs110 – Intro to CS.
- 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
- events
- functions
- to be able to write simple programs to solve problems
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-5 people per team. Teams are constructed so they contain people with a variety of skills.
Required Materials
Textbook
None
Laptops
I am assuming that nearly everyone 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 Chromebook will work. Don’t worry if you don’t have one.
What an A means.
Here’s the scoop with the grading system. You don’t need to be a computer geek or math wiz to get an A in the class. It doesn’t matter what your skills are nor what your interests are, you can get an A. In last 2 years in this class 50% of the people received an A. An A means that you have mastered some rudimentary programming skills. It does not mean that you will do well as a computer science major and continue to get A’s in computer science courses. Typically 25-30% of the people taking the next course in the computer science sequence fail. If you are interested in majoring in computer science please talk to me sometime during the semester so I can help you determine if majoring in computer science is the right choice for you.
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 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 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 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 a negative score for that work. For example, if the work was worth 100xp, plagiarized work will result in a score of -100.
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. Collusion will result in a negative score for that work.
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 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.