CS202 Computer Science II

Course
34845
Section
F01
Credits
3 + 0
Prerequisites:
  • CS201
Instructor
Brandon Marken
Phone
907-474-6104
Office
Chapman 210B
Email
bamarken@alaska.edu
Office Hours
M
W
Teaching Assistant
Zak Williams
Meeting Time
Room
Chapman 106
Course Website
/courses/cs202/2014-spring/
Required Texts
Starting Out With C++: From Control Structures through Objects, 7th Edition. by Tony Gaddis.

Course Description

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.

Tentative Schedule

Grading Policies

Weight Description
20% Exam 1
20% Final Exam
20% Homework
40% Group Project

Grades will be assigned based on the following percentage intervals:

A
[90%, 100%)

B
[80%, 90%)
C
[70%, 80%)
D
[60%, 70%)

F
[0%, 60%)

Assignments

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.

Coding Standards

Coding Standards

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 intchardouble) by value, and pass objects (like stringvector) 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++: constprivate, 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

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.

Version Control

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. 

Policies

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. Payment allows access to the Chapman 103 lab.

UAF academic policies http://www.uaf.edu/catalog/current/academics

CS Department policies http://www.cs.uaf.edu/departmental-policies/

Disabilities Services:

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.

Updated: