CSCI 102: Fundamentals of Computation

CSCI 102: Fundamentals of Computation (Spring 2024)


Units:
 2
Instructor:
Mohammad Reza Rajati, PhD
PHE 412
[email protected] – Include CSCI 102 in subject
Office Hours:
After lectures, by appointment
Webpage:
Personal Homepage at Intelligent Decision Analysis
TA(s):
Will be introduced on Piazza
Course Producers:
Will be introduced on Piazza
Lecture
M, 3:00 –4:50 pm in THH 101
Webpages:
Piazza Class Page for discussion and supplementary material
and USC Blackboard Class Page for grades
and ZyBooks for lectures, code submission, and grades
Prerequisite:
None.
Recommended Preparation:
Proficiency in high school math
(including trigonometry, algebra, and basic probability).
Hardware/Software Required:
A laptop and Internet connection
will generally suffice to complete homework.
Tentative Grading:
Programming Assignments 30%
Labs 5%
Midterm Exam 1 27%
Midterm Exam 2 28%
Final Summative Experience 10%
Class Participation Activities* 5%2
Letter Grade Distribution:
≥ 93.00 A
|73.00 - 76.99 C
90.00 - 92.99 A-
|70.00 - 72.99 C-
87.00 - 89.99 B+
|67.00 - 69.99 D+
83.00 - 86.99 B
|63.00 - 66.99 D
80.00 - 82.99 B-
|60.00 - 62.99 D-
77.00 - 79.99 C+
|≤ 59.99 F
Disclaimer:Although the instructor does not expect this syllabus to drastically change, he reserves every right to change this syllabus any time in the semester.
Note on e-mail vs. Piazza:If you have a question about the material or logistics of the class and wish to ask it electronically, please post it on the piazza page (not e-mail). Often times, if one student has a question/comment, other also have a similar question/comment. Use private Piazza posts with the professor, TA, graders only for issues that are specific to your individually (e.g., a scheduling issue or grade issue). Try minimizing the use of email to the course staff.
Catalogue Description:Fundamental concepts of algorithmic thinking as a primer to programming. Introduction to C++.

Course Description:This course introduces students to the fundamental concepts of algorith-mic thinking as a primer to programming. It is intended for students who have little to no prior programming experience with the goal of providing a strong foundation for CS 103 Introduction to Programming. The course introduces the mathematics and basic language constructs needed for programming as well as the problem-solving techniques required to analyze a problem and pro duce an algorithm. These techniques are put into practice over the course of the semester with an introduction to programming using C++. Weekly lab and programming assignments will provide hands-on experience and active learning techniques.

Concepts include data representation, basic discrete math, control structures (conditional and iterative structures), functions, and arrays. Weekly small-group discussions will provide the op portunity for students to practice the concepts learned in class, review and ask questions. Weekly assignments will provide opportunity to practice, apply, and deepen the knowledge gained from lectures. By the end of this course, students should feel comfortable to take information-based problem descriptions and write a software program in C++ to perform the required task.

Course Objectives:
Upon successful completion of this course a student will
  • Choose appropriate data and variable types to store specific kinds and ranges of information.
  • Write, compile, and run a computer program.
  • Use basic discrete mathematics to understand, describe, and solve computation problems.
  • Understand the way computers represent and operate on data.
  • Trace provided C and C++ code line-by-line to analyze what operations are being performed and describe what the program will output.
  • Employ programming concepts: variables, control structures, loops, and arrays to develop programs that solve information problems.CSCI 102 Syllabus – January 8, 2024
  • Interpret written program requirements and develop a programmatic solution to meet those requirements.
Exam Dates:
  • Midterm Exam 1: Wednesday March 20, 3-4:50 PM in THH 101.
  • Midterm Exam 2: Wednesday April 24, 3-4:50 PM in THH 101.
  • Final Summative Experience: Monday, May 6, 6:30 PM as set by the university.
Important Note: Please make absolutely sure that you can make the above dates. No make-up exams can be offered for any reason whatsoever. Moreover, no online exams will be offered to on-campus students for any reason. If a student misses Midterm 1 due to a valid reason (e.g., documented medical or family emergency), the grade of Midterm 2 will be considered as the grade of Midterm 1. If a student misses Midterm 2 due to a valid reason, they will receive a grade of IN (Incomplete) and they must take the exam in the next semester with the students of that semester. Unexcused absence in an exam warrants a grade of zero.
Textbooks:
  • Required Textbook:
