Syllabus
Course Outcomes
CS 124 is the first class in a 3-class programming sequence. If you complete all the readings, assignments, and projects, you will:
- Be well prepared for CS 165 and the other courses in the CS major
- Know how to read procedural C++ code and explain what it will do when it executes
- Be able to write procedural C++ code
- Have the ability to solve complex programming assignments
What to Expect from the Course
In order to help you meet these objectives, CS 124 will offer the following learning activities: reading, chapter assignments, unit projects, class activities, unit tests, and final exams
Reading
The course provides a textbook: Procedural Programming in C++ by James Helfrich.
This will be available in the book store or
online.
Through the course of the semester, you will need to read each of the 25 chapters separated into four units:
Simple Programs, Design & Loops, Pointers & Arrays, and Advanced Topics.
This textbook presents all the necessary skills you will need to demonstrate for the class.
It does not provide solutions to the assignments, projects, nor tests.
It also does not describe how to solve every problem you will need to solve this semester.
The course also provides additional material available through I-Learn, including videos and programs in the course Linux directory: \home\cs124
You will need to read a chapter of this textbook before every class period. Some concepts are difficult and may require more than one attempt to understand everything. By the time you take the unit test, work on the unit project, and take the final exam, you will need to master every aspect of these chapters. It will take on average a half hour to read the 10-12 pages in each chapter.
By completing the reading, you will understand the concepts surrounding programming. There are no grades directly associated with the reading.
Chapter Assignments
The course provides chapter assignments and unit projects. There is a chapter assignment associated with every chapter, being “very similar” to one or more example presented in the textbook. The course also provides a way to verify the correctness of your assignment before you submit, and notification of completion upon the due-date.
You will need to complete a chapter assignment before just about every class period (excluding review and test days). Each chapter assignment will take approximately 45 minutes to complete each assignment.
By completing the assignments, you will gain an understanding of how the various programming constructs work. Each assignment will be graded according to how closely the output of the program meets the expected output. Points will only be earned if the program executes as expected. Extra credit may be applied if the program is submitted early. The assignments are worth 20% of your overall grade in the class.
Class Time
The course provides three hours of class time a week. Your instructor will spend most of the class time answering questions about the reading and probing the class for common misunderstandings. Your instructor will also present a collection of problems (some easy and some difficult) to help you understand the concepts of the chapter.
You will need to come to every class. Your responsibility is to ask questions. You will also be expected to work through every problem presented by the instructor and help your neighbor find solutions.
By coming to class, you will get all your questions answered and learn how to read code. There are no grades directly associated with class attendance or participation.
Unit Projects
The course provides four projects, each associated with one of the units in the chapter. These projects are large, complex, and somewhat different than anything presented in the reading. The instructor will also provide prompt personalized feedback of each submission.
You will need to use creativity, problem solving, and plenty of hard work to solve these problems. Each project will take about 10-12 hours to complete, spread out over three submission points.
By completing the projects, you will master the various procedural programming constructs, develop problem solving skills, and learn how to debug programs. The unit projects are worth 40% of your overall grade in the class.
Unit Tests
The course provides four unit tests, each associated with one of the units of the chapter. The course also provides three practice tests for each unit tests. These tests are to be completed in class on the designated test day and are similar in complexity to the chapter assignments. The instructor will also provides prompt personalized feedback on each submission.
You will need to review the chapter assignments and practice for the test by completing the practice tests. Each tests will take up to an hour to complete but it will probably take you two or three hours to prepare. They are to be completed in a “closed-book” format without reference to the internet or the textbook.
By studying for each test, you will gain a heightened level of mastery over programming. You will also learn to work independently of the lab assistants, tutors, classmates, and external resources. The unit tests are worth 20% of your overall grade in the class.
Final Exams
The course provides two final exams, each nearly identical in composition and covering the entire semester. The course also provides a practice final exam with which you can measure your readiness for the final exam. The instructor will provide immediate feedback on your performance on each exam.
You will need to review the problems presented in the back of each chapter to prepare for the test. You will need also to complete the practice exam several times until you have achieved mastery over all aspects of the class.
By studying for the exams, you will develop a mastery of the skill of reading code and identifying common pitfalls. The final exams are worth 20% of your overall grade in the class.
Details, Details
Assessment
There are five components to your overall grade:
Preparation Assignment | 20% | Work on the assignment as you read the text for the lesson. There will almost always be an example "a lot like" the assignment for each lesson. If you complete an assignment before class, you will get 100%. If you complete it two days early, you will get 150%. If you complete it up to two days after class, you will get 50%. |
Unit Tests | 20% | 4 tests worth 5% each. These will be problem solving exercises in the Linux lab on how to write code. Practice problems will be available. |
Unit Projects | 40% | 4 projects worth 10% each. These will be problem solving exercises using the tools learned in the assignments. One late project will be accepted up to 2 days late and be marked off 20% if accompanied by a repentance document. |
Final Exam | 20% | Closed book multiple choice primarily on how to read code. The midterm will be in the testing center. The final exam will be in two parts on the last two days of class. Practice problems will be available. |
Grades are as follows: | 100% → 90% | A: | Demonstrated mastery of the class |
89.9% → 80% | B: | All of the key concepts and skills have been learned | |
79.9% → 70% | C: | Acceptable, but might not be ready or CS 165 | |
69.9% → 60% | D: | Developing; the class has yet to be mastered | |
59.9% → 0% | F: | Failed to understand or complete the course |
Additionally, a minus (-) will be added when the last digit is a 0, 1, or 2 for all grades except F's. A plus (+) will be added when the last digit is a 7, 8, or 9 for all grades except A's and F's. Grades will be posted on I-Learn but you are responsible for verifying your grade. Please notify me if there is a problem.
Policies
All communication (note passing, talking, and electronic) needs to be focused on the subject matter. Late projects need to be accompanied in e-mail by a repentance document:
- Relate the steps to repentance as it pertains to turning in late work. After reading the e-mail, I must be convinced that the problem has been identified and rectified.
- 20% will be deducted (restitution)
- Only one late project will be accepted (forsake the deed)
- Note that most requests for late grading will be rejected; a good excuse is required. Examples of good excuses: death in family, illness requiring a doctor visit, etc. Examples of bad excuses: I forgot when it was due, I did not plan appropriately, etc.
You may work with your classmates but all submitted work must be original. Share ideas; do not share code! Assistance from a classmate should be on par with the help you would expect from a lab assistant. The penalty for copying or plagiarizing of assignments might be one or more of the following: -100% on an assignment, being asked to withdraw from the class, a failing grade in the class, or disciplinary action by the University. For more information about this, please see this document on plagiarism.
Accessibility
BYU-Idaho is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by BYU-Idaho Disability Services. If you need assistance or feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established policy and procedures.
If you have any disability that may impair your ability to complete this course successfully, please contact Disability Services as soon as possible, preferably before the beginning of the semester, in order to insure that you receive appropriate accommodations.
Disability Services Contact Information:
- Phone: 208 496 9210
- Email: disabilityservices@byui.edu
- Fax: 208 496 5210
- Website: http://www.byui.edu/disability-services.
Discrimination
BYU-Idaho prohibits sex discrimination against any participant in its education programs or activities. Prohibited sex discrimination includes incidents of sexual harassment (including sexual violence), dating violence, domestic violence, sexual assault, and stalking (collectively “sexual misconduct”).
As an instructor, one of my responsibilities is to help create a safe learning environment for my students and for the campus as a whole. University policy requires that I report all incidents of sexual misconduct that come to my attention. If you encounter sexual misconduct, please contact the Title IX Coordinator at titleix@byui.edu or 208-496-9209. Additional information about sexual misconduct and available resources can be found at http://www.byui.edu/titleix