Skip to content

Latest commit

 

History

History
282 lines (183 loc) · 14.1 KB

File metadata and controls

282 lines (183 loc) · 14.1 KB

CS10300 - 🤖🖥️🪲 Introduction to Computing for Majors

Instructor: Professor Madeline Blount
Term: Spring 2026
Time: Mondays/Wednesdays 11:00-11:50am (lecture)
Space: Marshak 4 (lecture)
Recitation: lab on Fridays, NAC 7/107 (time based on section, CC1 or CC2), w/Professor Ervin Dsouza
Office Hours: by appointment, schedule here
E-mail: Madeline Blount - mblount@ccny.cuny.edu, Ervin Dsouza - edsouza@ccny.cuny.edu
City College, City University of New York

course description

This is an introduction to computing, intended for those majoring in computer science and engineering. The course will cover the basics of how a computer works; memory, variables, and data types; branching, conditionals, and logic; loops and functions; basic cryptography; transitioning from procedural and functional programming to object-oriented programming; an introduction to algorithms and recursion; and an introduction to sociotechnical systems and building your own projects

what will we learn in this class?

  • We will learn the basics of computer programming with C++
  • We will cultivate computational thinking in how we approach solving problems
  • We will learn the importance (and joy!) of the iterative process of coding and debugging
  • We will think about the real-world context and ethics of programming today as we grow as coders
  • We will develop an awareness of the interdisciplinary applications and intellectual foundations of computer science

course format

This course will generally meet in-person, with a lecture 2 mornings per week (M/W). There is also a (required) in-person recitation on Fridays with Prof. Ervin Dsouza.

🎥 This semester, there may be times when I will film a lecture instead of giving one in person, and you will be responsible for learning via the video material and the zyBooks homework. These times will be clearly marked on the syllabus, and announced to the class if there is a schedule change. When I post a video, you will be free to watch it in your own time asynchronously.

🖥️ In-person lab sessions will be every Friday starting Jan. 30th. In case of any further changes in the schedule, I will announce this change ahead of time via e-mail and update the syllabus here.

We will use an online textbook (zyBooks) to guide us through learning C++. In the zyBooks platform, you will have readings with interactive homework exercises, as well as labs (like programming problem sets) from the same textbook.

Each week, zyBooks homework will be due:

  • 📚readings w/questions on Wednesday evenings, by 11:59pm
  • 🥽 lab assignments on Fridays, by 11:59pm

NOTE: Learning C++ is like learning any new language - it's important to keep practicing, immersing yourself, and moving forward, a little bit at a time. I highly suggest you start the readings early in the week so that our time in-person will be most useful to you. You won't need to submit the reading homework for grading until Wednesday night, but it will be helpful for you to avoid doing it all at once ... you really can't cram the process of becoming a programmer!

There will be a mid-term project in this course, and a programming project towards the end of the semester. There is no final exam.

important info:

key dates
materials & references
tools
expectations & requirements
evaluation
academic honesty & integrity
contact & questions

SCHEDULE, ASSIGNMENTS, READINGS:

💥subject to change

Week 0: Jan. 26 & Jan. 28
Introductions, Hello World!

Assignment: set-up assignments + survey here
SET-UP + SURVEY DUE: Friday Jan. 30th, 11:59pm
Also begin zyBooks, Week 1 Readings


Week 1: Feb. 2 & Feb. 4
Beginnings of Computing and C++

Assignments:
zyBooks Week 1 Readings: DUE Feb. 4, 11:59pm
zyBooks Week 1 Lab: DUE Feb. 6, 11:59pm


Week 2: Feb. 9 & Feb. 11
Variables and Data Types

Assignments:
zyBooks Week 2 Readings: DUE Feb. 11, 11:59pm
zyBooks Week 2 Lab: DUE Feb. 13, 11:59pm


Week 3: Feb. 18
Branches, Logic, and Conditionals

Assignments:
zyBooks Week 3 Readings: DUE THURSDAY Feb. 19, 11:59pm
zyBooks Week 3 Lab: DUE SUNDAY Feb. 22, 11:59pm


