CSCE 2004
Class Syllabus
  Spring 2012

Web Page: http://www.csce.uark.edu/~gordonb

Instructor:

Dr. Gordon Beavers
Class Time: MWF 11:30 - 12:30; JBHT 144
Office: JBHT 504
Hours: Mon, Tues, Wed, Thurs 3:30 - 4:30
Email: gordonb(at)uark.edu
Web Page: http://www.csce.uark.edu/~gordonb/

Teaching Assistants:

You may visit either TA's office hours for help on assignments, not just the TA for your lab section. Mary Ganesan
Office: 434 JBHT
Labs: Mon 3:30; Tue 8:00; Tue 11:00
Office Hours:  Monday and Tuesday  1:00 to 3:00
Email: mganesan(at)uark.edu
Qussai Yaseen
Office: 434 JBHT
Labs: Thu 8:00, Thu 11:00; Thu 3:30
Office Hours: Thu 1:30 - 3:30, Fri 3:00 - 5:00
Email: qyaseen(at)uark.edu

Catalog Listing:

Introductory course for students majoring in computer science or computer engineering. Software development process: problem specification, program design, implementation, testing and documentation. Programming topics: data representation, conditional and iterative statements, functions, arrays and records. Using C++ in a UNIX environment.

Prerequisites:

Math 2554 (Calculus I)

Textbook:

Starting Out with C++ Brief: From Control Structures through Objects, 6th edition. Tony Gaddis, 2009.  Published by Addison Wesley.

Students are also required to purchase Turning Point clickers for use during lectures.

Optional operating system manual:

Linux in a Nutshell, 3rd edition. Ellen Siever, Stephen Figgins, Robert Love, Arnold Robbins, 2009.  Published by O'Reily Press.

Course Learning Outcomes:

The goal of this class is to develop fundamental computer-based problem solving skills in the following three areas:

  1. Software Development - The specification, design, implementation, testing, and documentation of software to solve specific problems.
  2. Structured Programming - The syntax, semantics, and use of the basic features of a typical structured programming language (e.g., loops, conditionals, functions).
  3. Algorithms and Data Structures - Basic methods for storing and manipulating data to effectively solve specific problems (e.g., arrays, binary search).
  4. Object Oriented Programming - The syntax, semantics, and use of the basic features of a typical object-oriented programming language (e.g., C++).

The pedagogical approach will be focused on solving problems using existing software modules (e.g., class libraries) and new modules when necessary.  The syntax and semantics of programming language constructs will be introduced as needed in this context.  Biweekly programming assignments and their associated reports will be added to each student's programming portfolio.  Labs will reinforce concepts taught in the lecture and also introduce students to the linux operating system.

Chapters in Textbook Covered:

Chapter 1: Introduction to Computer and Programming
Chapter 2: Introduction to C++
Chapter 3: Expressions and Interactivity
Chapter 4: Making Decisions
Chapter 5: Looping
Chapter 6: Functions
Chapter 7: Arrays
Chapter 8: Searching and Sorting Arrays
Chapter 9: Pointers
Chapter 10: Characters, Strings, and the string Class
Chapter 12: Advanced File Operations
Chapter 13: Introduction to Classes
Chapter 14: More About Classes
Chapters 11 and 15 will be skipped

Grading:

Final grades in this class will be determined by a weighted average of lab grades, programming project grades, quizzes, and exam scores. We will use the following scale to assign final grades:

A: 90% and above
B: 80% - 89%
C: 70% - 79%
D: 60% - 69%
F: below 60%

Students must pass BOTH the homework portion of the class (labs and projects) AND the exam portion (midterm and final) with a grade of D or better in order to pass this course. Hence, an overall average greater than 60% may still result in a failure in some cases.

The grade will be calculated as follows:

Quizzes: 10%
Labs: 20%
Programming Projects: 30%
Midterm: 15%
Final Exam: 25%

Quizzes: There will be short, in-class quizzes frequently throughout the semester. Turning Point clickers may be used to collect quiz responses.

Labs: There will be weekly laboratory assignments. Grades for the labs will be based on completeness, correctness, and effort. Although lab materials are available on the web and can be submitted electronically, students are required to attend labs. Lab attendance will be taken in the first and last 15 minutes of the lab, and students who are not present both times will lose 100% of their grade for that lab. Labs submitted without attendance will NOT be accepted. Students may leave the lab early only if they show their completed lab assignment to the TA and get signed out.

Programming Projects: There also will be 6-8 relatively large programming projects The programming projects will be graded according to the following scale:


50% program correctness
20% software design
10% programming style
10% testing
10% documentation

Programming projects must be submitted electronically by midnight of the due date specified in the project description. The code must be submitted in .cpp format and the documentation must be in .txt format.

Projects Late Penalties


Electronic copy submitted late: 1st day: -10 points, 2nd day: -20 points. 3rd day: -30 points, After: -100 points
No hardcopy submitted: -20 points
Hardcopy submitted late: -10 points
Incorrect format (electronic copy): 1 reminder and -5 points, After: -100 points

Weekends count as 1 day. Partial credit will be given for programs which compile but which are not complete. Starting early on programming projects is strongly encouraged.

Students are allowed to discuss program design and other high level issues with each other.  Students are also allowed to help each other understand specific compiler or run time error messages.  However, unless otherwise specified, students are not allowed to work together on programming assignments.  Copying all or part of another person's program is strictly prohibited and will result in a grade of zero and be reported to the Academic Integrity Monitor. Supplying printed or electronic copies of your homework to other classmates will also result in a grade of zero and be reported to the Academic Integrity Monitor.

Exams: There will be two exams in this class. One midterm exam and a comprehensive final. All exams will be closed book, but each student will be allowed a single 8.5 by 11 sheet of notes. Calculators will not be needed or allowed. Make up exams will only be allowed under exceptional circumstances (e.g., a note from your doctor).

ABET/CSAB program outcomes:

(a) An ability to apply knowledge of computing and mathematics appropriate to the discipline.
(b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
(c) An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs.
(e) An understanding of professional, ethical, legal, security, and social issues and responsibilities.
(i) An ability to use current techniques, skills, and tools necessary for computing practice.

Academic Integrity:

As a core part of its mission, the University of Arkansas provides students with the opportunity to further their educational goals through programs of study and research in an environment that promotes freedom of inquiry and academic responsibility. Accomplishing this mission is only possible when intellectual honesty and individual integrity prevail.

Each University of Arkansas student is required to be familiar with and abide by the University's 'Academic Integrity Policy' which may be found at http://provost.uark.edu/ Students with questions about how these policies apply to a particular course or assignment should immediately contact their instructor.

Obviously, copying is not allowed on exams. Students are expected to submit their own work on individual programming projects. Lending or borrowing all or part of a program from another student is not allowed. Students ARE allowed to borrow and modify any code on this class web site in their labs or programming projects. Instances of cheating will be handled using the policy specified in the University of Arkansas Undergraduate Studies Catalog, Academic Regulations, Academic Dishonesty section By that policy, unauthorized collaboration on homework assignments will result in 0 for that assignment and be reported to the College of Engineering's Academic Integrity Monitor.

ADA Statement:

If any member of the class has a documented disability and needs special accommodations, the instructor will work with the student to provide reasonable accommodation to ensure the student a fair opportunity to perform in this class. Please advise the instructor of the disability and the desired accommodations within the first week of the semester.

Inclement Weather:

If the university is officially closed, class will not be held. When the university is open, you are expected to make a reasonable effort to attend class, but not if you do not feel that you can get to campus safely. Assignment due dates will be postponed in case of inclement weather.