Xiao Qin's Teaching

Auburn University

COMP2710 Software Construction

Teaching

 

Course Information

8:00 am - 8:50 am MWF Shelby 1124

TA: Bin Wang, bzw0012@tigermail.auburn.edu
Office Hour: MWF 2:00pm-3:00pm.
Office: 2117 Shelby Center, Desk #28 Phone: +1 (334) 844-8607

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


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

MWF 8:50am - 9:50am. 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.

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 15%
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 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

Misc Related Material

Instructor Wiley's C++ Tips
gdb Tutorial
Reference of the C++ Language Library