Week 4: Feb. 23 & Feb. 25
Loops!

Assignments:
zyBooks Week 4 Readings: DUE Feb. 25, 11:59pm
zyBooks Week 4 Lab: DUE Feb. 27, 11:59pm


Week 5: Mar. 2 & Mar. 4
Loops! cont.

Assignments:
zyBooks Week 5 Readings: DUE Mar. 4, 11:59pm
zyBooks Week 5 Lab: DUE Mar. 6, 11:59pm


Week 6: Mar. 9 & Mar. 11
Arrays + Vectors

Assignments:
zyBooks Week 6 Readings: DUE Mar. 11 11:59pm
zyBooks Week 6 Lab: DUE Mar. 13, 11:59pm


Week 7: Mar. 16 & Mar. 18
Arrays + Vectors, cont.

Assignments:
zyBooks Week 7 Readings: DUE Mar. 18, 11:59pm
zyBooks Week 7 Lab: DUE SUNDAY Mar. 22, 11:59pm


Week 8: Mar. 23 & Mar. 25
MID-TERM & Review

💥🤖 in-class and at-home project work required!


Week 9: Mar. 30
Functions + Abstraction

Assignments:
zyBooks Week 9 Mini Readings + Lab: DUE Mar. 31, 11:59pm


NO CLASS Spring Recess
Apr. 1 - Apr. 9


Week 10: Apr. 13 & Apr. 15
Objects + Classes

Assignments:
zyBooks Week 10 Readings: DUE Apr. 15, 11:59pm
zyBooks Week 10 Lab: DUE Apr. 17, 11:59pm


Week 11: Apr. 20 & Apr. 22
Algorithms

Assignments:
zyBooks Week 11 Readings: DUE Apr. 22, 11:59pm
zyBooks Week 11 Lab: DUE Apr. 24, 11:59pm


Week 12: Apr. 27 & Apr. 29
Pointers

Assignments:
zyBooks Week 12 Readings & Lab: DUE May 1, 11:59pm


Week 13: May 4 & May. 6
Algorithms cont.

Assignments:
work on projects!


Week 14: May 11 & May 13
Special Topics TBD

Assignment:
work on projects!


Week 15: May 18 💥 NO CLASS!

Assignment:
work on projects! (due Mon. 18th @ 11:59pm)


key dates

  • mid-term week with in-class project: Mar. 23-27th
  • final coding pair project: due May 18th, 11:59pm

materials and references

We will use zyBooks (see above) as our online text. I recognize that there are many different ways of learning and that folks may want to practice with different tools, so I will also post other resources for every chapter: online tutorials, videos, and texts. There is a lot of good "learning to program" material available out there ... These additional resources will be optional but recommended - if you experiment, you may find that a different method makes a concept click for you.

tools we will use a lot

expectations and requirements

how can I do well in this class?

  • Stay curious about programming and problem solving - there is something that brought you to coding in the first place! Try and focus on finding the puzzle-solving muscles in your brain and learning a new way to express them, rather than worry about quickly coming to the correct answers. We're going to learn to code, but we will also learn to think like a programmer.

  • Take your time, and make sure you give yourself time to do your reading/assignments ... we are going to cover a lot in this course, but the goal is not to rush through it. If the solution to a problem does not instantly reveal itself to you, this is OK, this is great, this is part of the process! Programming involves a lot of sitting with challenges, breaking down complexities, trying and failing and trying again, and devising sideways solutions that weren't obvious right away. Learning this rhythm is a big part of learning how to code.

  • Also, it is crucial that we build a space where everyone can stay curious and take their time. This class will be an inclusive and harassment-free space for everyone, with no tolerations of discimination based on gender, race, sexual orientation, religion, ability, or appearance. Please let me know privately if you require an academic accommodation.

evaluation:

