Syllabus: CS2

Required and Optional Materials

The following books and other items are required or optional where noted. Feel free to buy them at whatever website or commercial organization you find that meets your needs.

• Required: Programming C# 3.0, fifth edition by Jesse Liberty and Donald Xie, Sebastopol, CA : O'Reilly, 2008. ISBN 0596527438
• Required: C# 3.0 Cookbook, third edition by Jay Hilyard & Stephen Teilhet, Sebastopol, CA : O'Reilly, 2008. ISBN 059651610X

• Saving work-in-progress:
Each student may OPTIONALLY bring a storage medium (flash drive) to every class session to save work-in-progress. The student's name and section number must be clearly marked on the disk.
• Optional, but highly recommended: Go to the website for the IT MS Academic Alliance information and follow the instructions there for access to MS software. Install Visual Studio onto your home computer and make sure that the installation includes C#.

Note about the GD&D Sections

These sections of CS2 are designated as special sections and are only open to students in the Game Design and Development program.

There are significant differences between these sections and the rest of the CS2 sections. For starters, we have three class meetings per week, instead of the usual two and are using the C# language. We will be doing more active learning and we will be dealing with more game related topics. This means that you may encounter other CS2 students who are doing different types of assignments. This is normal and you should not be concerned about the differences.

Course Goals

This is the second course in the introductory programming sequence required for all students majoring in Game Design and Development. Topics include further exploration of classes and objects, programming through composition and inheritance, reusability, input/output, and object oriented design. Emphasis is placed on the development of problem-solving skills. Moderately large programming assignments are required.

At the end of this course, a student should be able to implement moderately large programming projects either individually and/or in a team. Specifically, a student should:

• Demonstrate the ability to translate requirements for small game problems into working programs with an emphasis on usability • Demonstrate the ability to construct and use linear data structures to design software solutions. Data structures include lists, stacks and queues. • Demonstrate the ability to construct multi-threaded programs that may run on multi-core computers • Demonstrate the ability to design and implement software applications that use event-driven graphical user interfaces using appropriate software APIs • Describe how exceptions work, explain their uses and employ them in their own designs • Implement software applications that use basic networking protocols • Define inheritance and interface relationships and appropriately use design patterns in their own program designs • Read and write files from within a software application


CS1 or equivalent course

Grading Policy

The course consists of the activities shown below, which are weighted as indicated to compute the final grade:

Component Weight
Exam I 15%
Exam II 15%
Final 20%
Weekly Programming Assignments 15%
Larger Projects 15%
Instructor Determined 20%

If you have questions about the grading of any exam homework, you must bring it to your instructor's attention within one (1) week after the graded material (in class or through email) has been handed back. After that time, your right to appeal will have expired and no grade adjustments will be considered! The grading range is shown below:

Range Grade
>= 90.0% A
>= 80.0% & < 90% B
>= 70.0 % & < 80.0% C
>= 60.0 % & < 70.0% D
< 60.0% F

Course Format

This course consists of 4 hours of instruction in a computer environment with an additional 2 hours of instruction and work on a homework assignment requiring more in-depth knowledge than the exercises given during the 4 hours of instruction. Instruction is held in the room shown on your schedule. You are expected to attend the course; attendance records will be kept.


Programming assignments: Programming assignments will be assigned as an integral part of this course. This work is to be done outside of the usual class hours. In general, these assignments will be more complicated and larger than the practice exercises and must be done individually unless specified otherwise.

Weekly programming assignments (homework) should be turned in on time. An assignment that is turned in up to 1 week late will receive 20% off (for a maximum grade of 80%). Assignments will not be accepted if they are over one week late. For example, if the homework is due on Monday at 5am and you miss this deadline, then you will receive a maximum grade of 80% if the assignment is turned in any time after the assignment was due up until the next Monday at 5am. Your grade on the assignment when turning it in over a week late will be 0%. Homework will not be accepted after the last day of class. Your total homework grade is computed in the following manner:

1. Your point total on each of the homework assignments is first converted to a percentage of the number of points possible for that assignment. These percentages are then averaged.

2. The average is then divided by 0.95; if the result is greater than 100%, it is set to 100%.

To illustrate, suppose that you got 27 out of 30 points on lab one, and 24 out of 30 points on lab 2.

1. The percentages for these assignments would be 90 and 80, respectively. These percentages are averaged with the other eight; suppose the final result is 87%.

2. 87% divided by .95 is 91.58%: this would be your homework assignment grade.

We give you a 5% curve on your homework grade because there are no make-ups allowed.

