CS 245: Object-Oriented Programming { C++ Syllabus Winter, 2012

silkthrilledΛογισμικό & κατασκευή λογ/κού

18 Νοε 2013 (πριν από 3 χρόνια και 8 μήνες)

102 εμφανίσεις

CS 245:Object-Oriented Programming { C++
 Logistics.
{ Lectures:Monday,Tuesday,Wednesday,Friday;10:00 in CF 227
{ Instructor:James Johnson
{ Oce hours:CF 467,Monday,Wednesday,Friday,11:00 - 12:00
{ Instructor contact.
 e-mail:James.Johnson@wwu.edu
 website:http://faculty.cs.wwu.edu/johnson
{ Text:Big C++,2
Edition,by Horstmann and Budd,Wiley,2005.
{ Catalog description:Object-oriented design:Universal Modeling Language (UML);implementation of a
substantial project in C++ on the UNIX/Linux platform,templates,Standard Template Library.
{ Evaluation items (tentative):
 Four programming assignments (20 points each)
 Three exams,including nal (30 points each)
{ Tentative Grade scale:90+ = A,75+ = B,60+ = C,50+ = D,50- = F.This scale applies to a
weighted total of the seven evaluation items.Excepting unusual circumstances,there will be no +/- grade
{ Grade computation example.Suppose student X receives scores 75/100,80/100,90/100,82/100 on the
four programming assignments and 80/100,60/100,90/100 on the three exams.Weighting the scores as
specied,we have
20  0.75 = 15
20  0.80 = 16
20  0.90 = 18
20  0.82 = 16.4
30  0.80 = 24
30  0.60 = 18
30  0.90 = 27
170 134.4
Student X has 134.4 of 170 points,giving a nal normalized score of (134:4=170) 100 = 79:1,a B grade.
 Course objectives.On completion of this course,students will have demonstrated:
{ a thorough understanding of the C++ programming language,with emphasis on the object-oriented
{ a basic understanding of object-oriented software design,including the Unied Modeling Language (UML).
 Policies:
{ Notices.Graded work may be due during the last week of lectures.Further notices will appear on the
course web site and will include such items as due dates for programming assignments.
{ Attendance.Although I will record lecture attendance,this information will not in uence your grade.I
am simply curious about the correlation between lecture attendance and performance.If you arrive late
for lecture,please check with me after class to ensure that I noticed your entry.
{ Late work.In general,late programming assignments will be accepted for a maximum of 60% credit
through the rst week after the due date.Later submissions will receive no credit.Assignments
due during the last week of class will not be eligible for the grace period extension.
{ Programsubmission.Each student will be assigned a directory on a lab server that will be accessible by
the instructor.Each assignment should be submitted in a distinct subdirectory of the student directory.
The le timestamp must indicate submission prior to the assignment deadline.
 Course overview.C++ is an object-oriented programming language,where the emphasis is on entities
that occur naturally in the application at hand.Nevertheless,it possesses all the procedural structures of
action-oriented languages,which emphasize actions operating on data through sequential statements,branch
operations,and loops.In the text,the rst seven chapters cover the C++ counterparts of the corresponding
Ada structures,as well as an initial look at classes,which correspond to Ada's tagged records.In the text
preface,the authors refer to this material as Fundamentals,comprising segment A in the diagram of page viii.
Given that you are already familiar with this material in Ada syntax,we will proceed quickly with lectures
that outline the essentials.Your rst programming assignment will exercise these fundamentals,and if all goes
well,you should have that assignment at the end of the second week.
The true object-oriented nature of C++ begins to be revealed in Chapter 8,which deals with inheritance.Of
course,Ada also includes inheritance,but the mechanics are more coherent in C++.Although the authors con-
sider this topic as part of segment A in the preface diagram,you will encounter it in your second programming
The preface diagramclassies subsequent chapters into four segments:(B) Data Structures and Algorithms,(C)
Advanced Topics and the Standard Template Library,(D) Object-Oriented Design,and (E) Applications.Given
the CS 241 course prerequisite,you should nd little new material in segment B.Indeed,except for exercising
the concept of container classes,they do not really extend the object-oriented advantage.Nevertheless you
must master these devices to programeciently in C++,and therefore you will be responsible for this material.
Depending on time constraints,we will sample more or less of these chapter topics in lecture.
Segment C develops further consequences and opportunities associated with the emphasis on objects:memory
management,templates,class hierarchies,the standard template library.Ideally,we will cover this material in
detail,and you will exploit the concepts in the later programming assignments.Segment D comprises several
chapters on software design,of which the most interesting from our standpoint are the Unied Modeling
Language (UML) and the notion of reusable design patterns.My intentions are to introduce this material in
parallel with the segment C material,following up with an overview of the segment D chapters at the end.We
will leave the segment E applications for subsequent courses.
C++ is a large language,but fortunately we can approach it incrementally.It will be helpful if you can nd
time to write programs beyond the four required assignments.Each chapter contains several heavily annotated
examples,which you should certainly come to understand as you read the material.However,source code for
these examples is available from the text publisher,and a link to this code appears on the course web page.
You can download these codes and experiment with variations to help solidify the concepts.
 Important dates.
{ Midterm exams:January 23 and February 15 (tentative).
{ Final exam:Monday,March 12,8:00 { 10:00 AM,CF 227