Location: Sloan
161
Time: Mondays and Wednesdays, 310-400, Keep this Friday slot open for makeups due to my research travel (more on the course web page).
Web site: http://www.eecs.wsu.edu/~cs224/
Instructor: Professor
Dave Bakken, email via BLACKBOARD for this class.
Office: EME 55
Phone: I don’t check it, use BLACKBOARD email from 224’s home page
there. In a crisis you can send me a text message or, if you think you really
need to, call my cell. Five-oh-nine 592 oh-two-three-eight.
Office Hours: MW 210-300 and by email appointment. I’m also generally available right after the lecture for 5 minutes for quick questions.
TA: None.
Prerequisites:
Official:
CptS 122 (with a ‘C’ or better); CptS 223 (recommended). If you don’t meet this, you must IMMEDIATELY see me.
Practical:
Basic knowledge of programming in the C programming language. Familiarity with Unix is helpful, but not required.
Textbooks:
Kernighan
and Pike, The UNIX Programming Environment, Prentice Hall, 1984.
Kernighan
and Pike, The Practice of Programming, Addison-Wesley, 1999.
These are utter classics on the fundamentals of this class and in structuring programs in general, and have not been bettered since (cmt1, cmt2, cmt3)
Expected Student Learning Outcomes
By successfully completing this course students should obtain the following learning outcomes:
1. Obtain solid knowledge of Unix and related
systems such that the student is competent in using them, finding more
information from a variety of sources, etc. This includes using the file
system, basic commands, process management.
2. Understand the basics of debugging, including
how to think through debugging, using an interactive debugger, using debug
macros.
3. Obtain working knowledge of the make program
builder.
4. Obtain working knowledge of Unix regular
expressions, filters, and awk.
5. Obtain experience with scripting languages
including the Unix shell and either Perl, Python, or Ruby.
Grading:
There will be a number of homework assignments covering the various topics. There will be two exams. Grading will be 60% homework and 40% exams. The grading scale will probably look something very much like this:
A: 93 |
B+: 87 |
C+: 77 |
D+: 64 |
A-: 90 |
B: 83 |
C: 73 |
D: 58 |
|
B-: 80 |
C-: 70 |
F: 57 and lower |
Exams
We will have a midterm and a final
exam. The midterm is date TBD. The final exam will be from 3:10 to 5:00 on
Thursday, December 12, in this room.
Late Homework:
Late homework will be accepted on the following basis:
· Up to 3 days late: 10% deducted
· Up to one week late: 20% deducted
· More than that: No credit.
In the case of excused absences (with a very good and documented reason), late homework may be accepted without penalty. The earlier you notify me of a possible absence, and the more you are able to document it, the more I am likely to grant it.
Policies
Your exams and homeworks are subject to the academic honor code. DO NOT CHEAT IN ANY WAY: DO YOUR OWN WORK! Side effects of cheating may involve expulsion and other nasty things, and will be as severe as I can make stick.
It is quite acceptable to ask others things like “Have you gotten this error message before?,” and even have them look at your stack trace and its code It is quite unacceptable, on the other hand, to have them spend hours helping develop or seriously rearrange your program’s logic. If in doubt, ask me first….
Reasonable accommodations are available for students who have a documented disability. Please notify me during the first week of class of any accommodations needed for the course. Late notification may cause the requested accommodations to be unavailable. All accommodations must be approved through the Disability Resource Center (DRC) in Administration Annex room 205, 335-1566, mailto:drc@mail.wsu.edu.
You are required to check your WSU Outlook Live email; we will use the Blackboard system for this class for assignments and it only forwards email to that.
Emergency Info:
Please check out the Campus Safety Plan (http://safetyplan.wsu.edu/) and visit the Office of Emergency Management web site (http://oem.wsu.edu/) for a comprehensive listing of university policies, procedures, statistics, and information related to campus safety, emergency management, and the health and welfare of the campus community.
So why the $#^*! Should I Learn Linux Stuff??
Considerer Sarah Belter, a
2014 BSCS graduate. When I asked her a bit later about the benefits of taking
224, here is what she said:
When I started at WSU the only
programming exposure I had was two high school HTML web design courses. I
had no idea what Linux or Unix was and that there was a difference.
I didn’t know the power of the command line because adults told me as a kid
that using it would destroy my computer. Looking back, CPTS 224
was an extremely important class and not just because it was a graduation
requirement. It gave me the basic skill set that allowed me
to understand how down level computing in files, file systems and command
processing worked.
Don’t let constantly
searching for files names that contain the letter ‘A’ and replacing all
the ‘huskies’ with ‘Cougars’ in a text file fool you, there are some
serious building blocks being formed in 224. It was quickly applicable
to CPTS 322, 360 and 460, and I continue to apply this now working at
Microsoft while hooking up debuggers, running diagnostic scripts and dumping
crash logs from virtual machines. The command line is the tool for
setting up enlistments and checking in code to the code base where there
are no GUIs to walk me through the process, I have to
understand where I am and what I am doing to my machines.
If you are
sitting in 224 don’t be discouraged when your peers are sleeping
through it, testing out or skipping class because they “already know
the material”, know that you are learning invaluable skills that will propel
you forward in other classes and eventually into that awesome
Software Engineering career waiting for you down the road.
Sarah Belter
Class of
2014
BS
Computer Science
Topics:
Tentative Topics are listed along with the appropriate reference in one of the two textbooks. "UPE" indicates The Unix Programming Environment, "PP" indicates The Practice of Programming. The number indicates the chapter, so "UPE 1" means chapter 1 of The Unix Programming Environment. The midterm exam will cover most/all of Part I.
A few other topics may be added depending on student interest and available time.