1. Frank Vahid and Roman Lysecky, Programming in C++ with ZyLabs. (Zy)
  • Recommended Textbook:
1. Cay Horstmann, C++ for Everyone, 2nd Edition, Wiley; 2012. (Hort)
Grading Policies:
  • The letter grade distribution table guarantees the minimum grade each student will receive based on their final score. When appropriate, relative performance measures will be used to assign the final grade, at the discretion of the instructor.
– Final grades are non-negotiable and are assigned at the discretion of the instructor. If you cannot accept this condition, you should not enroll in this course.
  • Your three lowest grades in the Labs and two lowest scores in programming assignments will be dropped from the final grade. This policy gives a break to students who miss the deadline of a homework unintentionally or register late in the course or miss a homework because of poor time management or illness. Missing any of the homework assignments is not a good idea if you want to learn the concepts.
  • The final grade is rounded up if it has a score that finishes in 0.50 or higher. The grade is rounded down if it has a decimal less than 0.50. For example, a final grade of 68.50 is rounded to 69, and a final grade of 68.30 is rounded to 68.
  • *Class Participation Activities have up to 5% extra credit.
  • Homework Policy4
– Class Participation Activities will be assigned at the beginning of the semester and should be completed by the due date that is specified on Zybook. Because of the nature of Participation Activities and because they are for extra credit, there will be no grace period for them and NO EXTENSION to their due dates under any circumstances.
– Homework is assigned on an approximately weekly basis. All homework deadlines are on FRIDAYS, except those Fridays that are holidays, in which case the deadline is moved to the subsequent Monday. Three one-day grace periods can be used for each homework with 10% penalty per day. Absolutely no late homework will be accepted after the grace period. A late assignment results in a zero grade.
– In case of documented illness or grave family situations, exceptions can be made to the late submission policy, mostly in the form of waiving the late penalty at the discretion of the instructor, given the fact that three lowest lab scores and two lowest homework scores will be dropped anyway for everyone.
– Poor internet connection, failing to upload properly, broken laptops, or similar issues are NOT acceptable reasons for late submissions. If you want to make sure that you do not have such problems, submit homework eight hours earlier than the deadline. Please do not ask the instructor to make individual exceptions.
– Students are encouraged to discuss homework problems with one another, but each student must do their own work and submit individual solutions written/ coded in their own hand. Copying the solutions or submitting identical homework sets is written evidence of cheating. The penalty ranges from F on the homework or exam, to an F in the course, to recommended expulsion.
– Posting the homework assignments and their solutions to online forums or sharing them with other students is strictly prohibited and infringes the copyright of the instructor.
Instances will be reported to USC officials as academic dishonesty for disciplinary action.
  • Exam Policy
Make-up Exams: No make-up exams will be given. If you cannot make the above dates due to a class schedule conflict or personal matter, you must drop the class. In the case of a required business trip or a medical or family emergency, a signed letter from your manager or counselor or physician has to be submitted. This letter must include the contact of your physician or counselor or manager.
– An excused absence supported by documents in the first midterm can be made up by using the second midterm’s grade in lieu of the first midterm. An excused absence in the second midterm results in an IN (incomplete) grade.
– Midterm and final exams will be closed book and notes.
– All exams are cumulative, with considerable emphasis on material presented since the last exam.
– The final summative experience will be assigned after Midterm 2. It is not an in-person exam, only a project that must be submitted before the deadline.
  • Attendance:
– Students are required to attend all the lectures and discussion sessions and actively participate in class discussions. Use of cellphones and laptops for anything unrelated to programming in C++ is prohibited in the classroom.CSCI 102 Syllabus – January 8, 2024
Important Notes:
  • Textbooks are secondary to the lecture notes and homework assignments.
  • Please use your USC email to register on Piazza and to contact the instructor and TAs.6
