CSS 341-

Fundamentals of Programming

Theory and Applications

University of Washington, Bothell

Computing and Software Systems

Fall 2006
Room:
UW1 030; MW 1:15pm ¡V 3:20pm

 

 

Name: Kelvin Sung

Phone: (425) 352-5420

Email: ksung@u.washington.edu

Office Hours: Tue/Thu 5:40-6:40pm

                        Or by appointment

Office: Room UW1-339

 

We will be learning:

We will be learning fundamental concepts and techniques in solving practical problems based on analyzing, designing, and implementing computer programs. We will accomplish these goals by developing theoretical and practical programming experience including:

 

¡P        Modular design, logic flow, data abstraction and pseudo-code.

¡P        Basic programming constructs, functions, and I/O.

¡P        Introduction to sorting and searching algorithms and recursion.

¡P        Solving practical problems based on automating existing commercial applications.

 

Prerequisite: One quarter of programming language.

 

Required Text:

 

Required Text:

None.

 

Reference Text:

               Maureen Sprankle, ¡¥¡¥Problem Solving and Programming Concepts,¡¦¡¦ 6th edition, Prentice Hall, 2003.

Paul Lomax, Matt Childs, and Ron Petrusha, ¡¥¡¥VBSCRIPT In a Nutshell: A Desktop Quick Reference,¡¦¡¦ 2nd edition, O¡¦Reily, 2003.

 

Grading:

                              Final Exam                                                                                      20%

                               Mid Term Exam                                                                             25%
Programming Assignments (6)                                                    50%

                               Weekly in-class quiz                                                                       5%

 

Class Attendance and Lecture notes:

Attendance is not required. The materials covered will be based mainly on in-lecture problem solving and programming assignments. Notice that there is no required textbook for this class. The learning will come from you solving problems with compute programs, both during lecture and practicing at home. When appropriate I will also hand out printed lecture notes (whenever possible, in advance) to help you follow the lectures. These notes only summarize the main concepts. Ultimately, in the exams/homework, you are responsible for what is covered in the lectures/reading materials.

 

Schedule:

 

 

Week

Topics

Relevant Text

Date

Assignment

 

1

Introduction

Working with Web Browsers

 

 

Chap 1, 2, 3

 

Sep 27

 

 

Assign: MP #0

 

 

2

Control Structures (decisions)

Working with Commercial Applications

 

 

Chap 6, 18

 

Oct 2, 4

 

Due: MP #0

Assign: MP #1

 

3

 

Control Structures (Loops)

Working with Spreadsheets

 

 

Chap 7, 20

 

Oct 9, 11

Due: MP #1

Assign: MP #2

 

4

Functions: Scope Rules + Recursions

Working with File Systems

 

Chap 4, 5,

        14, 15, 16

 

Oct 16, 18

Due: MP #2

Assign: MP #3

 

5

Problem Solving with Control Structures

Working with Word Processors

 

 

Chap 8, 19

 

Oct 23, 25

Due: MP #3

Assign: MP #4

 

 

6

Simple Data Structures: Arrays

Working with VB Dictionary Object

 

 

 

Oct 30

Nov 1

 

Due: MP #4

 

 

7

Catch up + Review

Mid Term Exam

 

 

Chap 9

 

Nov 6, 8

 

Assign: MP #5

 

 

8

Algorithms: Sorting + Searching

Working with Email Systems

 

 

Chap 10 (p233-242)

 

Nov 13,15

 

 

9

Object Oriented Construct: Classes

Working with Databases

 

 

Chap 11, 12

 

Nov 20, 22

Due: MP #5

Assign: MP #6

 

10

Problem solving with Classes

Working with Office Automations

 

 

Chap 13

 

Nov 27,29

 

 

11

Problem solving examples

Final Review

 

 

 

 

Dec 4, 6

 

Due: MP #6

 

12

Final Exam

 

 

Dec 11

 

 

 

Programming Assignments:

Submitting Source Code: You will submit your source code of each programming assignment (or machine problem, or mp) and I will run/test your submissions. We will be using the e-Submit facility. Here is the link to our course e-submit area. There is a folder with the corresponding mp number here (e.g. mp0, mp1, etc.). Before the due time of the assignment, you should:

 

1.      Create a folder containing all the relevant source files of your mp and no more. Having extra useless/irrelevant files in that folder will results in lost credits.

2.      Use your first and last name and mp# as the name of your folder. Please do not include blank space as part of the name for this folder (i.e. do use ¡§KelvinSungMp0¡¨ as folder name, and do not use ¡§Kelvin Sung MP0¡¨ with blank spaces.)

3.      Compress your folder with the zip facility.

4.      Submit the zipped file (1 file) to our course e-submit area.

5.      Submit as many times as you like, I will only look at the last one received before the deadline.

6.      Each time after submission, ***keep a copy of the digital receipt*** just in case anything should go wrong and you will be able to proof you have submitted your assignment.

 

