CSCI 350 Syllabus - Spring 2008

Instructor   Dr. Bonnie McVey 

Office: Cofrin 310 Phone: 920.403.3471
Office Hours: MTTh 2-3, WF 9-10
                        and by appointment
Email: bonnie.mcvey@snc.edu

Course Meetings 

Lecture: MWF, 11 - 12:10pm, Cofrin 203
Labs: Thursday, 11-1pm, Cofrin 112

Texts

Required (Choose at least one of the following):
    Windows Forms in Action, 2nd Edition, Erik Brown, Manning Publications Company, 2006. (great with controls, no graphics or drawing, less high-level applications)
    Windows Forms 2.0, Microsoft .net Development Series, Chris Sells and Michael Weinhardt, Addison Wesley, 2006. (has graphics and drawing, high-level applications, but minimal information on controls)
Other Texts:
    Programming Microsoft Windows Forms: A Streamlined Approach Using C#, Charles Petzold, Microsoft Press, 2006. (Best if accompanied by Programming Microsoft Windows with C# (2001) since the book published in 2006 does not repeat information in the 2001 book.)

Required Background

You need to have successfully completed CSCI 205 or an equivalent course elsewhere. What this means is that you need to understand classes, encapsulation, inheritance, information hiding, polymorphism, dynamic memory allocation as well as all the basic expressions and statements. Some of you may have some experience with Windows and/or event programming, but none is assumed.

Course Objectives

At the completion of this course, you will be able to write Windows programs using both C# and Windows Forms in a .NET Framework and ActionScript in the Flash environment. You will be able to write programs that are event driven rather than programmer-driven. Whatever the language, the principles involved are the same.

As a side benefit, you will gain lots of experience in good programming practices, software engineering principles, object design and manipulation, and developing user-friendly and effective interfaces. I look forward to trying some of the creative applications that you will produce this semester. As always in programming, practice and attention to detail are keys to success. Enjoy!




Topics (approximate)

Message queues, menus, common and classic controls, system metrics, modal and modeless dialog windows, frame windows, parent and child windows, GDI, communication among windows, SDI applications, MDI applications, various views, serialization, use of timers and callbacks, ...

Grading 

Midterm Exams (2) 40% of course grade
Comprehensive Final Exam 20% of course grade
Labs, Homework, Programs, Project/Presentation 40% of course grade
Cutoffs: 93 - A, 90 - AB, 83 - B, 80 - BC, 70 - C, 68 - CD, 60 - D
NOTE: If the average of your three exam scores is below 65, then your Labs, Homework, Programs, and Project/Presentation cannot be used to increase your course grade.

Course Documents

Check website http://home.snc.edu/bonnie.mcvey/csci350/ often for course news, assignments, hints, corrections, solutions, etc

Policies

  1. Attendance is expected. Pop quizzes and in-class assignments may be given and cannot be made up. When possible, inform me before class or lab that you will not be there. If you miss a class, you are responsible for all information from the class. You may miss one lab and still hand-in the lab report for credit.
  2. Labs meet each week and you are required to attend. If you finish early, you may request permission to leave. Arriving more than 10 minutes late for lab is considered being absent. Labs are an essential part of this course and are designed to help you explore important concepts. Work carefully and attentively to get the most from the lab. Lab reports will be turned in at the beginning of lab on Thursday of each week.
  3. All assignments are due at the beginning of class on the day due unless otherwise stated. A forgotten assignment (an assignment is not forgotten if you are not in class!) may be handed in within 30 minutes after class to my office (COF 310).
  4. There will be approximately five programming assignments this semester worth 100 points each. Programs that do not compile will receive little or no credit. All programming assignments must adhere to specified programming standards. Programs may be submitted up to 24 hours after the required time; however, your grade will be reduced by 20%.
  5. SNC ACADEMIC HONOR CODE (adapted from dcp) I actively enforce the Academic Honor Code. By your registration in this course, you agree to abide by the Academic Honor Code. All materials handed in for grading are subject to the code. Each document must bear your signature after the label Honor Code Signature. It is understood that your signature means that you followed the SNC Academic Honor Code for that assignment. Any document that does not contain your signature is considered not submitted. Below are some guidelines for following the honor code:
    1. No outside sources or references are allowed on exams given "in-class."
    2. Research papers, programs, homework, lab reports must fully document another's ideas and works.
    3. Programming can be a social activity. Indeed, industry often demands that project teams collaborate. You may share your ideas on assignments, but you may not share program code. For example, if Nike and Sony work together on part of an assignment, then both must acknowledge this in the documentation for that program. If Nike asks Sony for help and Sony complies, then it is Sony's responsiblity to make sure that Nike understands the problem and its solution. It is Nike's responsibility to acknowledge Sony's assistance in the program documentation. Neither's grade will be affected.
    4. Students must do their own work on their own directory and/or flash drive. You are in violation of the Academic Honor Code if you share your own or copy another's program code or parts of a program in any form(printed, screen, file, etc). Never leave your work on the disk drives of lab machines or forget to pick up your printouts.
    5. Unless specifically told otherwise, a lab report is an individual effort. Although working with a partner during a lab exercise is encouraged, sharing information on the written report is considered cheating; that is, the written report is an individual effort.
    6. Discussing written assignments with others is often a good experience since there are often many solutions to one problem, but again, the written report is an individual effort. Writing your solutions to the assignment yourself not only helps you more fully understand and but also keeps you from violating the SNC Academic Honor Code.
    7. If in doubt, don't!

Important Dates 

January 24 Drop/Add Deadline (Thursday)
February 28 Exam 1 (approx. date)
February 29 Mid-Term Reports (Friday)
April 3 Exam 2 (approx. date)
March 15 - 24 Spring/Easter Break - No Class
April 1 Advisement Day (Tuesday)
April 3 Last Day for Course Withdrawal
April 9 Advisement Day - No Class (Wednesday)
May 2 Last Day of Class
May 9 Final Exam, 8-10am or 11-1pm or something in between! (Friday)

Other

In keeping with the St. Norbert College mission to help students develop their full potential, and in compliance with the Americans with Disabilities Act, the College provides supportive services to students with disabilities. For enquiries and further details, please visit the Academic Support Services Office located on the lower level of the John Minahan Science Building (JMS) or contact Karen Goode-Bartholomew, Coordinator of Services to Students with Disabilities (Phone: 403-1326), or visit the website www.snc.edu/academicsupport/disabilities.html.

Read books, ask questions in class and in office hours, work hard. Programming is both fun and frustrating and there is no substitute for practice. You are already aware that it can take hours to find an error or it can take minutes, so start assignments early. Please know that I want you to do well, but the choice to succeed is made by you.

As many of you know, I came to SNC in Fall 2000 as a theorist. My graduate courses other than requirements were based in theory. The courses that I taught at BSU were introductory or theoretical. I taught CSCI 350 for the first time in Spring 2001 and have thoroughly enjoyed studying and learning this material. Obviously, platforms and languages have changed since my initial experience, and I have adapted the course material with each new semester. For the first time, I will not be using C++ and the MFC (Microsoft Foundation Classes) as the primary means for implementing event programs. Bear with me as we learn to exploit the advantages of C# and the .NET framework as well as ActionScript 3.0 and Flash. I think it will be a good semester, full of exploration and learning, and I look forward to sharing this opportunity with you. Enjoy!