Calendar


Search
Contact Info

UR Home PageDouglas C. Szajda


Home
Research
Current Projects
Security Issues
Spatial Location
Cycle Synch.
Past Projects
Isotach
Spectral Multiplicity

Teaching
Current Courses
Elementary Prog.
Algorithms
Systems Seminar
Past Courses
Spring 2007
Algorithms
Calculus I
Fall 2006
Computer Security
Calculus II
Spring 2006
Networks
Core 102
Fall 2005
Core 101
Calculus I
Spring 2005
Algorithms
Fall 2004
Algorithms
Computer Security
Fall 2003
Intro. to Computing
Algorithms
Spring 2003
Algorithms
Networks
Wireless Networks
Fall 2002
Security
Intro. to Computing
Spring 2002
Networks
Intro. to Computing
Fall 2001
Intro. to Computing
Math&CS Home
Math&CS Colloquiua

Home | Lecture Notes | Homework | Useful Links

 

CMSC 105 Class Web Page (Spring 2008)




Any sufficiently advanced technology is indistinguishable from magic - Arthur C. Clarke




    General Course Information


  • Instructor: Doug Szajda, dszajda@richmond.edu, 219 Jepson Hall, (804)-287-6671 (campus ext. 6671).

  • Meeting Times:
    • Lecture: MWF 11:30am-12:20pm in Jepson G23.

  • Required Text:
    • Learning to Program with Alice by W. Dann, S. Cooper, and R. Pausch (Pearson/Prentice-Hall).
    • Nary One Bit O' Magic: How Computers Work by A. Charlesworth (UR Press)

  • Office Hours: MWF 9:25-10:25am. Other days and times by appointment.

    You are welcome to drop by my office at any time, but be aware that there will be occasions on which I will be unable to see students. Also, though I usually keep my office door open during office hours, at other times I may keep my door closed for either noise or climate control purposes. You should be sure to knock before concluding that I am not in my office!
  • Course Summary: The purpose of this course is to investigate problem solving via it computer programming. You are not expected to have any prior programming experience, nor are you permitted to take this course if you have completed any course that fulfills Computer Science major requirements. Alice is the programming system used in this course, and the problems you will solve involve animating three-dimensional objects in an on-screen virtual world. Essentially, your programming in Alice will be similar to the work done by animators for computer-generated movies or by programmers for video games. All programming in Alice is accomplished by a drag-and-drop user interface. Through the Alice system, you will---by using standard computer programming techniques---control the actions of the on-screen objects, their interactions with the user, and various aspects of the virtual world (lighting, camera position, background content, etc.). As your animated worlds become more complex, you will learn and apply even more sophisticated programming techniques. Furthermore, we will study a basic model of computer organization --- this will help you to understand what is happening at the lowest level of the computer while your Alice programs are executing. Because this course is concerned with problem solving, we will also discuss the capabilities, and limits, of using computers to solve problems. By the end of this course, you should have a better appreciation for the type of work necessary to produce Pixar movies and EA video games. You also should have developed a basic understanding of programming fundamentals and computing, and interested students should consider taking subsequent courses in the Computer Science major. This course satisfies the Symbolic Reasoning Field of Study (FSSR), as described by the following statement approved by the University faculty.

    Students will solve problems using one or more programming systems. The problem solving will include translating problems into computer programs from problem statements that do not make clear the particular solution method to be used. In addition, the course will cover relevant background information, such as the rudiments of computer architecture and other aspects of the nature of computing systems and of computer science. This background will also include programming language syntax and semantics, so that students can recognize and correct syntax errors and can precisely predict the output of the kind of programs they write, given specified inputs. However, the central theme of the course will be the kind of problem solving by students that expresses a solution in the form of a computer program.


  • Pre-requisites: None.
  • Assignments:
    • Three in-class exams, limited to the 75-minute class period;
    • Regular homework assignments, to be collected and graded;
    • Several substantial programming projects
    • In-class comprehensive final exam, limited to the 3-hour exam block.
    • Late assignments will not be accepted for any reason.

  • Attendance Policy:
    • If you are absent on the day of an exam, you will not be permitted to make up the exam.
    • You are expected to attend each class period for its duration.
    • If you must miss a class, you are responsible for any associated material.
    • When possible, please inform me in advance of any absence.
    • Any student with an excessive number of absences is subject to a failing grade of V


  • Web Page and Email:
    • http://www.richmond.edu/~dszajda/classes/cs105/Spring_2008/main.html
    • My email: dszajda@richmond.edu
    • You are responsible for checking your email and the course web page frequently for course-related information.

  • Grades:

    Grade Component Date Percent of Grade
    Exam 1 Monday, February 11 13.3%
    Exam 2 Monday , March 17 13.3%
    Exam 3 Friday, April 9 13.3%
    Homework N/A 10%
    Programming Assignments Avg. N/A 25%
    Final Examination Thursday, May 1, 9:00am-noon in Jepson G23 25%




  • Honor Code:
    • Unless provided to you by the instructor, you are not permitted to view or use existing assignments, tests, or solutions in any form, whether they be from a previous offering of this course or Web-available.
    • Exams and project assignments must be completed by you without assistance from any other person or source (you are permitted to consult with me).
    • Homework assignments may be discussed with others, and are subject to the empty hands policy:
      You may freely discuss ideas with other students, but each student must leave the discussion without any written or otherwise recorded material.
      Any manifestation of copying another student's work for your own (whether digital, hand-written, aural, etc.) is not permitted.
    • Failure to comply with these policies will be treated as an Honor Code violation.

  • My Grading Philosophy: When it comes to the final course grade, I am merely the scorekeeper. I feed the value of each component of your grade into a computer program, and it gives me the final average that determines your course grade. If you have turned in (on time), say, three of five programming projects, and done them well, my grading program will still give you a programming project average of zero because you failed to turn in two projects. I'm not saying this to intimidate you, but to be clear that there are consequences for failing to complete assignments, and you should be aware of this up front.

  • My "Managerial" Philosophy Some professors will chase you around reminding you that you have failed to turn in an assignment or asking why you've missed class. This is not my style. I treat you as the responsible adults that you are. If you perform poorly on an exam, I expect that you will come to my office hours (or make an appointment for another time) to discuss any questions you may have on the material. If you are having problems with a programming assignment, I expect that you will bring these problems to my attention far enough in advance of the deadline so that you have time to absorb whatever advice or hints I give, implement them, and still turn the project in on time. And it is not my responsibility to be available for the entire afternoon before a project is due because you waited until the last minute to work out the kinks. So you are aware of this up front, MOST of the time spent on your projects will be devoted to working out the kinks! It's just the nature of the beast.

    Also, I apologize to the 99% of you who are responsible enough to know these things and all of the similar rules on this page without me having to put them down in writing. Unfortunately, every semester there seems to be one student who needs this kind of clarification, and it is for them that I spell things out.


  • Exams:
    • The Other Student Criteria : When grading tests and homework, I use the Other Student Criteria (OSC). All solutions must meet this. The Other Student Criteria states that a solution should provide enough written explanation so that another student in the class (who could not complete the assignment) could read the submitted material and, without asking questions, understand a correct answer.

    • My ``exam discussion policy": Once a student has begun an exam, I will answer (for that student) only those questions that concern clarification of the intent of a problem. That is, I will not answer questions that seek to determine whether the problem was done correctly, or whether a particular approach is wise (or unwise).


  • Cell phones, iPods, and other electronic toys are not to be used during lectures. Have your cell phones set to vibrate. Under no circumstances are calls to be answered in the classroom. Students failing to adhere to this policy will have points deducted from their final course average (with the number of points growing exponentially with the number of incidents.

  • Course Outline: Following is a basic list of topics to be covered this semester. Additional topics may be added as necessary. The order of these topics is subject to change.
    • Introduction to the Alice system
    • Basic computer organization
    • Object-oriented programming in Alice
    • Event-driven programming in Alice
    • Conditional execution
    • Repetition -- looping
    • Repetition -- recursion
    • Limits of computing
    • Introduction to Java



Last Modified:  07-May-2008 Contact: Doug Szajda
Arts & Sciences | Business | Leadership | Law | Continuing Studies