Other Exercises: A certain amount of work will be required during most class sessions. These assignments will be collected and graded. Normally these exercises will be due during the next class session. Not handing in a practice exercise for any reason will result in a grade of zero for that exercise. There are no make-ups for missing practice exercises. Reading assignments may be a required part of this course. Each week that you receive a reading assignment it will be due at the start of the first class of the following week. This assignment will consist of a series of questions on the assigned material. Note that well written and legible answers are required. This means that part of your grade will depend on your spelling and grammar.


There will be three exams given during the quarter (2 during the quarter and 1 final). All exams are composed of 2 parts.

Part I is comprised of a comprehensive series of questions covering material discussed during class, from the reading and lecture notes.

Part II is a set of code analysis questions that will test your ability to read and understand code.

Part III is a practical exam where students are required to write and execute a C# program for a given problem during live programming sessions in front of the course instructor(s). Notes, textbooks, and calculators will not be allowed during these times (unless special accommodations on record permit them). One 3x5 notecard with notes on both sides is allowed during tests.

You will be allowed to use one 3 inch by 5 inch index card as a "crib sheet". Your notes on the crib sheet must be handwritten and you can use both sides of the card.

Missing an exam will result in a grade of zero unless the student contacts the instructor at least 24 hours in advance of that exam. If the student's reason is valid (documentation may be required), the student will be allowed to take a different 'make-up' exam at a later time.

RIT has policies regarding final examinations. Of direct relevance here are two cases: (1) a conflict in which a student is scheduled for two final exams at the same time and (2) a situation in which a student is scheduled for three or more final exams on the same day. In case (1), there are several rules which determine which final exam takes precedence. In case (2), a student has the right (if they wish) not to take three or more final exams in one day. In both cases, if a student desires an adjustment of their final exam schedule, they must submit a written request for rescheduling, by the last day of the sixth week of classes, to the head of their home department, with a copy of the request given to the instructor being asked to provide the rescheduled final exam. We highly recommend that students first discuss their situation with all instructors involved.


Projects are programming assignments that may take several weeks to design and code. This work is to be done outside of the usual class hours and should be started much earlier than homework assignments. All projects are to be done individually unless specified otherwise.

The late submission of projects will be penalized as follows:

• After the due date and up until the late deadline: max grade possible is 80
• After the late deadline: no credit

Note that projects DO NOT have a guaranteed late deadline of one week after the initial due date. You must pay attention to when the late deadline occurs if you are going to turn in a project late. No projects will be accepted after the last day of this class in the quarter.

Academic Honesty

It is a shame that this must be stated at all, but there are always a few students who do not abide by the rules of proper academic conduct. For the record, on individual homework assignments:

• You may discuss logically how to complete the assignment, as the purpose of them is to increase your understanding.
• However, this does not mean that someone else can do your assignment for you or that you can share code with another person.
• The corollary is that you may not do someone else's work for them either. A willing supplier of the material is as guilty of academic dishonesty as the receiver.
• Any help you receive from someone must be acknowledged in the work submitted. Failure to acknowledge the source of a significant idea or approach is considered plagiarism and not allowed.

Those who behave in a dishonest or unethical manner in CS courses, or in their dealings with the Computer Science Department, are subject to disciplinary action. In particular, dishonest or unethical behavior in the execution of assigned work in a course will be treated as discussed in the DCS Academic Dishonesty Policy.

Cell Phones/Pagers

Absolutely no cell phones/pagers are allowed in class--nor may a person leave the room to answer a cell phone in the hall. Please contact instructor for any anticipated emergency situations.

Notices of Accommodation

If you have a "Notice of Accommodation", you must provide a copy to the instructor within a week of starting the course. If you provide the notice later in the course, it will not be retroactive. (In other words, an NOA is not a license to retake an exam or practical that you have done poorly on.)

Policy on W and I Grades

RIT policy allows you to withdraw from a course with a grade of W on or before the Friday of the eighth week in the quarter. After this date, your instructor cannot give you a W, but must assign you a grade based on your work.

This course has been designed so that you can complete all the work in one quarter. Thus incomplete grades will be given only in the most exceptional circumstances, and then only by prior arrangement with your lecture instructor. Your instructor has the final say in this matter.


Every effort has been made to provide accurate information in this document. We reserve the right, however, to make changes to any facet of the course should circumstances warrant it. Any such changes will be announced in class by your instructor.

bunny by Asa Tse turtle by Asa Tse flowers by Asa Tse psp guy by Asa Tse blow fish by Asa Tse shapes to cat by Asa Tse dinosaur by Asa Tse cute girl by Asa Tse bee by Asa Tse frog by Asa Tse dog by Asa Tse cat by Asa Tse canvas face by Asa Tse duck face by Asa Tse