CSci 123: Spring 2025 Syllabus
Course details
Course | CSci 123, Intro. to Programming Concepts in C++, CRN 21303, 4 units |
Room | 622-A (600 building, top of the stairs) |
Prerequisite | Math 142 (or high school equiv.) with a grade of ‘C’ or better. |
Website | Course Website |
Schedule | Tue/Thurs 9:30 – 11:35 AM |
Text | Problem Solving with C++,
Walter J. Savitch (any edition will work) |
Last day to drop (without a ‘W’) | Feb 17 |
Last day to withdraw | May 4 |
Final exam | May 29, 9:30 AM |
Instructor details
Instructor | Andy Clifton |
aclifton@fullcoll.edu | |
Student (office) hours | Mon/Tues 8:15 — 9:15 AM Wed 8:15 — 9:00 AM Mon 2:00 — 2:45 PM Thurs 3:15 — 4:45 PM |
Office | Room 611-03 |
Office phone | 714-992-7418 |
Website | Instructor website |
Tutoring Lounge hours | Wed/Thurs 2:00 — 3:00 PM |
(If you contact me by email I will try to reply the same day, but it may be up to a few days, depending on circumstances.)
Student Learning Outcome: Be able to design and implement Abstract Data Types using C++ classes.
Course Description
“This course is an introduction to the basic principles of programming using C++ as the development tool. Topics include the structure and design of algorithms, input/ output, branching structures, functions, recursion, built-in data types, arrays, structures, files, pointers and elementary operations on linked structures. The object-oriented programming paradigm will be introduced. Topics include encapsulation, polymorphism, libraries, streams, inheritance and abstract data types. Students will design algorithms, write external and internal documentation and design and write source code in C++.”
Student responsibilities
Attendance will be taken during class, by having students type their names into the Zoom chat window. Make sure you type in your name before lecture ends!
If the instructor is more than fifteen minutes late for class, the entire class is excused for that day.
Any student who misses the first class meeting with out making prior arrangements may be dropped. (But note that, if you wish to drop the class, the responsibility is on you to make sure you are officially dropped. Don’t just not show up and expect me to do it for you.) An unexcused absence may be expunged by using one token (see below).
Prerequisites: Math 141 or 142 with a grade of ‘C’ or better.
I will use Canvas to post your grades. You will submit your assignments via
the department’s computer science server (fccsci.fullcoll.edu:5150
).
Grading
This course will use a system known as specifications grading. The easiest way to explain it is just to look at the criteria for earning a grade of ‘C’ in this class:
To earn a grade of ‘C’ in this class you must
Complete at least 70% of the weekly assignments
Pass the six core modules on any combination of the four midterms
Complete first stage of the project
Get a grade of at least ‘C’ on the final exam.
To break this down in detail:
We will have weekly assignments, generally available on Sunday or Monday, and due the following Monday. Assignments consist of a few worked examples (already complete programs for you to type in) and a few problems (programs that you have to write from scratch). Assignments are graded pass/fail on effort, but you can spend a token (see below) to extend the deadline of an assignment, or to resubmit an assignment.
Aligned with each midterm is a project stage, testing your ability to integrate the covered topics. The project has four stages; to earn a ‘C’, you must pass at least the first two stages.
The first stage of the project is a group project; all the remaining stages are individual.
While the projects test your ability to integrate all of the topics together in solving a problem, the midterms test each module topic in isolation. There will be a few problems dealing with each topic: pass a majority of the problems and you have completed that topic. If you complete a module on a midterm, you do not need to worry about problem(s) related to that topic on any later midterms. On the other hand, if you do not complete a module, then you have all later midterms on which to try again. There is no penalty for failing a module on a midterm, as long as you pass it on a later midterm.
Midterms are cumulative, in that each one covers all the topics discussed in class up to that point. The first two midterms deal with the six core modules, while the third and fourth add the intermediate and advanced topics.
Individual midterms problems are graded pass/fail (no partial credit), but on a significantly more lenient scale than the projects. Essentially, you must prove to me that you could, given sufficient time and access to a computer, produce a working solution. Your submissions need not be perfect, but they must at least demonstrate the required knowledge.
You can use a token to reschedule a midterm which you missed, for any reason.
The final exam is cumulative, and consists of several larger problems which use the different topics in combination. I will give you a separate grade for the final exam, and then average that with your grade for everything else, rounding up.
Students who, before the final, have completed all other requirements for and ‘A’ (have passed all midterm sections, completed and submitted their advanced projects, and have completed the required number of assignments) have the option of skipping the final exam.
To earn a grade of ‘B’ a student must do everything for a ‘C’ and also:
Complete at least 80% of the weekly assignments.
Complete the first three project stages.
Pass at least three of the last six (intermediate and advanced) midterm sections.
To earn a grade of ‘A’ you must do everything for a ‘B’ but also:
Complete at least 90% of the weekly assignments.
Complete all four project stages.
Pass all midterm topics.
A grade of ‘D’ will be assigned for students who complete some amount of work in each area, but which does not fit into one of the above categories. A grade of ‘F’ will be assigned to students who fail to complete even the most basic of tasks (i.e., complete fewer than 10% of the assignments, complete no projects, pass no topics on any midterms, who cheat, or who miss the final exam completely).
Tokens: each student begins the class with four tokens. You can trade in a token for
A two-week extension or resubmission period for a project or assignment. The extension is from the original due date.
Reschedule a midterm exam which you missed, no questions asked. (In exceptional circumstances – death of a close relative, serious personal injury or illness – I’ll let you makeup a midterm without spending a token.) Note that this is for making up a midterm exam which you missed; you cannot use a token to retake a midterm.
At the end of the semester I may apply an adjustment to your grades, in order to ensure the fairness of grading. Typically, this involves moving midterm topics around, but you shouldn’t rely on this.
Cheating
Computer science is a fundamentally collaborative subject, thus it’s not surprising that you will want to work together and help each other. While this is expected and allowed, the grade you are assigned at the end of the semester is intended to reflect your individual knowledge, not the compound knowledge that is formed when you and some friends and the internet/ChatGPT get together.
Cheating is defined as attempting to get course credit for anything other than your own original work. Examples include (but are not limited to):
Copying source code off the Internet, or from another student. (No, changing the function/variable names does not make it original.) This also includes providing other students with your own source code, for them to submit as their own.
Using responses generated by ChatGPT or other LLM systems as your answers.
Working together when taking an exam or an assignment not specifically labeled as group-work.
Paying someone to submit assignments or take tests in your name.
Altering your answers on an exam after it’s returned to you and then claiming that I “missed” your answers. On an exam, the answers you write when we take the exam are your original answers; anything added after the fact is not your original work.
The general rule is, if you are caught cheating, you will get a score of 0 for the assessment in question (assignment, test, etc.).
If you cheat on an assignment, you will get a score of 0 and you are not allowed to resubmit it.
If you cheat on a stage of the project, you get a score of 0; you can resubmit, but your new submission must be completely new, sharing no code with the fraudulent submission.
If you cheat on a midterm, you will get a grade of 0 for all sections on that midterm, but you can re-attempt them on the next midterm.
If you cheat on the final exam, your score for the final, excluding any problems on which you cheated, will be multiplied by 50%.
If I am not certain that your submissions are your own original work, I reserve the right to ask you to explain your answers to me; if you cannot show that you understand your own answers, I will assume that they are not your answers.
Topics covered
The topics we will cover, in the fundamentals and advanced areas are:
Core:
Basics of C++ (syntax, input/output)
Expressions, variables, and types (including the
string
type)Conditional and looping statements (project stage 1 covers the first three topics)
Functions
Arrays and Vectors
References, pointers, and dynamic memory management (stage 2 covers the first six)
Basic classes
Program structure (multi-file projects, namespaces, file IO, and the command-line)
Exceptions and exception handling; the standard exception hierarchy (stage 3 covers the first nine topics)
Recursion
Inheritance and polymorphism
Advanced topics (templates, operator overloading) (stage four covers everything)
A note on collaboration and cheating
Computer science is a fundamentally collaborative subject, thus it’s not surprising that you will want to work together and help each other. While this is expected and allowed, the grade you are assigned at the end of the semester is intended to reflect your individual knowledge, not the gestalt knowledge that is formed when you and some friends get together. Consequently, I ask that you respect the “principle of the erased whiteboard”. The idea is to imagine, whenever you are working together, that you are writing things together on a whiteboard. When you are done, the imaginary whiteboard must be erased, without copying anything down or taking pictures of it. The only thing you are allowed to take away is the understanding you have gained.
The college’s official policy on cheating and student behavior is as follows:
Academic Honesty Policy
Students are expected to abide by ethical standards in preparing and presenting material which demonstrates their level of knowledge and which is used to determine grades. Such standards are founded on basic concepts of integrity and honesty. These include, but are not limited to, the following areas:
- Students shall not plagiarize
- Students shall not cheat
- Students shall not furnish materials or information in order to enable another student to plagiarize or cheat.
Instructors may deal with academic dishonesty in one or more of the following ways:
- Assign an appropriate academic penalty such as an oral reprimand or point reduction.
- Assign an “F” on all or part of a particular paper, project, or exam.
- Report to the appropriate administrators, with notification of same to the student(s), for disciplinary action by the College. Such a report will be accompanied by supporting evidence and documentation.
Repeated violations may result in students receiving an “F” in the course, suspension or dismissal from the College.
Standards of Student Conduct and Discipline Policy
The standards of student conduct and disciplinary action for violation of Board Policy 5500 were approved by the NOCCCD Board on January 28, 2003, and were drawn in compliance with Sections 66300, 76030, 76033, 76034, 76036 of the State Education Code. Students are expected to respect and obey civil and criminal law and shall be subject to the legal penalties for violation of the city, county, state, and national law(s). Student conduct must conform to Board Policy and college regulations and procedures. As cited in BP5500, “A student who violates the standards of student conduct shall be subject to disciplinary action including, but not limited to, the removal, suspension or expulsion of the student.”
Students have an obligation to familiarize themselves with the College’s policies, rules and regulations and to conduct themselves in a reasonable, respectful manner, which is conducive toward attaining their educational goal. Upon registration, each student should obtain a copy of the College Policies and Regulations: Standards of Student Conduct and Discipline Policy. Contained therein are the policies approved by the Board of Trustees governing student behavior and the applicable penalties for violations of these policies. Copies are available in the Student Affairs Office, the Office of Equity and Diversity, all division offices, and the Student Services office.
Student Complaints
Students should attempt to resolve issues directly with the faculty or staff member involved in the complaint. For serious or ongoing complaints, students may file a formal Student Complaint. The process for doing so is described in the Catalog.
Calendar
Date | Subject | Assignment |
---|---|---|
Week 1 | ||
Tue, Feb. 04 | Course intro; Basic C++ syntax | |
Thu, Feb. 06 |
Basic statement flow; basic |
|
Week 2 | ||
Tue, Feb. 11 | Expressions and Variables | Assignment 1 Due Feb 18 |
Thu, Feb. 13 | Basic IO; more types | |
Week 3 | ||
Tue, Feb. 18 | Conditional statements | Assignment 2 Due Feb 25 |
Thu, Feb. 20 | Loop statements | |
Week 4 | ||
Tue, Feb. 25 | Loop statements; continued | Assignment 3 Due Mar 4 |
Thu, Feb. 27 | Loop statements; continued | |
Week 5 | ||
Tue, Mar. 04 | Midterm review |
Assignment 4 Midterm 1 practice exam (Solutions) |
Thu, Mar. 06 | Midterm 1 | |
Week 6 | ||
Tue, Mar. 11 | Midterm recap (may be moved) | Assignment 5 |
Thu, Mar. 13 | Functions, cont. | |
Week 7 | ||
Tue, Mar. 18 | Arrays and Vectors | Assignment 6 |
Thu, Mar. 20 | References and pointers | |
Week 8 | ||
Tue, Mar. 25 | References and pointers | |
Thu, Mar. 27 | Dynamic memory management | |
Week 9 | ||
April 1 – 4 | Spring Break Recess | |
April 1 – 4 | Spring Break Recess | |
Week 10 | ||
Tue, Apr. 08 | Dynamic memory management | |
Thu, Apr. 10 | Midterm review | Assignment 7 |
Week 11 | ||
Tue, Apr. 15 | Midterm 2 |
Midterm 2 practice exam (Solutions) |
Thu, Apr. 17 |
Midterm 2 Recap Classes, methods, members, and access levels |
|
Week 12 | ||
Tue, Apr. 22 | Classes, continued | |
Thu, Apr. 24 | Classes, continued | |
Week 13 | ||
Tue, Apr. 29 | Multi-file projects, include files | |
Thu, May. 01 | Exceptions | |
Week 14 | ||
Tue, May. 06 | Midterm review | |
Thu, May. 08 | Midterm 3 | |
Week 15 | ||
Tue, May. 13 | Advanced Topics | |
Thu, May. 15 | Advanced Topics | |
Week 16 | ||
Tue, May. 20 | Advanced Topics | |
Thu, May. 22 | Advanced Topics | |
Week 17 | ||
Tue, May. 27 | Midterm 4 | |
Thu, May. 29 | Final Exam |
Other college policies
Various other college policies, which I am required to present to you, are as follows:
I am committed to creating a course that is inclusive in its design. If you encounter barriers, please let me know as soon as possible so that we can determine if there is a design adjustment that can be made or if a disability accommodation might be needed to overcome the limitations of the design. I am always happy to consider creative solutions as long as they do not compromise the intent of the assessment or learning activity. You are welcome to contact the Disability Support Services (DSS) Office to begin this conversation or to establish disability accommodations for this or other courses. DSS can be contacted at 714.992.7099 or dsp@fullcoll.edu. I welcome feedback that will assist me in improving the usability and experience for all students.
Americans with Disabilities Act (ADA) Statement
Fullerton College is committed to providing educational accommodations for students with disabilities upon the timely request by the student to the instructor. Verification of the disability must also be provided. The Disability Support Services office functions as a resource for students and faculty in the determination and provision of educational accommodations.
Fullerton College Catalog and Class Schedule
The Fullerton College Catalog and the Class Schedule contain a number of policies relating to students that are important to you. Please be sure that you have read these publications thoroughly. You may purchase copies of these publications at the campus bookstore, or you may read them online at the Fullerton College website, www.fullcoll.edu.
Grade Appeals
While the instructor is the final authority in determining grades that are assigned to students and that appear in their permanent record, students have a right to inquire how their grade was determined, and a Grade Appeal Procedure is described in the Catalog.
Wait Time for Late Instructors
If, due to unforeseen emergencies, the instructor does not arrive at the scheduled start time for class, students are to wait for fifteen minutes (unless otherwise notified by the division). If they do not receive notification to wait for their instructor to arrive, after 15 minutes the students may leave with no penalty for absence or assigned work due for that class meeting.
COVID-19 POLICIES AND PROCEDURES
If a student contacts their instructor and reports that they are: confirmed positive, awaiting results, or may have been exposed to COVID-19, the instructor is required to report this to the Dean and Director of Health Services for possible follow up and contact tracing.