CPSC 124 Introduction to Programming Fall 2013

CPSC 124 Assessment

On this page:

Assignments and Evaluation

There are three components to successfully learning a topic: learning the fundamental concepts, practicing the application of those concepts, and demonstrating your mastery of the material.

Fundamentals: The first three components of the coursework emphasize fundamental concepts.

  • Readings: In computer science, one often begins to learn new things by reading about the topic - especially in conjunction with examples. Your first exposure to new topics will come the same way, via readings. Readings are due at the class period for which they are listed on the syllabus (i.e. they are to be done before class). These readings will be the starting point for class, so don't skip them! Assigned readings will be accompanied by reading guides; the purpose of the guides is to help you identify the important concepts to focus on and to help you learn how to read technical material.

  • Warmups: Assigned readings will also be accompanied by a short set of exercises ("warmups"). The warmups will address concepts covered in the reading, and are intended to get you thinking about what you've read and to determine what topics need more attention in class. Warmups are due by midnight before the class period for which the reading is assigned. Warmups cannot be handed in late or made up after the fact, but the three lowest scores will be dropped when computing the final grade.

  • 5 Minute Syntax Quizzes: When you are learning a foreign language, you can generally make yourself understood even if your grammar and spelling aren't perfect. With programming, however, syntax problems are deal-breakers - the computer won't run your program if there is even one error - and your progress will be greatly slowed if you are continually struggling over syntax. This means you should strive to memorize the correct syntax as quickly as possible. To this end, there will be about 10 short syntax quizzes. They will be given at the start of class, usually one or two class periods after a new construct is introduced. (Quizzes will be announced one class period in advance.) Syntax quizzes cannot be made up if you are late to class or miss class, but the lowest quiz score will be dropped when computing the final grade.

Practice: Programming is learned by doing, not just reading. The next components of the coursework emphasize actively applying the fundamental concepts.

  • Class Participation and Group Activities: Many class periods will involve working through examples, either as a class or in small groups. You are expected to contribute to these activities, by regularly asking questions or volunteering answers during class and by staying on task and contributing to your group's work during group activities. Note that being able to contribute meaningfully in class also means that you come to class prepared by having done the reading.

  • Labs: Weekly lab assignments are intended to give you practice integrating and applying the course material. The lab assignment will posted several days in advance of the lab - you should read through the handout before coming to lab, so you are ready to get started working right away. If you come to lab prepared, you should be able to make a good dent in the assignment during the lab period - but you will likely need to spend additional time outside of class to finish it. Lab assignments are generally due at the start of the lab session one week after they are assigned. Labs may be handed in late, but with a point penalty.

Mastery: The remaining coursework is geared towards demonstrating your mastery of the material.

  • Exams: There will be three exams - two in class during the term, and one hour-long exam in the registrar-scheduled final exam timeslot. All three will be written (no programming on the computer) and closed book/notes. Details on the material covered and the exact format of each exam will be announced prior to the exam. Written exams are a chance to demonstrate that you have mastered the fundamentals, and to show how you approach solving a problem.

  • Projects: Complementing the written exams, there will be three programming projects. These are more sizeable programs than the labs, and are intended to give you practice with skills needed when you create larger programs - as well as to demonstrate that you can produce a working program. (Projects really belong both under "Practice" and "Mastery" - they are a chance to practice skills as well, but in a more limited-help environment than the labs.) The final project will be due at the time of the final exam.

Final Grades: Final grades will be computed as follows:

  • Warmups: 8% (approx 0.45% each) - a few of the lowest grades will be dropped
  • Syntax Quizzes: 9% (approx. 1% each) - lowest grade will be dropped
  • Class Participation and Group Activities: 5%
  • Labs: 40% (4% each)
  • Exams: 18% (6% each)
  • Projects: 20% (6.7% each)
  • Attendance: Each absence beyond three, regardless of whether it is excused or unexcused, will result in a deduction of 1/3 of a letter grade (3.3%) from the final grade.

Talks: The Math/CS Department sponsors a number of colloquium talks from faculty, alumni, and visitors during the semester. These talks are a great way to find out about a variety of topics in the fields of mathematics and computer science. You can earn extra credit for attending talks relevant to computer science - this includes computer-science-themed math/CS colloquium talks, as well as any other talk given on campus that is relevant to computer science. (Feel free to suggest talks that might qualify.) To get credit for attending a talk, you must be present at the talk and must submit a three-paragraph writeup of the talk: one paragraph summarizing the talk, one paragraph discussing what you learned from the talk, and one paragraph explaining why the talk is relevant to computer science. Writeups are due within one week of the talk. Writeups which are clearly written, substantive, contain the three paragraphs listed, and make a strong case for the relevance of the talk to the course will earn up to 5% of the class participation grade per talk. A maximum of four talks will be counted for extra credit.

Coding Standards

Following reasonable conventions is important for readability of your code. The course coding standards specify the particular conventions you should use in this course. You will be graded on how well your programs adhere to these standards.

Warmups Rubric

Warmups will be graded on a simple ✓, −, 0 scale:

  • all questions answered,
  • explanations are provided for all answers, and
  • the explanations show evidence of trying to apply the reading to answer each question
