Description: Description: Description: Cpts224logo

Fall 2019 Syllabus


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.