Department of Computer Science
University of Alaska Fairbanks
PO Box 756670
Fairbanks, Alaska 99775-6670
Duckering Building, Suite 527
1760 Tanana Loop
Phone: (907) 474-2777
Starting Out With C++: From Control Structures through Objects, 7th Edition. by Tony Gaddis.
The discipline of computer science including problem solving, algorithm development, structured programming, top-down design, good programming style, object-oriented programming and elementary data structures. Concepts implemented with extensive programming experience in a structured language and with a group programming project.
Grades will be assigned based on the following percentage intervals:
Assignments will be required generally on a weekly basis. The assignments will reinforce lecture concepts and demonstrate application of critical thinking skills. Unless otherwise specified, all assignments must be done on an individual basis. Individuals submitting the same or highly similar homework solutions will each receive an F for the semester. Further while I also encourage students to utilize online resources, individuals submitting assignments which are copied directly from the Internet will be also receive an F for the course. LATE SUBMISSIONS WILL BE SEVERELY PENALIZED IF ACCEPTED.
The following standards must be followed on all source code (including header files) turned in as homework assignments. It does not apply to labs (but you should probably follow it anyway.)
First and foremost is the following standard.
All code turned in must compile and execute. If a test program is provided, then the code must compile with the unmodified test program. Code that does not meet this standard will not be graded.
1. High Quality Code
Code must be of high quality. In particular:
Code should be neat and readable.
Use consistent indentation and proper use of white space.
All identifiers should describe themselves. Don't use i and j when you can write row and col.
Class names and other user-defined types should start with a capital letter.
Identifiers should use camelCase if they contain more than one word.
Member variables should either start or end with an underscore, such as _data.
Const variables should use all CAPS
Comments must be included in code. Comments in code must be correct.
Files must be organized in accordance with standard conventions.
In C++, split code appropriately among header and source files, and use #include in the proper places, and #ifndef to avoid multiple inclusion.
Code should not perform any actions visible to the client code or the user, other than those in its specification.
In particular, avoid debugging printout in the turned-in version of your code.
Unnecessary or duplicate code should be avoided.
All functions should pass their parameters and return values in appropriate ways, and be defined in the appropriate place (e.g., inside a class? outside?).
In particular, pass built in types (like int, char, double) by value, and pass objects (like string, vector) by reference or reference to const (depending on whether you want to change those objects.)
Use of global variables should be avoided when other options exist.
Appropriate use should be made of language constructs that deny privileges.
In C++: const, private, etc.
2. Specific Standards
All source code must be in C++, as close as possible to the C++11 standard.
Every file should begin with a comment indicating the file’s name, author, date, and purpose.
Note: The purpose comment does not have to be very long. Something like “Header for class Foo” is generally fine.
Before every function definition, except possibly main, there should be a comment indicating the function's purpose.
Note: The purpose comment does not have to be very long. Something like “Solves exercise A from HW1” is generally fine.
Only required headers should be included, and namespace pollution should be avoided.
In particular, do not write “using namespace std;”. Also avoid the old style “.h” system headers. For example, prefer <cstdlib> to<stdlib.h>.
Examinations will consist of short answer questions to demonstrate critical thinking skills as well as application of computer science concepts.ALL EXAMINATIONS MUST BE TAKEN AS SCHEDULED EXCEPT IN EXTREME CIRCUMSTANCES.
All assignments in this course as well as the group project will be turned in via our project server using git. Assignments not on the project server will not be accepted.
Students are expected to be at every class meeting on time, and are responsible for all class content, whether present or not. If absence from class is necessary, in-class work (other than quizzes) and homework may be made up only if the instructor is notified as soon as possible; in particular, absences due to scheduled events must be arranged ahead of time. Academic dishonesty will not be tolerated, and will be dealt with according to UAF procedures. Students in this class must pay the CS lab fee.
The UAF Office of Disability Services implements the Americans with Disabilities Act (ADA), and ensures that UAF students have equal access to the campus and course materials. I will work with the UAF Office of Disability Services (208 WHITAKER BLDG, 474-5655) to provide reasonable accommodation to students with disabilities.