WSU Tri-Cities
Spring, 2017
Date | Update |
4/20 | Allowing extra time for HW8 and HW9. |
4/19 | Added note about needing to compile and run under gcc and MinGW. (This will take effect after the Spring, 2017, semester.) |
4/6 | Added (written) Final Exam date and time. |
3/8 | Added reminder to not send binary (including zip) files. |
2/16 | Lab 5 link is active. |
2/13 | Lab 5 is now designated take-home (to allow for Presidents' Day). |
1/31 | Added reminder to include "cpts360" on email subject line. Added "Text Editor" (section on vim). |
Bob Lewis
Associate Professor, WSU TC
West 134D
Campus Phone: 2-7178
Off-Campus Phone: (509) 372-7178
bobl@tricity.wsu.edu
(For faster response, be sure all email about this class -- including assignment submissions -- includes "cpts121" in the subject line.)
Web Page:
http://www.tricity.wsu.edu/~bobl
Office Hours: W 3-5pm
Rob Emmel
remmel@tricity.wsu.edu
Manny Bonilla
Veterans Center
Campus Phone: 2-7143
Off-Campus Phone: (509) 372-7143
emmanuel.bonilla@tricity.wsu.edu
Office Hours:
M 11am-1pm, West 151 (CSLab)
TuW 11am-1pm, Learning Center
David Search
CIC 225
(509) 372-7334 (on campus: 2-7334)
tchelp@tricity.wsu.edu
TuTh 4:15-5:30pm, BSEL 103
M 4:15-7pm, CIC 101R
Formulation of problems and top-down design of programs in a modern structured language for their solution on a digital computer.
Math 106 with a C or better, or Math 108, 171, 172, 182, 201, 202, 206, 220, 273, 315, or ALEKS math placement score of 70% or higher.
Students passing this course will be able to
Kochan, Stephen G., Programming in C (4th. ed.), Addison-Wesley, 2015.
This text is in at the bookstore.
Unless explicity permitted, laptops, tablets, and other electronic media devices are not permitted in exams. This means that open-book exams permit only printed books. Getting this text in electronic form is therefore not advised.
Kernighan and Ritchie, The C Programming Language (2nd ed.), Prentice Hall, 1988.
http://www.tricity.wsu.edu/~bobl/cpts121
Although not required for the class, it is strongly recommended that students acquire facility with the vim text editor. You can run an iteractive tutorial about vim by entering $ vimtutor on a Linux or MinGW terminal emulator. There's also an on-line tutorial here. You can read a recent article about vim here.
C code written for this class should comply with the coding standards established by the instructor, which can be found at http://www.tricity.wsu.edu/~bobl/cpts121/coding_standards.html . This reflects common C coding practices. Any departure from these should be commented in code.
This document may be added to as the course progresses, so it is the student's responsibility to verify that their homework follows the guidelines which are active at the time of their submission.
Points may be taken off assignments for violations of these standards, even if the code works.
These are the topics the course will cover:
"--" indicates lectures carried over from the previous session. Readings in Kochan are indicated. This schedule will be revised as the course progresses, so check back periodically.
Week | Mon | Lab | Tu | Lecture | Th | Lecture |
1 | moved to Wed, 1/18 |
Lab 1: Basic Tools
Ch. 2 (reminder: Bring a USB thumb drive!) |
1/10 |
1. Introduction to Computer Science
Ch. 1 |
1/12 |
2. Expressions and Variables
Ch. 3 Homework 0 (email face shot and preferred name) assigned |
2 | 1/16 | Martin Luther King, Jr. Day (campus closed) | 1/17 |
3. Repetition
Ch. 4 |
1/19 | -- |
3 | 1/23 | Lab 2: Repetition | 1/24 |
4. Selection
Ch. 5 |
1/26 |
--
Homework 1 (change) assigned (due 2/9) |
4 | 1/30 | Lab 3: Selection | 1/31 |
5. Arrays
Ch. 6 |
2/2 | -- |
5 | 2/6 | no lab | 2/7 |
6. Functions
Ch. 7 |
2/9 | -- |
6 | 2/13 | Lab 4: Arrays | 2/14 |
7. Recursion
Homework 2 (lander) assigned (due 2/21) |
2/16 | -- |
7 | 2/20 |
President's Day (campus closed)
Lab 5: Functions (take-home) |
2/21 |
TBD (or Midterm Review)
Homework 3 (laplace) assigned (due 3/2) |
2/23 |
Midterm
covering Units 1-6 |
8 | 2/27 | Lab 6: grafic | 2/28 |
8. Structures
Ch. 8 |
3/2 |
--
Homework 4 (plotz) assigned (due 3/9) |
9 | 3/6 | Lab 7: Structures | 3/7 |
9. Strings
Ch. 9 |
3/9 |
--
Homework 5 (sierpinski) assigned (due 3/23) |
10 | 3/13 - 3/17: Spring Break (no classes) | |||||
11 | 3/20 | Lab 8: Strings | 3/21 |
10. Pointers
Ch. 10 |
3/23 |
--
Homework 6 (monsterdb) assigned (due 4/6) |
12 | 3/27 | Lab 9: Pointers | 3/28 |
11. File I/O
Ch. 15 |
3/30 | -- |
13 | 4/3 | Lab 10: File I/O | 4/4 |
12. Large Scale Programming
Ch. 14 |
4/6 |
--
Homework 7 (monsterquiz) assigned (due 4/13) |
14 | 4/10 | Lab 11: Large Scale Programming | 4/11 |
13. Dynamic Memory Management
Ch. 16 |
4/13 |
--
Homework 8 (monsterdb2) assigned (due 4/24 -- extended) |
15 | 4/17 | Lab 12: Stacks | 4/18 | -- | 4/20 |
--
Homework 9 (rpncalc) assigned (due 5/1 -- extended) |
16 | 4/24 | Lab Final | 4/25 | TBD | 4/27 | Final Review |
17 | 5/1 - 5/5: Finals Week (Written Final is Tuesday, 5/2 from 3:30-5:30pm in BSEL 103) |
The grade will break down as follows:
20% | midterm |
40% | final |
25% | homework |
10% | lab participation | 5% | class participation |
The midterm will take up one 75-minute class period.
The final will be the usual two hours in duration and may cover material presented during the whole class, but weighted in favor of material introduced after the midterm.
Unless explicity permitted, laptops, tablets, and other electronic media devices are not permitted in exams. This means that open-book exams permit only printed books.
There will be several homework assignments, each consisting of one or two C programs. Each will require 1-2 weeks to complete. Email the C source code as an attachment to the instructor prior to the start of class on the due date.
For evaluation, all assignments will be compiled with the GNU C compiler, gcc, and run under the MinGW system as set up in our Lab. You are welcome to develop your code with another compiler such as Visual Studio's C (but not C++) compiler, but it is your responsibility to make sure it compiles and runs correctly under MinGW.
Just send the source code as an attachment. Binary files (including "zip" files and executables) can be silently blocked (for security reasons) by some email systems.
To compile your program (let's call it "foo.c"), the grader will do the following in a MinGW console:
$ gcc -Wall -Wstrict-prototypes foo.c -o foo
This should produce no errors or warnings and an executable "foo" that the grader can run. It should be all that is necessary to produce an executable program. Anything that requires more effort than this will cause points to be taken off or not to be awarded at all. Any "repairs" are at the discretion of the grader.
It is strongly recommended that you follow these same steps as a test to assure that problems don't arise with your submission.
Late penalty is a flat 10% point deduction. Late assignments may be turned in before the start of class up to one week after the original due date. After that, no credit will be awarded.
Your lab grade is based on participation. Labs will be conducted as follows:
You may then leave the lab with full credit. If at the end of the lab you have not completed the tasks, you may still leave with full credit.
You may not do anything else on the lab computers than work on the assigned tasks.
The class will be more participatory than the usual lecture form. After the first lecture, everyone should come to class having done the reading. Each class will begin by dealing with any questions students have. Once those are resolved, the instructor may ask questions of the class to test their comprehension of the material. I may also pose problems for them to work in class, either individually or as a group.
"Participation" includes both asking questions and answering them (the instructor's or anybody else's). It also includes taking advantage of office hours.
The numerical grade is mapped to a final letter grade based on the instructor's subjective evaluation of the overall difficulty of the course, with the following constraints:
A numerical grade
in this range... |
... guarantees a
letter grade which is at least... |
90 ≤ grade ≤ 100 | A- |
80 ≤ grade < 90 | B- |
70 ≤ grade < 80 | C |
As the course progresses, the instructor is free to revise these criteria downwards so that, for example, 87% might still result in an A-, but these ranges will not be raised.
As stated in the WSU Tri-Cities Student Handbook, "any member of the University community who witnesses an apparent act of academic dishonesty shall report the act either to the instructor responsible for the course or activity or to the Office of Student Affairs". The Handbook defines academic dishonesty to include "cheating, falsification, fabrication, multiple submission [e.g., submitting the same or slightly revised paper or oral report to different courses as a new piece of work], plagiarism, abuse of academic material. complicity, or misconduct in research." Infractions will be addressed according to procedures specified in the Handbook.
The fundamental requirement for all student work in this class is:
Unless otherwise explicitly permitted by the instructor, all work you turn in must be your own.
Any instance of academic dishonesty, as defined in the WSU Student Handbook, in this class will be dealt with severely (typically by failing the class) and reported to the WSU Office of Student Conduct.
Note in particular that it is dishonest not only to copy another student's work, but to permit another student to copy yours.
Nevertheless, realizing that students can assist each other in understanding general course material, there are limited ways in which student collaboration is permitted:
It will be up to the discretions of the grader (if applicable) and instructor to determine if any assignment shows evidence of collaboration beyond these limits. Any attempt to circumvent the spirit of these rules will be treated as a violation of the fundamental requirement. If you are in doubt, do not give help to or request it from another student: That's what office hours are for.
Reasonable classroom adjustments/accommodations are available for students who have a documented disability. Please notify the instructor (by email, if you like) during the first week of class of any accommodations needed for the course. All classroom academic adjustments and accommodations must be approved through the Disability Services Coordinator, located in West 269D, (509) 372-7351. Late notification may mean that the requested accommodations might not be available.
All Tri-Cities students should be familiar with the Campus Safety Plan, which may be accessed at http://www.tricity.wsu.edu/safetyplan , and with the University emergency management web site, which is http://oem.wsu.edu/emergencies .
The WSU Tri-Cities Writing Center offers free tutorial services to all undergraduate Washington State University students. Here, tutors can help you with various writing issues you may encounter. I urge you to meet with different tutors and find one with whom you work well. Students have found that the one-on-one attention such tutorials offer can be very helpful. The WSU Tri-Cities Writing Center is located upstairs in the CIC library. Walk-ins are welcome.