Programming in C/C++ as a Second Language

UC Irvine - Fall ‘22 - ICS 45C

An introduction to the lexical, syntactic, semantic, and pragmatic characteristics of the C/C++ languages for experienced programmers. Emphasis on object-oriented programming, using standard libraries, and programming with manual garbage collection.

Basics

Lecture: T/Th 8:00-9:20am, In-person @ HSLH 100A
Office Hours:   T/Th 9:30-10:30am @ DBH 3013
Labs: TBD
TAs:
Grade: 45% projects, 45% quizzes/final, 10% homework (see grading)
Final Exam:   Tue, Dec 6, 8:00-10:00am @ HSLH 100A
Planned schedule:   caio.link/ics45c-schedule

Rules & Guidelines

  • This webpage serves as the course syllabus;
  • Information on this page is subject to change, check occasionally;
  • For academic integrity see campus policies; violations will be reported!
  • For add/drop deadlines see campus policies;
  • All project and homework deadlines are 10PM PT;
  • Lectures will be held in-person, no recordings will be provided;
  • Quizzes will be held during lectures.

Book

We'll use The Rook's Guide to C++ as the course textbook. This is a free book that you can download here: https://rooksguide.org/2013/11/26/version-1-0-is-out/
This book provides a good intro to C++ for first time programmers, and since you've taken a few courses already, the explanations should be easy to follow :)

We might also occasionally use additional material in lecture, which will be posted here. You can also find my lecture notes in that section.

Other Resources

Topics

  1. Introduction
  2. Interpreted vs Compiled Languages
  3. I/O
  4. Variables, Values, and Types
  5. Branching
  6. Loops
  7. Strings
  8. Arrays
  9. Functions
  10. Separate Compilation
  11. Structs and Unions
  12. Pointers
  13. Dynamic Data
  14. Classes
  15. Templates
  16. STL
  17. Files
  18. Advanced (e.g., RAII, Smart Pointers)

Grading

Exam (9%)

  1. Final, 9%, Tue, Dec 6, 8:00-10:00am @ HSLH 100A

Quizzes (36%)

Quizzes will take place during lecture, in-person only!
If you miss a quiz, you'll have the option to take a make up alongside your final.
  1. Topics 1~5, 9%, 2022-10-18
  2. Topics 6~9, 9%, 2022-11-01
  3. Topics 10~13, 9%, 2022-11-15
  4. Topics 14~16, 9%, 2022-11-29

Projects (45%)

All project deadlines are 10PM PT! Submissions will be run through MOSS.
  1. Link soon; Topics 1~5, 9%, 2022-10-14
  2. Link soon; Topics 6~9, 9%, 2022-10-28
  3. Link soon; Topics 10~13, 9%, 2022-11-09
  4. Link soon; Topics 14~15, 9%, 2022-11-22
  5. Link soon; Topics 16~17, 9%, 2022-12-02
Project Late Submissions
You'll have a 15min buffer to account for any technical difficulties in all project submissions. So, if you submit your project at 10:16PM, it'll be considered late.

Additionally, you'll have a total of 5 extra days to work on your projects. You can use them at your discretion. For example, if Project 1 is due Friday at 10PM, and you make a submission between Friday 10:16PM and Saturday 10PM, you'll use one of your days. If you make a submission between Saturday 10:01PM and Sunday 10PM, you'll use 2 days. There is no going back on a used day, i.e., if you made a late submission, that day is used.

You can use 1 day on each of the 5 projects, all 5 days in a single project, or any combination you wish. You don't need to submit anything to use these days, all projects will be open for late submissions and we'll reduce the number of days you have based on your submissions. Please be aware of the number of days you have remaining! No extra days will be awarded, and submissions over your extra days will not be considered.

Homework (10%)

Homework will be based on the "Review Questions" from our textbook. The chapters might be out of order, as they're assigned to match our projects and quizzes.
  • Chapters 2~10, 2.5%, 2022-10-18;
  • Chapters 11~14, 2.5%, 2022-11-01;
  • Chapters 19~22, 2.5%, 2022-11-15;
  • Chapters 15~17, 2.5%, 2022-11-29;
  • Chapter 18, 2.5%, 2022-12-02;
All homework deadlines are 10PM PT and submissions should be made on Canvas. Homework will be graded on good-faith attempts, not correctness. You'll have the same 15 minutes buffer as projects, but submissions over that buffer won't be accepted. Your lowest homework grade is automatically dropped.

Regrade Requests

Requests for quizzes should be open through gradescope within 5 days of grade posting.

Project grades will be based on autograders; no manual regrades will be accepted since we don't have the bandwith to do that for all of you, so it wouldn't be fair to do it for a select few. You do have the option to submit your solution multiple times, so you can test your code and make changes before the deadline is up.

Accommodations

Any student who feels he/she/they may need an accommodation based on the impact of a disability should contact me privately to discuss his/her/their specific needs. Also contact the Disability Services Center at dsc.uci.edu or (949) 824-7494 as soon as possible to better ensure that such accommodations are implementationed in a timely fashion.

Lecture Materials

Extra slides, code snippets, etc. will be posted here after lectures.

Commitment to an inclusive learning environment: this class adheres to the philosophy that all community members should enjoy an environment free of any form of harassment, sexual misconduct or discrimination. Please be respectful and kind to one another.