CSC 226 – Intermediate C Programming
Instructor: Adam Hartley
Email: hartlead@mountunion.edu
Office: KHIC 041
Office Hours: 2:00-3:00 MWF; 12:30-1:30 TR; by appointment; or whenever my door is open!
Textbooks:
Understanding and Using C Pointers by Richard M Reese
Course Objectives:
“C is quirky, flawed, and an enormous success.” – Dennis M. Ritchie (1941-2011)
Upon completion of the course, students should be able to:
create, compile, and execute C programs
understand the history and significance of C in modern software
Develop an intuition for how memory behaves in C programs
Understand the basic types and data structures in C, such as arrays, structs, enums, etc., and be able to apply them to new problems
Be aware of the existence of undefined behavior and learn to recognize the common varieties
Be able to fluently use pointers and dynamic memory allocation
Course Outline
A rough outline of the pace of the course and topics covered is below.
Date | Tuesday | Reading | Date | Thursday | Reading |
---|---|---|---|---|---|
27 | Syllabus Roadmap Tutorial Intro |
29 | Tutorial Intro | K&R C Ch. 2 | |
3 | Background C | 5 | Type, Operators, Expressions Program 1 Due |
||
10 | Control Flow Quiz 1 |
K&R Ch. 3 | 12 | Functions / Program Structure Program 2 Due |
K&R Ch. 4 |
17 | Arrays | K&R Ch. 5 | 19 | Program Structures Quiz 2 |
K&R Ch. 6 |
24 | Dynamic Memory Management Program 3 Due |
Reese Ch. 2 | 26 | Pointers & Functions | Reese Ch. 3 |
1 | Pointers & Strings Quiz 3 |
Reese Ch. 4 | 3 | Pointers & Arrays Program 4 Due |
Reese Ch. 5 |
8 | Pointers & Structures | Reese Ch. 7 | 10 | Memory Issues / Miscellaneous | Reese Ch. 8 |
15 | Workshop Program 5 Due Quiz 4 |
17 | In-class workday |
Assignments and Grading
Assignment Type | Points Per-Assignment | Total Points |
---|---|---|
5 Programs | 20 | 100 |
4 In-Class Quizzes | 30 | 120 |
1 Lab Exam | 50 | 50 |
11 In-Class Labs | 10 | 110 |
Grade Range | Letter Grade |
---|---|
100%-94% | A |
93.9%-90% | A- |
89.9%-87% | B+ |
86.9%-84% | B |
83.9%-80% | B- |
79.9%-77% | C+ |
76.9%-74% | C |
73.9%-70% | C- |
69.9%-67% | D+ |
66.9%-64% | D |
63.9%-60% | D- |
<60% | F |
The assignments for the course are divided into a few categories:
Programs: 5 worth 20 pts. each = 100pts.
- Each program assignment will include one or more bite-sized projects designed to showcase the implementation process of topics from the class.
Quizzes: 4 worth 30 pts. each = 120pts.
- Quizzes will be given periodically in-class and will be on paper.
Lab Exam: 1 worth 50 pts. = 50 pts.
- The capstone assignment for the class will be an extended version of labs seen earlier in the semester and will contain both written elements and implementation work.
Labs: 11 worth 10 pts. each = 110 pts.
- There will be lab work every day that isn’t already occupied by a quiz. Without prior arrangement, this can only be done in-class and so will effectively count as attendance as well.
Total points available: 390pts.
Assignments may occasionally include optional extensions that will be graded for extra credit. These will generally require additional discussion with the instructor. Come to office hours or schedule an individual time!
In general, no other extra credit work will be assigned.
Collaboration Policy
The field of science is almost entirely collaborative. If students wish to collaborate on solving exercises or activities outside of class, this is allowed and encouraged under the condition that you explicitly note with whom you collaborated. Each student must turn in their own copy of the work, each copy listing the collaborators. Please limit group work to two or three students. Each student is individually responsible for the course information. Collaboration is not allowed during exams.
Students may, of course, consult with each other on the final program, but each student should present a unique project.
Late Policy
Each 24 hours, an assignment is past due, it is worth 10% fewer points. After 72 hours, the assignment is worth zero points. Extra credit work, if applicable, isn’t accepted past-due. The exams and final project will generally not be accepted late. In the case of an emergency or extended complications that would prevent exam attendance or inability to participate in the class, contact the instructor as early as possible so that other arrangements may be made.
Technology Requirements
College coursework requires students to be responsible with reading and assignments, checking email and D2L frequently, and staying in regular communication with instructors. Technology access will be important for success. To participate in learning activities and complete assignments, you will need:
Access to a working computer that has a current operating system with updates installed
Reliable Internet access and a Mount Union email account
A current Internet browser that is compatible with D2L
Please contact the IT Help Desk at 330.829.8726 or helpdesk@mountunion.edu if you need assistance with obtaining or using a device, any necessary software, or internet access at any time during this semester.
Please bring your laptop to class, we will make extensive use of in-class time for lab work.
AI Policy
Artificial intelligence is a rapidly evolving field and there are now multiple programs (e.g., ChatGPT and Bard) that can interact with users via “natural” conversations and rapidly generate output including art, essays, and computer code. Programs such as these will continue to evolve and be utilized in professional settings, and you can and should become familiar with them in the course of your undergraduate studies. At the same time, in-demand employees are those who have skills (to not use an AI when doing so would expose proprietary information to the creator of the AI, to debug AI-generated code when it doesn’t get it quite right, to modify output from AI for subtly different use cases, to perform tasks independent of AI when appropriate…) and the clarity of thought and ability to communicate effectively and effortlessly. Your college education is a time to develop these abilities and using AI as a crutch can hinder that process. So, in this course, you should not use AI in any of your work. Doing so without the express permission of the instructor will be considered a breach of academic honesty. Any submitted work may be subject to an oral examination.
Accessibility
The University of Mount Union values disability as an important aspect of diversity and is committed to providing equitable access to learning opportunities for all students. Student Accessibility Services (SAS) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations based upon appropriate documentation, nature of the request, and feasibility. If you have, or think you have, a temporary or permanent disability and/or medical diagnosis in any area such as, physical or mental health, attention, learning, chronic health, or sensory, please contact SAS. The SAS office will confidentially discuss your needs, review your documentation, and determine your eligibility for reasonable accommodations. Accommodations are not retroactive, and the instructor is under no obligation to provide accommodations if a student does not request accommodation or provide documentation. Students should contact SAS to request accommodations and should discuss their accommodations with their instructor as early as possible in the semester. You may contact the SAS office by phone at (330) 823-7372; or via e-mail at studentaccessibility@mountunion.edu.
Additional University Policies
See https://www.mountunion.edu/syllabus for policies and information that are universally applicable to all courses at the University of Mount Union.