Grading breakdown:

  • Participation/Attendance: 15% (including Friday labs & in-class exercises/quiz)
  • zyBooks Reading: 15%
  • zyBooks Labs: 20%
  • Mid-Term Project: 20%
  • Final Project: 30%

on late work:

The Wednesday/Friday due dates schedule is set up for us to learn together and keep pace as a class, and I highly encourage that you try and stick to it; students in the past have said that this kind of structure has helped them become better programmers and stay on top of the work. That said, I understand that things happen. For readings and labs, you have a 2-day "grace period", which you may use 3 times during the semester. If you turn your work in within 48 hours of the deadline for one of these "grace periods," you will not lose any points due to lateness.

If you use up your 3 grace periods, any late assignments drop 10% per day, starting after the due time. (If you submit a zyBook reading 1 hour after the due date, for example, it already drops 10%. If you wait another 24 hours, it drops 20%.)

If you have a reason for needing an extension (where you will receive full points), please reach out to me before the due date for an assignment.

🟠 ➡️ To receive credit for any late work (including using a grace period), you will need to fill out this form once you have completed it.

💥 You may only use the grace period or late work policy for reading homework and labs. You may not use this for the mid-term or final project.

academic honesty and integrity:

Plagiarism is "the act of presenting ideas, research or writing that is not your own as your own" (CUNY). This is as true for writing code as it is for writing others' words and pretending that they are yours.

It is important that everything you turn in for this class is your own work. I understand that collaborating with your classmates can be really helpful when learning programming - you are allowed and encouraged to do this! However, the code you submit must reflect work you have done on your own. To outline some of the boundaries here, it is acceptable to:

  • Discuss the course’s material with others in order to understand it better.
  • Help a classmate identify a bug in their code without providing them full written solution.
  • Incorporate a few lines of code that you find online or elsewhere into your own code, provided that those lines are not solutions to assigned work and that you cite the lines’ origins
  • Turning to the web or elsewhere for instruction beyond the course, for references, and for solutions to technical difficulties, but not for outright solutions to assigned work.
  • Whiteboarding solutions with others, using diagrams or pseudocode but not actual code.
  • Working with a tutor to help you with the course, provided the tutor does not do your work for you.
  • Use AI-based software as a learning guide, asking questions about material but not to generate full solutions. Any use of AI in this course MUST be cited, in all situations, including zyBooks homework. See more info here.

It is not acceptable to:

  • Give or show to a classmate a full solution to an assessment
  • Search for or solicit outright solutions to assessments online or elsewhere.
  • Split an individual assessment’s workload with another student and combine your work, presenting it as the work on 1 person.
  • Submit (after possibly modifying) the work of another individual
  • 💥 Use AI-based software without citation in any capacity. See more info here.

These terms modified and inspired by Harvard's CS50's academic honesty policy, here. (See what I did here? I cited my sources!)

I have ways of checking on the originality of your code and assignments. Consequences for violating this academic honesty policy, including mis-use of AI tools, will be severe, including but not limited to failing the course.

You can find CCNY’s Academic Integrity Policy in full here. Do not plagiarize.

contact and questions

👾 Our class will have a Discord server for posting questions and communicating with each other. If you have a question about the programming material, I suggest you start by:

  • taking a pause - have you put in some time trying to solve this problem on your own?
  • taking a walk - maybe you can approach the problem in a new way?
  • checking the Discord, did someone else already post a similar question?
  • if your question is new, make a post! try to include as much of your thought process as you can

If you are answering a question on Discord - try and be friendly, and respond in the way you would like a response yourself. Remember that you will be asking a question yourself @ some point in your programming journey! We all have something to learn and something to offer.

Have a question about zyBooks, something not working the way it's supposed to? The zyBooks FAQ platform here is pretty great. If you can't find the answer to your question there, there is a team of people ready to answer your zyBooks questions (faster and better than I would!) at support@zybooks.com.

If you would like to ask a question privately, please e-mail me - I am available and I try to respond within 24 hours. You are also invited to schedule some virtual office hour time to talk, here. If you need a time that's not on this schedule, please e-mail me.