Note that correct answers are not required to get a ✓, nor do correct answers alone ensure a ✓. Warmups are not reading comprehension quizzes - they are to get you to think about the material, and to determine what material needs more attention in class.
  • some questions answered,
  • some explanations are given, and
  • the explanations show some evidence of trying to apply the reading to answer the questions
  • no questions answered, or
  • no explanations given, or
  • explanations do not show evidence of applying the reading

Several of the lowest scores will be dropped. Letter grade equivalents will be approximately 90% ✓ = A, 75% ✓ = B, 60% ✓ = C, 50% ✓ = D. This assumes that the other scores are −; having 0s instead of −s will lower the grade.

Group Exercises Rubric

Group exercises will be graded on a simple ✓, −, 0 scale:

  • made reasonable progress, and
  • generally on the right track
  • insufficient progress, and/or
  • significantly off-track
  • very little or no progress, and
  • not much effort (not on task)

"Reasonable progress" is not meant to be a high bar, but rather one that is well within reach if you are prepared for class and work on the exercises during the allotted time.

Up to three 0s (corresponding to days with absences) will be dropped. Letter grade equivalents will be approximately 90% ✓ = A, 80% ✓ = B, 70% ✓ = C, 60% ✓ = D. This assumes that the other scores are −; having 0s instead of −s will lower the grade.

Being Successful

Programming can be a lot of fun (and it's great to be able to point to something you created), but it can also be challenging to learn. Here are a few tips:

  • You have to memorize the syntax and semantics of each programming construct. This is akin to memorizing vocabulary when learning a foreign language - you can't express yourself without having the vocabulary, and the computer doesn't allow any room for error. (Note that this doesn't demand that you always write programs without error - but you need to know the correct syntax and semantics in order to understand and fix errors that arise.)

  • Practice is essential. Blowing off warmups or skipping an assignment means that you haven't had as much exposure to the topic and, given the cumulative nature of the material, means you'll have more trouble on the next assignment.

  • Budget your time carefully. Practice takes time, especially as you are learning new things. Assignments are constructed to be as short as possible while still providing necessary practice, but you should expect to spend a substantial amount of time on this course. Start on assignments early and plan to spend some time each day working on them - waiting until the night before something is due will make you very sad!

  • Get help when you need it. Odds are good that you'll get stuck at least once during this course - not because things are deliberately left out in order to stump you, but because Java is too big to hope to cover every kind of error or problem that you might possibly run into in advance. (It also doesn't help that the computer demands absolute correctness and tells you immediately if something is wrong.) Syntax errors are a common source of "impossible" problems - the compiler error messages don't always make a lot of sense unless you know what the correct syntax is. What to do? Spend some time trying to solve the problem yourself, but then recognize when you are stuck and don't be shy about asking for help. (Also, try to avoid randomly making changes in the hopes of fixing the problem - get help understanding the problem, then fix it.) This is also a good reason to work on assignments before the last minute - so you have time to get help when you get stuck.

Need Help?

If you are having trouble with the course material or get stuck on a problem you can't figure out how to solve, don't just ignore it! The course material is cumulative, and skipping a difficult topic will make it harder to be successful with the next.

The most useful resources for this course are the instructor (during lab, during office hours, and dropping by or scheduling a meeting) and the department's TAs (available many evenings in the Lansing 310 computer lab). These should be your first stops if you are having trouble with course material. For more general help, such as with writing, study skills, or time management, the Center for Teaching and Learning (CTL) also has resources to help you. See the CTL statement below.

Center for Teaching and Learning (CTL)

At Hobart and William Smith Colleges, we encourage you to learn collaboratively and to seek the resources that will enable you to succeed. The Center for Teaching and Learning (CTL) is one of those resources: CTL programs and staff help you engage with your learning, accomplish the tasks before you, enhance your thinking and skills, and empower you to do your best. Resources at CTL are many: Study Mentors help you find your time and manage your responsibilities, Writing Fellows help you think well on paper, and professional staff help you assess academic needs.

I encourage you to explore these and other CTL resources designed to encourage your very best work. You can talk with me about these resources, visit the CTL office on the 2nd floor of the library to discuss options with the staff, or visit the CTL website.

The CTL resource most useful for this class is the Study Mentors program:

Study Mentors
The CTL resource especially valuable to students either just starting college OR adjusting to the demands of their choice of Major is the Study Mentors program. Study Mentors engage directly with each student in the process of adjusting to new academic demands: they help you find the time you need to engage with both your academic and co-curricular activities, accomplish the tasks in front of you, and enhance your reading and study time. Study Mentors may be especially important for those of you who are involved in many activities; work on or off campus; are studying for Teaching Certification, graduate school exams, or prepping for fellowships; or who have one or more unusually demanding courses on your schedule. To meet with a Study Mentor, one option is to go to the TutorTrac link provided on the CTL webpage and make an appointment. You can also contact Sam Vann at vann@hws.edu, or drop in at the CTL office on the 2nd floor of the library.

Valid HTML 4.01!