Dr. Melissa Danforth

Computer and Electrical Engineering and Computer Science Department
California State University, Bakersfield

CSUB Logo
Skip navigation links

Download file viewer

Syllabus
CMPS 221 Programming Fundamentals
Sections 1 and 2 - Fall 2012
Instructor: Dr. Melissa Danforth
Office: Sci III 338, 654-3180
Office Hours: MF 2:15 - 3:15pm and W 2:15 - 5:15pm (or by appointment)
Email: melissa@cs.csub.edu (Department email address is preferred for all course communication)

Course web site: http://www.cs.csubak.edu/~melissa/ under Teaching menu
Moodle web site: http://moodle.cs.csubak.edu/moodle/course/view.php?id=62

Course meets MWF 12:45 - 1:55pm and Th 12:45 - 3:30 in Sci III 315

Course Description:
Introduces the fundamentals of procedural programming. Topics include data types, control structures, functions, arrays, and standard and file I/O. The mechanics of compiling, linking, running, debugging and testing within a particular programming environment are covered. Ethical issues and an historical perspective of programming within the context of computer science as a discipline are given.
Prerequisite:
Satisfaction of the ELM exemptions OR passing score on ELM AND a passing score on the Pre-Calculus Readiness Test (see Class Schedule for details) OR completion of math remediation.
Units:
5
ACM/IEEE Body of Knowledge Topics:
(CS-PF1/CE-PRF1,2) Fundamental programming constructs and paradigms
(CS-PF2/CE-PRF3) Algorithms and problem solving
(CS-PF3/CE-PRF4) Data structures (Introduction: basic types, strings and arrays)
(CS-SP1/CE-PRF0) History of computing
Textbook:
You may use either the 6th edition or the 7th edition of the textbook:

6th edition: Starting Out with C++: From Control Structures through Objects, Tony Gaddis. Publisher: Addison Wesley, 2009. ISBN: 0321545885

7th edition: Starting Out with C++: From Control Structures through Objects, Tony Gaddis. Publisher: Addison Wesley, 2011. ISBN: 0132576252

Material Covered:
Chapter 1 Introduction to Computers and Programming
Chapter 2 Introduction to C++
Chapter 3 Expressions and Interactivity
Chapter 4 Making Decisions
Chapter 5 Loops and Files (6th edition: Looping)
Chapter 6 Functions
Chapter 7 Arrays
Chapter 8 Searching and Sorting Arrays
Chapter 9 Pointers
Chapter 10 Characters, Strings and More about the string Class
Chapter 11 Structured Data
Chapter 13 Introduction to Classes (if time permits in the course)
Appendix H Passing Command Line Arguments
Rough Weekly Schedule of Topics:
Exact weekly topics will be posted on the Calendar link on the course website. The following section numbers are from the 7th edition, but the Calendar will have the section numbers for both the 6th and 7th edition.

Week 1 Ch 1, 2.1 - 2.11, 2.14, 2.16 - 2.17, 3.1, 3.2, 4.1, 4.2, 4.12
Week 2 Ch 4.3 - 4.6, 4.8 - 4.12, 2.11 - 2.13, 2.16, 3.3 - 3.5, 5.1 - 5.3
Week 3 Ch 4.7, 4.10, 5.4 - 5.7
Week 4 Ch 4.14, 3.9, 5.8, 5.10, 5.12, 3.7
Week 5 Ch 6.1 - 6.10
Week 6 Ch 6.11 - 6.16, 5.11
Week 7 Ch 7.1 - 7.5, 10.1 - 10.5, 12.5
Week 8 Ch 7.4 - 7.7, Appendix H, 9.1 - 9.7, 9.9
Week 9 Ch 9.1 - 9.7, 9.9, 11.1 - 11.5
Week 10 Ch 11.7, 13.1 - 13.4, 13.7

ABET Outcome Coverage:
3b.
An ability to analyze a problem, and identify and define the computing requirements and specifications appropriate to its solution.
Laboratory and homework assignments will require analysis of the problem for successful completion of the assignments.
3c.
An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs. An ability to understand the analysis, design, and implementation of a computerized solution to a real-life problem.
Laboratory and homework assignments require analyzing the presented problems, designing a solution to those problems, and implementing the solution in a high-level programming language.
Attendance:
Students are responsible for their own attendance. The topics covered in lecture will be listed on the course website. Lab attendance is not required but is strongly encouraged.
Academic Integrity Policy:
Homeworks and labs may be worked on and discussed in groups. If the assignment is a group assignment, the group can turn in one assignment for the entire group. If the assignment is an individual assignment, each student must turn in their own code; no direct copying is allowed. Refer to the Academic Integrity policy printed in the campus catalog and class schedule.
Tutoring Center and Open Use Computer Lab:
The walk-in computer lab in Sci III 324 is available for use by students in this course outside of class time on a first come, first serve basis. Priority in the lab is given to students who are completing assignments for Computer Science, Computer Engineering, and Electrical Engineering courses.

Tutoring is also provided on a limited basis in the walk-in lab. A tutoring schedule will be posted on the department website by the end of the first week of classes. Students in this course may ask the tutors for assistance on assignments. The tutors are not allowed to solve the assignment for you, but they can assist with problems like cryptic compiler errors.

Grading:
Labs/Homework 35%
Midterms (2) 20% each, 40% total
Final 25%
Labs:
Lab assignments will be posted on the course website. Labs are worth 10 points and usually involving writing 1-2 short programs. The labs are due at midnight on the day of the lab. Partial credit will be given for incomplete labs. Late labs will not be accepted. The lowest lab grade will not be counted towards the overall lab grade.
Homework:
Homework assignments and due dates will be posted on the course website. Homeworks are worth 20 points and consist of multiple small programs. Programs which do not compile may be given partial credit depending on the severity of the error. Late homework will be accepted. Late homework will be marked down 10% for every weekday it is late. Weekends (Sat. and Sun.) count as only one day late (e.g. if it is due Fri and you turn it in Sun, it would only be one day late). If there is a notice on the assignment that late homework will not be accepted beyond a certain date, then that is the final day homework will be accepted. Otherwise, assignments more than three days late will not be accepted.
Labs/Homework Submission:
Assignments are submitted by emailing the instructor all assignment code files from the Computer Science department server. Do not use GMail, webmail or any other email method as the campus firewall and spam filter may silently reject the email. All assignments MUST be submitted to the instructor's Sleipnir account (melissa@cs.csubak.edu).

Refer to the Lab 1 handout on the course website for instructions on how to use the Computer Science department email. If you believe you submitted the assignment on time but the instructor has not received the email, contact the instructor.

Midterms:
Midterm 1 will be given on Monday October 1, 2012 during class time
Midterm 2 will be given on Monday October 22, 2012 during class time

Makeup midterms will not be given, but the other midterm will be counted proportionally higher if you have a valid reason for missing a midterm.

Final:
Final exam will be given on TBAMonday November 26th @ 2:00 - 4:30pm (added Sept 25th)

If you cannot make the scheduled final time because it conflicts with another final or you have more than two finals scheduled that day, you MUST contact the instructor ONE WEEK in advance of the final to schedule an alternate time.