CMPS-2010 Programming I: Fundamentals Fall 2023
Gordon Griesel
Office: Sci III 337
Email: gordon@cs.csub.edu

Course web site: https://www.cs.csub.edu/~gordon/2010/

Class meets:
MWF 11:00am - 11:50am in Sci-III 240 (81649 lecture)
Tues 10:00am - 12:30pm in Sci-III 240 (81650 lab)

Course Description from the catalog... Introduces the fundamentals of procedural programming and object-oriented programming. Topics include: data types, control structures, functions, arrays, I/O, pointers and dynamic memory allocation, and features of object-oriented programming. The mechanics of compiling, linking, running, debugging and testing within a particular programming environment are covered. Ethical issues and a historical perspective of programming within the context of computer science as a discipline are given. Each week lecture meets for 150 minutes and lab meets for 150 minutes.
Prerequisite or Corequisite:
MATH 1040 or 1050 or 1060 or 2310 or 2510. Units: 4

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
Starting Out with C++: From Control Structures through Objects 
Author: Tony Gaddis
Publisher: Pearson
Edition: 9th
ISBN-13: 978-0134498379
ISBN-10: 9780134498379
(8th edition is acceptable)
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 Looping
Chapter 6 Functions
Chapter 7 Arrays
Chapter 8 Searching and sorting arrays
Chapter 9 Pointers
Chapter 10 Characters and strings
Chapter 11 Structured Data
Chapter 13 Introduction to Classes
Chapter 14 More About Classes
Grading Policy

Weekly assignments   50%
  . labs
  . homework
  . quizzes
  . attendance
Exams                30%
Final exam           20%
------------------------
Total               100%

Grading scale used during the semester...
    A   93%
    A-  90%
    B+  87%
    B   83%
    B-  80%
    C+  77%
    C   73%
    C-  70%
    D+  67%
    D   63%
    D-  60%
    F    0%

Other course details...

Attendance
Class attendance is required.
Please be in your seat and ready when the period begins at 11:00am.

Attendance marks:
   Late arrival to class - 1 mark
   Unexcused absence     - 1 marks

Each attendance mark will deduct 0.5% from your overall grade.


Lab Classes
Labs are hands-on assignments to be done during the class period.
You may use a personal laptop.
Some lab rules:
   1. If you are late to lab, do not copy from another student.
   2. If you need help, be ready to enlarge your screen text
      for viewing by your instructor.
   3. Your program must compile and run when collected at the end of lab.


Homework
Homework assignments will be posted on our web page.
Instructions will be given for each assignment.
Homework rules:
   1. The homework files will be collected by the instructor.
   2. Your program must compile and run when it is due.


General requirements of all assignments
Your assignments will be files stored on the Odin server.
Your files must be stored inside your 2010/ directory, and in the
proper subdirectory.

Your 2010/ directory must be created using a script provided. The 2010/
directory is created so that your work is visible only to you and your
instructor. Do not change the permission of the directory after running
the provided script.

   Other general requirements:
	 . Put your name on the top line of a program or text file
     . Correct file name
     . Correct file location

   Programming assignments:
     . No compile warnings or errors
     . Program must run
     . Program output must be neat, clean, and complete.
     . C/C++ program code must be readable with consistent style.

   Some assignments will be text files:
     . Neatly written text
     . Correct spelling and grammar

   Each assignment will also have some specific requirements in addition to
   those listed above.


Exams
Several mid-term exams will be given.
A final exam will be given.
Date and time for exams will be posted.
Exams can be
   Written exam on paper
   Programming exam on the computer (practical)
   Online multiple choice


Late Assignment Policy
Late assignments will not be accepted and can result in a score of zero.


Individual Work Policy
All work done in this course is individual work.
Sharing of source code is not allowed.
Possession of code written by other students is not allowed.
Asking or searching for code written by other students is not allowed.
Copying another student's work is plagiarism.
Copying answers or source code from the Internet is also plagiarism.


Classroom Behavior
 - CSUB is a smoke-free and tobacco-free campus!
   Please do not smoke, vape, chew, or spit in the classroom.
 - Please do not wear headphones or earbuds in the classroom.
   Refer to the accommodations section if needed.
   Your instructor reserves the right to ask you to remove your headphones
   inside the classroom.
 - Please do not use your cellphone during class time.
 - Please do not walk past the instructor while a lecture is in progress.
 - Please do not curse in the classroom.
 - Use of an electronic recording device is not allowed.


Academic Integrity Policy
All work done in this course is individual work.
Please do not share your work with other students.
You may discuss assignments with other students, but sharing of source code
is simply not allowed. Refer to the Academic Integrity policy printed in the
campus catalog and class schedule. Violations are enforced in accordance with
the Department's policy on academic honesty.


Absence from class
You are required to attend classes.
If you miss a class, it is your responsibility to inform your instructor of
the reason for the missed class (documentation may be required) and to arrange
to make up any missed assignments, exams, quizzes, and class work,
to the extent that this is possible.
Excusable absences include, but are not limited to:
Illness, injury, death of an immediate family member, etc.
See a complete list at CSUB Catalog. Search for "University Absence Policy".

If you receive a summons for Jury Duty, immediately call the number on the
summons to reschedule your service to a time when you are not in school,
such as holiday break or summer. This is very quick and easy to do.

A few common absences that are usually not excused...
   Going to a wedding.
   Going on vacation with your family.
   Your car breaks down.
   You have to take your car to the repair shop.
   A doctor's appointment.
   Sleeping through your alarm.
   You had to go to work.
   Conflict with another class.
   Don't feel good when you wake up so you go back to sleep.
   Someone in your house is sick.
   Must take your brother/sister to school.
   You are a care-taker for an older family member.
   Must take care of a sick family member.
   A family member is sick, so you might be sick.
   
Telling your instructor in advance of an absence gives you the
best chance of being excused.


No Recordings Allowed:
Under California Education Code Section 51512, it is illegal for any person,
including a student, to use an electronic device to record what is happening
in the classroom without the consent of the instructor.
The instructor for this course DOES NOT give consent for recording of any kind.
If a disability requires you to record a class session, then please
contact SSD so accommodations can be made.


Accommodations for students with disabilities
Students requiring accommodations should speak with the instructor at the start
of the course. To make arrangements for accomodations, please contact SSD at
the following link: http://www.csub.edu/ssd


Your instructor reserves the right to amend this syllabus during the semester.