CS105 Course Syllabus
Computer Programming in C# Spring 2007

Meetings
MW 11am-12noon, RLM 6.126
Wed., January 17 - Wed., March 7

Instructor
Greg Kuhlmann
Email: kuhlmann@cs.utexas.edu
Office Hours: MW 10am - 11am, ESB 229 (or by appointment)

Course Overview
This course is an introduction to the C# programming language and the .NET framework. In the roughly 14 hours of meeting time that we have for the class, it would be impossible to cover all aspects of the language. Some important topics will have to be omitted. We will begin the course with a discussion of the .NET framework and the basics of OOP in C#. We will then focus on features that distinguish C# from other similar languages like Java and C++, including features in version 2.0. Finally, we will discuss specific applications for which C# is especially useful, including Windows GUI programming and Web applications.

Prerequisites
The prerequisite for this class is programming experience (roughly 4 semesters or the equivalent) in an object-oriented language. Experience in Java and/or C++ will be especially helpful. No prior C# or .NET experience is assumed.

Web site
http://www.cs.utexas.edu/~kuhlmann/cs105
The class web site will be used to post assignments and other class announcements. In addition, lecture slides and example code, when applicable, will be posted to the site following the lecture.

Newsgroup
utexas.class.cs105.csharp
The class newsgroup is another place to find class announcements. The main purpose of the newsgroup, however is to post questions related to assignments or course material. You will want to subscribe to this newsgroup using Pine, Netscape or another news reader.

Textbook
There is no required text for this course. The main study material for the class will be the your own lecture notes along with notes and example code posted online by the instructor. In addition, you will need some kind of C# language reference. Many students may find the MSDN .NET Framework Documentation sufficient. For those who prefer a text, here are a couple of suggestions:

You should avoid older textbooks that predate "Visual C# 2005" or ".NET 2.0".

Programming Assignments
There will be three programming assignments. The assignments require Visual C# 2005 on a Windows machine. Visual Studio 2005 is installed on the microlab machines in Painter Hall. If you do not already have a UTCS account, you should apply for one immediately at: https://udb.cs.utexas.edu/udb/amut/acut/
If you choose, you may do the assignments at home using any version of Visual C# 2005. The Express Edition can be downloaded for free from:
http://msdn.microsoft.com/vstudio/express/visualCsharp/default.aspx
Some assignments may also require Visual Web Developer 2005, available for free from:
http://msdn.microsoft.com/vstudio/express/vwd/default.aspx
Assignments will be submitted via the UTCS Microlab Turnin System. More details will be provided in the assignment specifications.

Pair Programming
For the assignments in this class, you are strongly encouraged to work in pairs, but you may elect to work alone. If you choose to work with a partner, you are required to adopt a "pair programming" software development strategy. In pair programming, one person, called the driver, will be at the keyboard, while the other person, called the navigator, observes. The driver and navigator collaborate on all aspects of the development, including design, coding and debugging, but the driver does the actual typing while the navigator thinks about broader issues. The driver and navigator periodically change roles. Each partner should spend roughly equal amounts of time driving and navigating.

Pair programming does not mean dividing the assignment in half with each partner doing one part. While this is a valid software development technique, it will not be the one used in this class. All work must be done with both programmers working at the same machine at the same time.

If you choose to work in pairs, you will choose your own programming partner. When choosing a partner, it is important that you have compatible personalities and compatible schedules. Also, pair programming works best when both partners have roughly the same ability level.

Final Exam
The final exam is scheduled to be in class on March 7. The exam will be closed-book, closed-notes, and must be done individually. If there is an unavoidable conflict that prevents you from making it to the exam, you must tell the instructor by October 16 to schedule an alternate time. All students except those with unavoidable conflicts are expected to take the exam at the scheduled time.

Grading
Your final grade will be computed as follows:
Programming Assignments: 20% X 3
Final Exam: 40%

All grades will be posted in the eGradebook, which can be accessed through UT Direct. Students taking the class CR/NC must earn at least a C- to receive credit.

Late Policy
Assignments received more than 10 minutes after the deadline will be considered late. Because unforeseeable events sometimes occur, you will be given two "late days" for the semester. A "late day" is a 24-hour period after the assignment is due in which you may submit your assignment. Your late days may both be used on the same assignment or each on different assignments. Assignments submitted after given "late days" have been used up will not be accepted.

Religious Holidays
A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the examination on an alternate day or submit the assignment up to 24 hours late without penalty, if proper notice of the planned absence has been given. Notice must be given at least fourteen days prior to the classes scheduled on dates the student will be absent. For religious holy days that fall within the first two weeks of the semester, notice should be given on the first day of the semester. It must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail, return receipt requested. Email notification will be accepted if received, but a student submitting such notification must receive email confirmation from the instructor. A student who fails to complete missed work within the time allowed will be subject to the normal academic penalties.

Dropping the Course
Due to the shortened schedule of this course, the last day to drop the course with instructor approval is not the same as it is for your other courses. The Q-drop deadline for this course is 11am, March 7. The instructor is available to sign drop forms in class, during scheduled office hours, or by appointment with at least seven days notice. Once the final exams are distributed, the instructor will not sign any more drop forms. After that time, a student may only drop the course for non-academic reasons, such as extended health-related problems or family emergencies by contacting the Dean's Office.

Academic Honesty
Although you are encouraged to discuss ideas with others, your programming assignments must be the original work of you or you and your partner. You may have outside discussions about general concepts and algorithms, but you may not collaborate on flowcharts, pseudocode, or source code. These rules must be followed when asking and answering questions on the newsgroup as well. Also, you and your partner are responsible for debugging your own code. It is not acceptable to get outside debugging help. Violations of the academic honesty policy will result in a failing grade in the class and notification of the Dean of Students. If you have any questions about this policy, please direct them to the instructor.

Portions of this document were adapted from course materials for Stanford University's cs193n course: http://cs193n.stanford.edu/
Get Firefox! Valid HTML 4.01! Last Modified Sun Jan 21 23:19:25 CST 2007