For example, for mp0, I will create a folder name ¡§KelvinSungMP0¡¨ (notice once again, no spaces in the folder name). In KelvinSungMp0 I will include all the relevant source files to my mp0 solution, zip up the folder, and submit the single zipped file to the class e-submit area. In addition, I would download my submission, un-zip/ run to ensure my submission is correct. You should always verify your submission! On the due date of the mp, the corresponding folder will be close at precisely the due time. After which, you will not be able to submit your work! Our email system will not allow me to accept submissions. You are responsible to ensure that the files you submitted are correct. Minor submission mistakes (e.g. missed a source file) will result in 10% deduction from the assignment. Major submission mistakes (e.g. forgot to include a major source file) will be treated as in-complete assignment and you will get 0% for the assignment. On a case-by-case basis, I will decide if a submission mistake is minor or major. There will be no exceptions! If there is an emergency and/or personal difficulty, please talk to me in person. Remember to document your code, and practice the good programming skills you have learned in your programming class. Finally, on the days programming assignments are due, you should submit a hardcopy of your source code together with a completed copy of the CSS341 Machine Problem Score Sheet.

 

Grading: Your programming assignments will be graded based on three major criteria: correctness, efficiency, and style. Here is the rubric I will follow when grading your programming assignment. If your program does not run, or has any run-time errors, or does not produce any output, you will not receive more than ~30% of the allocated credit. If your program is based on an inefficient algorithm, you will not receive more than ~65% of the allocated credit even if it runs correctly. If your program is difficult to read, is based on unusual constructs, and/or contains insufficient comments, you will loose a significant percent of the credit even if it runs correctly and efficiently. The above given percentage are for your reference. In an actual assignment, these numbers may vary. Please pay attention to the actual credit distribution in each programming assignment and plan accordingly.

 

General Policies:

Assignment Deadlines: There will be no late assignments accepted. Let me put this in another way: ¡§there will be no late assignments accepted!¡¨ This applies to every single programming assignment (or MP). Pay attention to the deadline on the assignments (including the time), there will be no late assignments accepted. Refer to the above schedule, MPs are always due 5 minutes before lecture starts on the days they are due. Please the submission instructions carefully, your assignments will be collected by an electronic submission system and the system will not accept assignment submissions after the deadline. My email system is not capable of accepting assignment submissions. In addition, we will start examine the correct solutions to the MPs immediately after MPs are due. So, you see, there are no possibilities for late assignments. Let me explain this again, there will be no late assignments accepted. I am actually a reasonable person, come talk to me about exceptional circumstances.

 

Lateness to classes: It does not bother me, just don¡¦t disturb anyone. On the days the programming assignments are due, the due time for hardcopy will be 5 minutes after class time. So you may wish to make sure you are not more than 5 minutes late for those classes. If you want to leave early, it would be very nice if you could give me advance warning. If that¡¦s too much trouble, or if you forget, don¡¦t worry, just don¡¦t disturb anyone and leave quietly.

 

Commitments and such: I am usually very easy going. I like relaxed classrooms for learning and will try my best to create such an environment. Please do not confuse relax environment with relax requirements. I work very hard, and expect students to work as hard. On average, each percentage of your assignments should represent one-two hours of outside-of-class time. Please use this as a reference and let me know if you are spending too much time on the assignments. If most of you are experiencing the same problem, then we will have to adjust the amount of work. Please seriously consider if you have the time this quarter for this class. If you do have the time, please stay in this class, I will work very hard and try my best to make this class a worthwhile learning experience for you.

 

Collaboration: Unless otherwise specified, you are expected to do your own work. Discussions of problems with fellow students are ok, provided you do not exchange algorithms, or copy code. You may always discuss any problem with me. You are expected to subscribe to the highest standards of honesty. Failure to do this constitutes plagiarism. Plagiarism includes copying assignments in part or in total, debugging computer programs for others, verbal dissemination of algorithms, and results, or using solutions from other students, solution sets, other textbooks, etc. without crediting these sources by name. Plagiarism will not be tolerated in this class, any more than it would be in the ¡§real world¡¨. Any student guilty of plagiarism will be subject to disciplinary action[1]. In the ¡§real world¡¨, you are responsible for the security of your intellectual properties. In our case, you are responsible for the security of your source code (either on public hard disk, or on printed copies). Remember to erase your work from all public hard disks, and to dispose the hard copies of your source code with care. If someone did not break any law, and has identical solution as yours, you are a suspect of plagiarism.

 

Special Needs

To request academic accommodations due to a disability, please contact Disabled Student Services (DSS) in Bothell Library Annex Building, Room 106, (email: rlundborg@bothell.washington.edu, TDD: 425-352-5303, and FAX: 425-352-5455). If you have a documented disability on file with the DSS office, please have your DSS counselor contact me and we can discuss accommodations.

 

Problems

If you have any problem with this course, please come talk to me as soon as possible.  I would like to help in anyway I could, but I have to know there is a problem. If you should fall behind in this class, it will be difficult to catch up.



[1] This paragraph is copied in its entirety from Dr. Michael Stiber¡¦s CSSIE-450 syllabus from Autumn of 1998.