Avijit Roy
Home Teaching Projects Experience

CSCI 271 • Introduction to Computing & Programming (C++) | Spring 2026

Course portal for students: weekly plan, assessments, expectations, tools, and quick links.

Note: This page contains the full course syllabus for CSCI 271.

Weekly Plan Assessments Policies Tools GitHub Websites Books FAQs Contact

Overview

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 • John Jay College of Criminal Justice (CUNY) | Office: L 6.63.29
Class Schedule: Mondays & Wednesdays, 08:00 AM – 09:15 AM

John Jay College of Criminal Justice Logo

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 when required by assignments.
  • Debug programs using compiler errors and warnings, runtime tracing (print debugging), 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 Chapters Topics Assignments
Week 1 | Lesson 1 1, 2 Introduction to programming, how C++ programs run, compiler vs execution, basic input/output Assignment 1 - GitHub
Week 2 | Lesson 2 2 Variables, data types, arithmetic operators, input/output  
Week 3 | Lesson 3 2, 4 Decision making (if, if–else), relational & logical operators, pseudocode, flowcharts Assignment 2
Week 4 | Quiz 1   Control flow checkpoint → Quiz 1 (logic, tracing, decision structures) Quiz 1
Week 5 | Lesson 4 4 Iteration: while, for, counters, sentinel values, loop patterns Assignment 3
Week 6 | Lesson 5 7 Arrays - One-dimensional arrays, indexing, array processing, common patterns  
Week 7 | Mid Review Lesson 1 to 5 Midterm review & practice (integrated problem solving)  
Week 8 | Mid Exam   Midterm Exam (Mar 16) and post-exam discussion Midterm Exam
Week 9 | Lesson 6 7 Arrays, array algorithms, introduction to vectors Assignment 4
Week 10 | Project Assignment 7 Algorithms with data → Final Project (searching, sorting, problem framing) Final Project Assigned(incremental, multi-week)
Week 11 | No Classes   Spring Recess No Class
Week 12 | Lesson 7 3 Strings and text processing → Quiz 2 (Apr 15) Quiz 2
Week 13 | Lesson 8 6 File input/output: reading data, writing results  
Week 14 | Lesson 9 8 Pointers (intro only), memory concepts, debugging & integration Assignment 5
Week 15 | Project Progress 1 to 8 Project development, cumulative practice, refinement Project Progress
Week 16 | Final Review, Practice Coding 1 to 8 Final review & exam preparation Final Review
Week 17 | Finals   Project presentations (May 18) and Final Exam (May 20) Final Exam

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. No make-ups for late arrival unless documented emergencies.

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

Assignments

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

  • 4–5 individual assignments (see syllabus) covering key topics.
  • 1 group assignment

Midterm

  • In-class written exam focused on Lessons 1–5 (concepts and code analysis).

Final — Exam + Final Project

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

Grading Breakdown

Letter grades follow standard CUNY grading scale.

Assessment Weight
Discussion & Knowledge Chekcs 10%
Class Participation 5%
Quizzes (2 Announced, 2 Pop Quizzes) 15%
Assignments 20%
Mid Term (Written Exam[80] + Coding[20]) 25%
Final | Written Exam[50] + Coding [30] +
Project [10] + Presentation [5]
25%

Grading of assignments and exams can be reviewed in person to confirm that the submitted work is your own and to clarify any questions about how your solutions work.

Extra Credits

Students will have multiple opportunities throughout the semester to earn extra credit. These may include optional assignments, short quizzes, or practice activities. Please note the following:

  • 100% Attendance Bonus: Students who maintain perfect attendance for the entire semester will receive an additional 5% extra credit toward their final grade.
  • Deadline Policy: All extra credit work must be submitted by the posted due dates.
  • No Extensions: Extra credit deadlines cannot be extended under any circumstances.
  • No Retroactive Credit: Missed or expired extra credit opportunities cannot be completed or 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 and college policy and may result in a zero and further action.

  • Credit any external help (peers, forums, snippets) in your README.
  • Be prepared to orally explain any code you submit.

Please 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 John Jay Office of Accessibility Services (OAS).


Use of AI Tools (ChatGPT, Copilot, etc.)

  • Use AI to learn and explore ideas — not to replace your work.
  • Disclose any AI assistance in your README or submitted codes (what you asked, what you used, what you learned).
  • 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

  • Dev-C++ (Windows) — use the latest stable build.
  • Visual Studio Code — optional editor (set up a C++ toolchain).

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

  • cppreference.com (language/library lookups)
  • ISO C++ FAQ

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

  • Create an account on github.com.
  • Follow: Create your first repository (GitHub Docs)
  • Install Git (if needed) and configure your name/email.

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

  • Brightspace — course announcements, submissions, grades.
  • GitHub — repositories for practice and (when instructed) submissions.
  • Dev-C++ — IDE (Windows).
  • VS Code — optional editor.
  • cppreference.com — C++ language & library reference.

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.

Contact & Office Hours

You can reach me at 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: January 2026

© Avijit Roy