Spring 2026 John Jay College

CSCI 271: Introduction to Computing & Programming (C++)

This course introduces computer problem-solving and programming in C++. Algorithmic problem-solving and basic programming techniques are emphasized, using methods such as top-down design and stepwise iterative refinement. Topics include basic data types, operators, control structures, functions, arrays, and pointers.

Instructor: Avijit Roy
Schedule: Mon & Wed, 08:00 AM – 09:15 AM
Office: NB 6.63.29

Learning Outcomes

  • Apply top-down design and stepwise refinement to break problems into small, manageable steps.
  • Use variables, data types, operators, and expressions correctly, including simple input validation.
  • Write clear selection and repetition logic (if/else and loops) to control program flow.
  • Design and use functions (parameters, return values, and scope) to organize code and reduce duplication.
  • Use arrays for basic indexing and traversal, and identify common off-by-one errors.
  • Demonstrate an introductory understanding of pointers, including memory addresses and basic dereferencing concepts.
  • Use strings to store and manipulate text, including basic parsing and formatting tasks.
  • Read from and write to text files using simple file input/output patterns.
  • Debug programs using compiler errors, warnings, runtime tracing, and explain program behavior.

Weekly Plan (Snapshot)

This is the detailed, week-by-week plan from the official syllabus. Minor adjustments may occur; any changes will be announced in class and on Brightspace.

Week 1 | Lesson 1

Chapters 1, 2: How C++ programs run, compiler vs execution, basic input/output.

Introduction to Programming

Assignment 1 - GitHub
Week 2 | Lesson 2

Chapter 2: Variables, data types, arithmetic operators, input/output.

Variables & Data Types

Week 3 | Lesson 3

Chapters 2, 4: Decision making (if, if–else), relational & logical operators, pseudocode.

Decision Making & Logic

Assignment 2
Week 4 | Checkpoint

Quiz 1 covering logic, tracing, and decision structures.

Control Flow Checkpoint

Quiz 1
Week 5 | Lesson 4

Chapter 4: Iteration (while, for), counters, sentinel values, and loop patterns.

Iteration & Loops

Assignment 3
Week 6 | Lesson 5

Chapter 7: One-dimensional arrays, indexing, array processing.

Arrays (Part 1)

Week 7 | Midterm Review

Review of Lessons 1 to 5. Integrated problem solving practice.

Midterm Review

Week 8 | Midterm Exam (Mar 16)

In-class written exam followed by post-exam discussion.

Midterm Exam

Midterm Exam
Week 9 | Lesson 6

Chapter 7: Array algorithms and introduction to vectors.

Algorithms & Vectors

Assignment 4
Week 10 | Final Project Assigned

Chapter 7: Searching, sorting, problem framing. Final Project assigned (incremental).

Algorithms with Data

Week 11 | Spring Recess

No classes.

Spring Recess

Week 12 | Lesson 7

Chapter 3: String manipulation and text parsing. Quiz 2.

Strings & Text Processing

Quiz 2 (Apr 15)
Week 13 | Lesson 8

Chapter 6: Reading data and writing results to external files.

File Input/Output

Week 14 | Lesson 9

Chapter 8: Introduction to pointers, memory concepts, debugging.

Pointers (Intro)

Assignment 5
Week 15 | Project Progress

Project development, cumulative practice, and code refinement (Chapters 1-8).

Project Progress

Week 16

Final review and exam preparation (Chapters 1-8).

Final Review & Practice Coding

Week 17 | Finals Week

Project presentations (May 18) and Final Exam (May 20).

Final Exams

Final Exams

Chapter numbers follow the main course text. If you are using a different printing/edition, use the topic column as the source of truth and ask in class if you are unsure.

Assessments

Participation & Quizzes

Short checks to reinforce weekly topics; start on time.

  • Weekly knowledge checks as class participation
  • In-class discussion & code walk-throughs
  • Two announced quizzes + brief pop quizzes

Assignments

Frequent, focused practice. Expect clean headers, comments, and testable examples.

  • 4–5 individual assignments covering key topics.
  • 1 group assignment

Midterm

Midpoint evaluation of your programming foundations.

  • In-class written exam focused on Lessons 1–5
  • Concepts and code analysis

Final Exam & Project

Culmination of the course.

  • Written exam on concepts & code analysis.
  • Present a complete project.
  • Clear division of work; everyone explains their code.

Grading Breakdown

Discussion & Chekcs 10%
Class Participation 5%
Quizzes 15%
Assignments 20%
Mid Term Exam 25%
Final Exam + Project 25%

Letter grades follow standard CUNY grading scale.

Extra Credit Policy