Tentative Course Outline
Monday
Jan 8th
Introduction (Zy 1.1-1.3)
Programming (general introduction)
Programming basics
Comments and whitespace
Introduction (Zy 1.4-1.7)
Errors and warnings
Computers and programs (general)
Computer tour
Language history
15th
Martin Luther King Day
22nd
Introduction (Zy 1.8-1.10)
Problem solving
Why programming?
Why whitespace matters?
Variables and Assignments (Zy 2.1-2.5) Variables and assignments (general)
Variables (int)
Identifiers
Arithmetic expressions (general)
Arithmetic expressions (int)
29th
Variables and Assignments (Zy 2.7-2.11)
Floating-point numbers (double)
Scientific notation for floating-point literals
Constant variables
Using math functions
Integer division and modulo
Variables and Assignments (Zy 2.12-2.15)
Type conversions
Binary
Characters
Strings
Feb 5th
Variables and Assignments (Zy 2.16-2.18)
Integer overflow
Numeric data types
Unsigned
Variables and Assignments (Zy 2.19-2.22)
Random numbers
Debugging
Auto
Style guidelines
12th
Conditional Statements (Zy 3.1-3.4)
If-else branches (general)
Detecting equal values with branches
Detecting ranges with ibranches (general)
Detecting ranges with branches
Conditional Statements (Zy 3.5-3.8)
Detecting ranges with Logical operators
Detecting ranges with gaps
Detecting multiple features with branches
Common branching errors
19th
President’s Day
26th
Conditional Statements (Zy 3.10-3.12)
Order of evaluation
Switch statements
Boolean data type
Conditional Statements (Zy 3.13-3.16)
String comparisons
String access operations
Character operations
More string operations
Mar 4th
Conditional Statements (Zy 3.17-3.19)
Conditional expressions
Floating-point comparison
Short circuit evaluation
Loops (Zy 4.1-4.3)
Loops (general)
While loops
More while examples
11th
Spring Recess
18th
Loops (Zy 4.4-4.6)
For loops
More for loop examples
Loops and strings
Loops (Zy 4.7-4.9)
Nested loops
Developing programs incrementally
Break and continue
25th
Midterm Review*
Loops (Zy 4.10-4.11)
Variable name scope
Enumerations
Apr 1st
Arrays & Vectors (Zy 5.1-5.5)
Array/vector concept (general)
Vectors
Array/vector iteration drill
Iterating through vectors
Multiple vectors
Arrays & Vectors (Zy 5.6-5.9)
Vector resize Vector push-back
Loop-modifying or copying/comparing vectors
Swapping two variables (General)
8th
Arrays & Vectors (5.11-5.15)
Arrays vs. vectors
Two-dimensional arrays
Char arrays / C strings
String library functions
Char library functions: ctype
User-Defined Functions (Zy 6.1-6.6)
User-defined function basics
Print functions
Reasons for defining functions
Writing mathematical functions
Functions with conditional statements/loops
15th
User Defined Functions (Zy 6.7-6.10)
Unit testing (functions)
How functions work
Functions: Common errors
Pass by reference
User-Defined Functions (Zy 6.11-6.14)
Functions with string/vector parameters
Functions with C string parameters
Scope of variable/function definitions
Default parameter values
22nd
User-Defined Functions (Zy 6.15-6.18)
Function name overloading
Parameter error checking
Preprocessor and include
Separate files
Notes:
• Items marked by * will be covered only if time permits.10
Homework Due Dates
Friday
Jan 12th
19th
26th
Homework 1,2 & Lab 1,2 Due (Moved to Monday Jan 29, but no grace period after that.)
Feb 2nd Homework 3 & Lab 3 Due
9th  Homework 4 & Lab 4 Due
16th  Homework 5 & Lab 5 Due
23rd  Homework 6 & Lab 6 Due
Mar 2nd  Homework 7 & Lab 7 Due
9th  Homework 8 & Lab 8 Due
16th  Spring Recess
23rd  Homework 9 & Lab 9 Due
30th  Homework 10 & Lab 10 Due
Apr 6th  Homework 11 & Lab 11 Due
13th  Homework 12 & Lab 12 Due
20th  Homework 13 & Lab 13 Due
27th  Homework 14 & Lab 14 DueCSCI 102 Syllabus – January 8, 2024
Statement on Academic Conduct and Support Systems
Academic Conduct:
Plagiarism – presenting someone else’s ideas as your own, either verbatim or recast in your own words – is a serious academic offense with serious consequences. Please familiarize yourself with the ,discussion of plagiarism in SCampus in Part B, Section 11, “Behavior Violating University Standards” policy.usc.edu/scampus-part-b. Other forms of academic dishonesty are equally unaccept able. See additional information in SCampus and university policies on Research and Scholarship
Misconduct.
Using Generative AI and Large Language Models:
You are supposed to learn the concepts in this and be able to program on your own. Thus, the use of Generative AI and Large Language Models such as Chat GPT for labs, homework, and exams is prohibited in this course and constitutes violation of academic conduct codes.
Students and Disability Accommodations:
USC welcomes students with disabilities into all of the University’s educational programs. The Office of Student Accessibility Services (OSAS) is responsible for the determination of appropriate accommodations for students who encounter disability-related barriers. Once a student has completed the OSAS process (registration, initial appointment, and submitted documentation) and accommodations are determined to be reasonable and appropriate, a Letter of Accommodation (LOA) will be available to generate for each course. The LOA must be given to each course instructor by the student and followed up with a discussion. This should be done as early in the semester as possible as accommodations are not retroactive. More information can be found at osas.usc.edu. You may contact OSAS at (213) 740-0776 or via email at [email protected].
Support Systems:
Counseling and Mental Health - (213) 740-9355 – 24/7 on call studenthealth.usc.edu/counseling
Free and confidential mental health treatment for students, including short-term psychotherapy, group counseling, stress fitness workshops, and crisis intervention.
National Suicide Prevention Lifeline - 1 (800) 273-8255 – 24/7 on call suicidepreventionlifeline.org
Free and confidential emotional support to people in suicidal crisis or emotional distress 24 hours a day, 7 days a week.
Relationship and Sexual Violence Prevention Services (RSVP) - (213) 740-9355(WELL), press “0” after hours – 24/7 on call studenthealth.usc.edu/sexual-assault
Free and confidential therapy services, workshops, and training for situations related to genderbased harm.12
Office for Equity, Equal Opportunity, and Title IX (EEO-TIX) - (213) 740-5086 eeotix.usc.edu
Information about how to get help or help someone affected by harassment or discrimination, rights of protected classes, reporting options, and additional resources for students, faculty, staff, visitors, and applicants.
Reporting Incidents of Bias or Harassment - (213) 740-5086 or (213) 821-8298 usc-advocate.symplicity.com/care report
Avenue to report incidents of bias, hate crimes, and microaggressions to the Office for Equity, Equal Opportunity, and Title for appropriate investigation, supportive measures, and response.
The Office of Student Accessibility Services (OSAS) - (213) 740-0776 osas.usc.edu
OSAS ensures equal access for students with disabilities through providing academic accommodations and auxiliary aids in accordance with federal laws and university policy.
USC Campus Support and Intervention - (213) 821-4710 campussupport.usc.edu
Assists students and families in resolving complex personal, financial, and academic issues adversely affecting their success as a student.
Diversity, Equity and Inclusion - (213) 740-2101 diversity.usc.edu
Information on events, programs and training, the Provost’s Diversity and Inclusion Council, Diversity Liaisons for each academic school, chronology, participation, and various resources for students.
USC Emergency - UPC: (213) 740-4321, HSC: (323) 442-1000 – 24/7 on call dps.usc.edu,emergency.usc.edu
Emergency assistance and avenue to report a crime. Latest updates regarding safety, including ways in which instruction will be continued if an officially declared emergency makes travel to
campus infeasible.
USC Department of Public Safety - UPC: (213) 740-6000, HSC: (323) 442-120 – 24/7 on call dps.usc.edu Non-emergency assistance or information.
Office of the Ombuds - (213) 821-9556 (UPC) / (323-442-0382 (HSC) ombuds.usc.edu
A safe and confidential place to share your USC-related issues with a University Ombuds who will work with you to explore options or paths to manage your concern.
Occupational Therapy Faculty Practice - (323) 442-3340 or [email protected] chan.usc.edu/otfp
Confidential Lifestyle Redesign services for USC students to support health promoting habits and routines that enhance quality of life and academic performance.

发表评论

电子邮件地址不会被公开。 必填项已用*标注