|
|
Announcements
-
Lab
4 is assigned. Please
check BLACKBOARD. Design portion due: 4/21/2010; Programming Portion
due:
4/30/2010. [Posted
04/12/2010]
-
Lab
3 is assigned. Please
check BLACKBOARD. Design portion due: 4/2/2010 Friday; Programming Portion
due:
4/12/2010
MOnday. [Posted
03/24/2010]
-
How to mask passwords?
See an example here:
passwordc.cpp
-
Due day for Lab
2 programming portion is postponed to
3/24/10.
-
How to
remove
an
element
from a
vector? See an example here:
vectorerase.cpp
-
Lab
2 is assigned. Please
check BLACKBOARD. Design portion due: 3/10/2010 Wednesday; Programming Portion
due:
3/21/2010
Sunday. [Posted
02/26/2010]
-
A
list of
chapters
to be
covered
in the midterm exam
can be
found
here:
Midterm-Chapters.txt
-
The midterm exam is scheduled on
Friday, Feb.
26. Same time and place as class.
-
How to
get an
integer
from a
keyboard? See an example here:
getnumber.cpp
[Posted
02/10/2010]
-
An
example
of the
Menu
Class can be
found
here: Lec05b-Lab 1
Menu Class.pdf
[Posted
02/10/2010]
-
An
example
for case
cases
can be
found
here: useCases.ppt
[Posted
02/1/2010]
-
Lab
1 is assigned. Please
check BLACKBOARD. Design portion due: 2/10/2010 Wednesday; Programming Portion
due:
2/19/2010
Friday. [Posted
01/29/2010]
-
How to read a file name in from your
keyboard? See an example here: inputfilename.cpp
-
A better example can be found here:
inputfilenamev2.cpp
-
Homework 2 is assigned. Please
check BLACKBOARD. Due: 1/29/2010. [Posted 01/22/2010]
-
How to generate a random number? Click here.
-
Please download a sample code rand.cpp. Click
here.
-
Homework 1 is assigned. Please
check BLACKBOARD. Due: 1/20/2010. [Posted 01/15/2010]
-
The classroom is changed to Lowder Hall 110.
[Posted 01/11/2010]
-
The webpage of comp2710 is launched. [Posted
01/08/2010]
|
|
Course Information
10:00
am - 10:50 am |
MWF
|
Lowder Hall 110
|
TA:
Prabhu Selvaraj, pzs0019@auburn.edu
Office
Hour:MWF 4:00pm-5:00pm.
Office: 2117 Shelby Center, Desk 13
COMP 2710 is highly schizophrenic in
that it is both a course on managing the complexity of large systems
and an applied programming class. Managing software complexity requires
some knowledge of software process. Applied programming means that you
will be required to critically analyze real-world types of problems,
design algorithms, and then implement those algorithms in high-level
code to solve problems. COMP 2710 is as much about learning to
solve
problems as it is about C++ Programming. This course requires
organization, effort, and discipline. You should prepare for every
class and bring LOTS of questions – COMP 2710 is not a passive
viewing
experience. If at any time you feel that you are falling behind, you
should contact the instructor immediately and come to office hours
frequently. The keys to success in this course are attending every
class, starting on homework assignments as soon as they are assigned,
actively studying for exams, and always requesting help in a timely
fashion. This course typically requires 9 hours of time per week,
on
average for the average student. If you don’t have it, drop.
|
|
Prerequisite
COMP2210 Fundamentals
of Computing.
|
|
Course Objectives
Upon
successful completion of the course, the student should be able to:
(1) Analyze problems to determine system requirements
(2) Develop object-oriented software designs that
map to requirements identified in analysis
(3) Develop software using sound programming
principles
(4) Grasp both C++ Syntax and Semantics
(5) Have experience in developing non-trivial
software applications
(6) Understand concepts of data abstraction,
efficiency, and memory management
(7) Understand how to perform software testing.
|
|
Textbooks
Required
Text: Savitch, Walter. Absolute C++, 2nd or 3rd Edition. 2005 .
Addison-Wesley.
|
|
Topics
Administrative Stuff (Lecture 1)
C++ Intro: History, Basics, through Flow of Control (Lectures 1-2)
I/O: Basic, File (Lecture 3)
Functions: Basics, Overloading, Templates (Lectures 4-6)
Arrays (Lecture 7)
Structures & Classes: Basics, Constructors (Lectures 8 –
10)Software Process (Basics of Analysis, Design, and Testing) (11-13)
Midterm Exam (Lecture 14)
Vectors and Iterators (Lecture 15)
Operator Overloading (Lectures 16-17)
Strings and Streams (Lectures 18-20)
Pointers & Dynamic Arrays (Lectures 21-24)
Inheritance and Polymorphism (Lectures 25-28)
Additional Topics covered as they occur: Separate Compilation,
Makefiles, Templates
“Flex” Lectures (Lectures 29-31)Final Exam will be Thursday
on Dec. 10th, 2009
|
|
Assessment
Exams:
Midterm Exam, Final Exam
Exams will be closed book, closed notes. Questions will
be derived from
lectures, material taught only in class, and from assignments. Question
format will be mixed.
Short Homeworks and Activities: 3 homeworks
These activities will be take-home in nature and designed
to reinforce
concepts taught in class. They will be due in writing at the beginning
of class. An electronic copy may also be necessary (specified in the
assignment). Generally, these assignments are designed to be low-risk
in the sense that they are designed to assess thinking and effort,
rather than to strictly punish errors.
Individual Construction Projects: 4 Lab
Assignments
These projects will consist of the creation of design
artifacts (turned
in prior to the implementation) and correct C++ implementations of
project specifications. All projects should be made to compile under
the g++ compiler on Linux. You may use any development platform or
compiler, but your projects will be graded ONLY on a g++ compiler
running on Linux. If your project does not work in that environment,
you will NOT get credit. Always test it yourself in the lab (Shop 3)!
Individual Projects will be graded as follows:
Analysis, Design, and Testing Documents: 30%
Adhering to coding style: 10%
Program meets specifications and implements key features
correctly: 60%
(Note that efficiency is not a grading criteria in this
class)
|
|
Getting
Help
Assignments may prove challenging and
time-consuming. You are always welcome to bring questions concerning
labs to the class, as well as to office hours. A good strategy is to
always start early on projects, so that if you run into difficulties,
you can get help as soon as possible. I will do my best to answer
e-mails concerning labs within 48 hours of receiving them; however, I
do not guarantee that I will always have time to debug code via e-mail
(I prefer not to do so). For time-consuming problems dealing with code,
office hours are always preferable. I will not help debug code via
e-mail on the day an assignment is due. The Blackboard Discussion Board
is a great way to ask questions so that everyone benefits from the
answer to your question!
|
|
Office
Hours
MW 8:00am - 9:00am. You are always welcome to drop
by
during office hours to
discuss projects or general concepts. To get urgent help or advice out
of office hours, it is recommended to send an email in advance to make
an appointment.
TA: Prabhu
Selvaraj, pzs0019@auburn.edu MWF 4:00pm-5:00pm.
Office: 2117
Shelby Center,
Desk 13
|
|
Course
Difficulty
Typically, the course starts
off relatively easy and
gets harder as time goes on. Often, students are deceived by the
(slower) initial pace and develop lazy habits at the beginning of the
course. By mid-semester, they have thrown away many grade opportunities
and find themselves in a bad situation with respect to grades. No
amount of effort at the end of the class will compensate for
consistent, dedicated effort throughout the class. Whether or not you
have past experience with programming (or even with C++), my strongest
recommendation is that you respect the class and come to class ready to
engage every single class period. If you do this, you will dramatically
increase your chances of success.
|
|
Attendance
Class attendance
is mandatory. This is an important undergraduate class; therefore,
students will have
to actively participate in class. It is believed that if you miss many
classes (more than 6), there is a strong likelihood that you will not
pass the class. Please notify me in advance if you will attend
conferences, research meetings, or the like.
|
|
Grades
Mid-term 20%
Final
Exam 20%
Quizzes 10%
Class Participation
5%
Written
Assignments 10%
Lab
Assignments
35%
A [90, 100], B [80,90), C [70,80), D [60,70), F [0,60)
Note: In order to pass
the class, you must receive at least 60% credit on the Individual
Construction Projects and Homework, regardless of performance on exams.
|
|
Project
Due Dates
Projects will be submitted
through Blackboard. Projects will always be due at 11:55 pm on the due
date. Late assignments will receive a grade of zero (0) Deadlines will
be made as generous as possible to a priori take into account illness,
other courses, Acts of God, and nearly all conceivable excuses. If you
have a documented illness preventing you from completing your
assignment, you may submit all of your partial work and request an
extension. This extension is not automatic.
|
|
Academic
Integrity:
Students will
be expected to understand and follow Academic Honesty policies in place
by the university. All work is to be done individually. Students should
NOT share any project code or even detailed algorithm information with
each other. Your programming code is exclusive to you.
|
|
Special
Accommodations
A student
in need of special accommodations must bring that need to my attention
within the first two weeks of class. The need must be properly
documented.
|
|
Study Hints
Ask questions in class.
At the first sign of difficulty, talk to your instructor and teaching
assistant.
Form a study group and meet regularly.
Construct chapter summaries noting concepts, definitions, &
procedures.
|
|
Misc Related Material
Instructor
Wiley's C++ Tips
gdb
Tutorial
|
|
|
|
|
|