CSCI 261 - Programming Concepts - Summer 2021

The syllabus can be downloaded here (PDF) .

This course introduces fundamental computer programming concepts using a high-level language and a modern development environment. Programming skills include sequential, selection, and repetition control structures, functions, input and output, primitive data types, basic data structures including arrays and pointers, objects, and classes. Software engineering skills include problem solving, program design, and debugging practices.

Well, that's the official, boring description. The goal of this course is to open your mind to computational thinking, to educate you to leverage programs as tools in your field of study, and to empower you with a fundamental knowledge of programming.

Section Time Locations Instructor
Section A 11AM CT 231 Megan Shapiro

Course Learning Outcomes
By the end of this course, students will be able to:

  1. Identify and construct proper object-oriented C++ syntax. Explain the components that comprise C++ syntax and how the components operate together.
  2. Design and write pseudocode to accomplish a given task or solve a defined problem using common programming design structures including conditionals, loops, functions, arrays, and classes.
  3. Translate pseudocode into valid and correct C++.
  4. Analyze & trace existing code and calculate the output given an initial input while explaining what the code.
  5. Identify and correct errors in C++ syntax, program structure, and algorithm.
  6. Discuss at a high level how C++ code becomes an executable program and how data is stored in computer memory.
  7. Discuss ethical practices in code development and code usage.

Required Textbook (electronic)
zyBook for Colorado School of Mines. To purchase the book ($58)

Expectations
You are expected to attend all classes and come prepared to actively participate in the activity and discussion for the day. To do well in this course, you must keep up with the out of class material and engage in the in class activities. We promise to prepare you and to provide you with the tools needed to succeed.

Student Evaluation
The final course grade will be computed from the following course percentage breakdown:

Final grades will be determined using a straight scale. The straight scale assigns letter grades as follows: You must pass both the final exam and the final project with at least a 60% grade on each in order to pass this course.

All assignments are due at 11:59 PM on the date stated. In order to receive full credit for any assignment, the submission must be on time, unless an approved absence is submitted. Submissions will be accepted for an additional 72 hours subject to the following late penalties:
  • (00h 00m, 24h 00m) Late: -10%
  • [24h 00m, 48h 00m) Late: -25%
  • [48h 00m, 72h 00m) Late: -50%
  • [72h 00m, INF) Late: -100%

Students are given a set of 5 Skip Days. Each Skip Day used allows a submission to be submitted an extra day without the late penalty being applied.


While there exist many compilers and IDEs, it is possible your code and solution may work in one environment but not another. All submissions will be graded against g++ as used in CLion. It is your responsibility to ensure your submission works in the lab environment. If your submission does not work, the following penalties will be applied and the grader will contact you to correct your submission:
  • Submitting Extraneous Files: -5%
  • Missing Files: -10%
  • Compiler Error: -25%

For a discrepancy in any grade in which you think you deserve more points than you received, you must raise the issue within one week of the day the item was returned. No claims, justifiable or not, will be considered after this deadline. For discrepancies with assignments, you should contact the grader first. For any other discrepancies, you should contact your instructor.

Piazza

Collaboration Policy for Programming Assignments & Projects in CS Courses
The following policy exists for all CS courses. This policy is a minimum standard; your instructor may decide to augment this policy.

Academic Code of Honor

Discrimination and Harassment:
This course and all learning opportunities at Mines require a safe environment for everyone to be productive, develop professional practices, and to be able to share and learn without fear of discrimination or harassment. Discrimination or harassment of any type will not be tolerated. Sometimes harassment is unintentional, but regardless of intent the instructor will address any language or behaviors that might discriminate, stereotype, or promote harassment. If you witness discrimination or harassment of others, please bring it to the attention of Mines faculty so it can be addressed immediately.

Disability Support
The Colorado School of Mines is committed to ensuring the full participation of all students in its programs, including students with disabilities. If you are registered with Disability Support Services (DSS) and I have received your letter of accommodations, please contact me at your earliest convenience so we can discuss your needs in this course. For questions or other inquiries regarding disabilities, I encourage you to visit disabilities.mines.edu for more information.

Disclaimer
This syllabus is intended to give the student guidance in what may be covered during the semester and will be followed as closely as possible. However, the professor reserves the right to modify, supplement, and make changes as the course needs arise.