CS 350 Syllabus - Spring 2006

Instructor   Dr. Bonnie McVey 

Office: Cofrin 310 Phone: 920.403.3471
Office Hours: MW 2-3, TTh 9-10, F 8-9
                        and by appointment
Email: bonnie.mcvey@snc.edu

Course Meetings 

Lecture: MWF, 11 - 12:10pm, Cofrin 203
Labs: Thursday, 3-5 pm, Cofrin 108

Texts

Required:
    No specific text.
Reference:
MFC VC++ 6.0
    MFC Programming from the Ground-Up, Schildt, Microsoft, 2003.
    Programming Windows with MFC, Prosise, MicroSoft Press, 1999.
    Introduction to MFC, Deitel & Deitel, Prentice Hall, 2000.
MFC and Windows Forms in Visual Studio.Net
    Visual C++.NET: Step by Step, Templeman and Olsen, McGraw-Hill, 1998.
    Special Edition: Using Visual C++.NET, Gregory, QUE, 2002.
Win 32
    Windows Programming with C++, Hansen, Addison-Wesley, 2002.
    Programming Windows, Petzold, Microsoft, 1998 .
    Win32 Programming, Rector & Newcomer, Addison-Wesley, 1997.
Flash
    TBA

Required Background

You need to have successfully completed CS 205 or an equivalent course elsewhere. What this means is that you need to understand classes, inheritance, virtual functions, 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 event programs using a variety of platforms. You will be able to write programs that are event driven rather than programmer-driven. We will primarily be using C++ but we will also use a explore programs in another language. 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 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!

Schedule/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 four exam scores is below 68, then your Labs, Homework, Programs, and Project/Presentation cannot be used to increase your course grade.

Course Documents

Check website http://www.snc.edu/compsci/cs350/ 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 26 (Thursday) Drop/Add Deadline
February 27 (approximate) Exam 1
March 3 Mid-Term Reports 
March 11 - 19 Spring Break - No Class
March 29 (Wednesday) Advisement Day - No Class
April 4 (Tuesday) Advisement Day - No Class
April 5 (approximate) Exam 2
April 6 Last Day for Course Withdrawal 
April 14 - 17 Easter Weekend - No Class
May 5 Last Day of Class
May 11 (Thursday) Final Exam, 2:15pm - 4:15pm

Other

If you need course adaptations or accommodations because of a disability, if you have emergency medical information to share with me, or if you need special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible.

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 CS 350 for the first time in Spring 2001 and have thoroughly enjoyed studying and learning this material. The second time through the course (Spring 2003) differed significantly from the first for I learned how to better organize the material and how to anticipate difficulties. I look forward to this semester and the opportunity to learn more with you. Enjoy!