You will have multiple opportunities to earn extra credit:

  • 100% Attendance: Additional 5% extra credit toward final grade.
  • Deadline Policy: Must be submitted by posted due dates. No extensions.
  • No Retroactive Credit: Missed extra credit cannot be submitted later.

Responsibilities & Policies

Student Responsibilities

  • Arrive on time; participate in discussions and code walk-throughs.
  • Bring code that compiles and runs; be ready to explain your choices.
  • Back up your work and verify submissions (build, run, and test locally).

Academic Integrity

All submitted work must be your own. Sharing solutions, copying code without attribution, or submitting generated work as your own violates course policy.

  • Credit any external help in your README.
  • Be prepared to orally explain any code you submit.

Review the college's policies on Plagiarism and Cheating.

Accessibility Services

If you have a documented accommodation, please contact the instructor early so we can implement approved adjustments promptly.

Students seeking accommodations should coordinate through the Office of Accessibility Services (OAS).

Use of AI Tools

  • Use AI to learn and explore ideas - not to replace your work.
  • Disclose any AI assistance in your submitted codes.
  • You must fully understand and be able to defend any code you submit.
  • Uncredited or misrepresented AI-generated work may receive a zero.

Tools

Primary IDE

If you already have a different C++ toolchain configured, you may continue using it - but demos/screenshots in class assume Dev-C++ on Windows.


Quick References

GitHub Usage

GitHub will be our shared workspace and code archive. It helps you track every change, back up projects safely, and practice professional version control workflows. You’ll also use it to build your coding portfolio - and later, submit assignments when instructed. Practice and share only your learning repos (like CSCI-271-<semester>), not graded assignments, to avoid revealing answers to others.

Get Started


Course Repo Pattern

  • Create a personal practice repo named CSCI-271-<semester> (e.g., CSCI-271-Spring-2026).
  • Use this repo to share practice code, notes, and experiments.
  • Do not post full assignment solutions before grading is completed; you may be asked to submit privately.

Assignments & Submission

  • When instructed, submit via GitHub (private repo) by sharing access to the instructor; otherwise submit on Brightspace.
  • Keep .h and .cpp files separate; include clear comments.
  • Commit regularly with meaningful messages (e.g., “add input validation for withdrawals”).
  • Do not commit binaries or IDE build folders.

README Expectations

  • Short problem summary and how to build/run.
  • Reflection: what you learned, tricky parts, known issues.
  • Sample I/O or screenshots when helpful.

Books & References

Required / Main Text

  • C++ How to Program (10th Edition), Deitel & Deitel - ISBN-13: 978-0134448237

Optional References

  • Programming: Principles and Practice Using C++ (2nd Ed.), Bjarne Stroustrup - ISBN-13: 978-0321992789
  • The C++ Programming Language (4th Ed.), Bjarne Stroustrup - ISBN-13: 978-0321563842
  • Effective Modern C++, Scott Meyers - ISBN-13: 978-1491903995

Any recent printing is acceptable. Library/ebook access is fine for reading and study.

Important Websites

Practice C++ Resources

In addition to class notes, assignments, and demos, you are strongly encouraged to practice C++ regularly outside class. The websites below can help you build confidence with syntax, logic, debugging, and problem solving.

You do not need to complete everything on these sites. Use them to get extra practice on topics such as loops, functions, arrays, strings, classes, and general C++ problem solving.


Practice Problems & Exercises


Reference & Reading


Mini Project Ideas


How to Use These Resources Well

  • Start with beginner exercises, then move to challenge-based platforms.
  • Focus on topics we are currently covering in class.
  • Do not just read solutions - write, test, and debug your own code.
  • Try to practice at least 2 to 3 problems each week.
  • Ask questions in class if you get stuck on a pattern or concept.

These are optional practice resources, but students who practice consistently usually become much more confident with coding, especially when we move deeper into classes, operator overloading, inheritance, and polymorphism.

Quick FAQs

How do I submit assignments?

Follow instructions on Brightspace for each assignment. When asked to use GitHub, keep the repo private and share access for grading.

What happens if my code compiles but fails some tests?

We focus on correctness, clarity, and adherence to requirements. Partial credit may be limited if logic is incorrect or unexplained.

Can I use AI tools?

Use AI to learn concepts, not to replace your work. Cite any use in your README. You must be able to explain your code.

Course Updates

  • March 2026 - Added C++ practice resources and mini project ideas section.
  • January 2026 - Course site published for Spring 2026.

Contact & Office Hours

Email: ARoy [AT] jjay [DOT] cuny [DOT] edu

Office: NB 6.63.29 - Office hours by appointment.

Scheduling is flexible - email to coordinate a time.

Last updated: