Skip to content

mab253/cpp_spring23

Repository files navigation

CS10300 - 🤖🖥️🪲 Introduction to Computing for Majors

Instructor: Professor Madeline Blount
Term: Spring 2023
Time: Mondays/Wednesdays 11:00-11:50am (lecture)
Space: NAC 5/111 (lecture)
Recitation: lab on Fridays (time based on section, CC1 or CC2), w/instructor Chunyu Yuan, NAC 7/107
Office Hours: virtual, Tuesdays by appointment, schedule here
E-mail: [email protected] 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; variables and data types; branching, conditionals, and logic; loops and functions; and an introduction to algorithms and recursion.

what will we learn in this class?

  • We will learn the basics of modern object-oriented 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 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) recitation on Friday mornings with instructor Chunyu Yuan.

🎥 There will be times throughout the semester, approximately 1x per month, when I will film a lecture instead of giving one in person. When I post a video instead, you will be free to watch it in your own time. These asynchronous lectures will be clearly marked on the schedule. In the case of any change in the schedule, I will announce this change ahead of time via Blackboard/e-mail.

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 can't cram the process of becoming a programmer!

There will be a take-home mid-term exam in this course, and a final programming project. 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. 25
Introductions, Hello World!

NO IN-PERSON LECTURE on Jan. 25

Assignment: watch 1st lecture video, set-up assignments + survey here
SURVEY DUE: Jan 29, 11:59pm


Week 1: Jan. 30 & Feb. 1
Beginnings of Computing and C++

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


Week 2: Feb. 6 & Feb. 8
Variables and Data Types

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


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

NO CLASS on Feb. 13, college closed
NO IN-PERSON LECTURE on Feb. 15
VIDEO

🎥 I will post 1 asynchronous lecture video; watch this video on your own time this week
To reflect this asynchronous schedule, all zyBooks work is due by Friday this week

Assignments:
zyBooks Week 3, Readings: DUE Feb. 17, 11:59pm
zyBooks Week 3 Lab: DUE Feb. 17, 11:59pm


Week 4: Feb. 21 & Feb. 22
Loops!

NO CLASS on Feb. 20, President's Day
Monday classes moved to Tuesday, Feb. 21

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


Week 5: Feb. 27 & Mar. 1
Loops! cont.

Assignments:
zyBooks Week 5, Readings: DUE Mar. 1, 11:59pm
zyBooks Week 5 Lab: DUE Mar. 3, 11:59pm


Week 6: Mar. 6 & Mar. 8
Arrays + Vectors

NO IN-PERSON LECTURE on Mar. 8
VIDEO

🎥 I will post 1 asynchronous lecture video; watch this video on your own time this week
To reflect this asynchronous schedule, all zyBooks work is due by Friday this week

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


Week 7: Mar. 13 & Mar. 15
Arrays + Vectors, cont.

Assignments:
zyBooks Week 7, Readings: DUE Mar. 15, 11:59pm
zyBooks Week 7 Lab: DUE Mar. 17, 11:59pm


Week 8: Mar. 20 & Mar. 22
MID-TERM & Review

Assignment:
Mid-Term Groundrules
Take-Home Mid-Term Exam: DUE Mar. 24, 9AM (before lab)


Week 9: Mar. 27 & Mar. 29
Functions

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


Week 10: Apr. 3
Objects + Classes

Assignments:
zyBooks Week 10, Readings: DUE Apr. 4, 11:59pm


NO CLASS Apr. 5, 10, 12: SPRING RECESS


Week 11: Apr. 17 & Apr. 19
Objects + Classes, cont.

Assignments:
zyBooks Week 11, Readings: DUE Apr. 19, 11:59pm
zyBooks Week 11 Lab: DUE Apr. 21, 11:59pm


Week 12: Apr. 24 & Apr. 26
Pointers

NO IN-PERSON LECTURE on Apr. 26
VIDEO

🎥 I will post 1 asynchronous lecture video; watch this video on your own time this week
To reflect this asynchronous schedule, all zyBooks work is due by Friday this week

Assignments:
zyBooks Week 12, Readings: DUE Apr. 28, 11:59pm
zyBooks Week 12 Lab: DUE Apr. 28, 11:59pm


Week 13: May 1 & May 3
Algorithms

Assignments:
zyBooks Week 13, Readings: DUE May 5, 11:59pm
zyBooks Week 13 Lab: DUE May 8, 11:59pm


Week 14: May 8 & May 10
Final Project & Special Topics

Assignment: work on final project
FINAL DUE: May 19th, 11:59pm


Week 15: Monday, May 15 (last class day)
Wrap-Up, Final Project & Special Topics

Assignment: work on final project
FINAL DUE: May 19th, 11:59pm


key dates

  • mid-term take-home exam: due March 24, 9AM (before lab)
  • final project: due May 19th, 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 (fun!) 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, disability, or appearance. Please let me know privately if you require an academic accommodation.

evaluation:

Grading breakdown:

  • Participation/Attendance: 15%
  • zyBooks Reading: 20%
  • zyBooks Labs: 25%
  • Mid-Term Exam: 20%
  • Final Project: 20%

on late work:

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%.)

✉️ To receive credit for late work, you will need to e-mail me once you have completed it.

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.

academic honesty and integrity:

Plagiarism is "the act of presenting another person's ideas, research or writings 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
  • 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’s own, 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.

It is not acceptable to:

  • View another’s solution to an assessment and base your own solution on it.
  • Ask a classmate to see their solution to some assessment before submitting your own.
  • 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 assessment’s workload with another individual and combine your work.
  • Submit (after possibly modifying) the work of another individual
  • Use AI-based software that suggests or completes answers to questions or lines of code.

These terms modified and inspired by Harvard's CS50's academic honesty policy, here.

I have ways of checking on the originality of your code and assignments. Consequences for violating this academic honesty policy 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 [email protected].

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.

About

class repo for CS 10300, CCNY Spring '23

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published