CSS 341-
Fundamentals of Programming
Theory and Applications
Computing and Software Systems
Name:
|
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.