1 Syllabus – CS 3340 – Spring 2021 Course Information • Course: CS 3340 – Web Programming, Section A, 3 hrs., Department of Computer Science, College of Science & Mathematics, Valdosta State University. • Prerequisites: CS 1302 with a C or better and self-sufficiency in coding in an object-oriented language. • Catalog Description: Examination and implementation of the foundations of web-based computing. Topics include Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), client-side scripting, server-side programming, state management, data access, Extensible Markup Language (XML), web services, and component- based development. • Learning Outcomes: Students who have successfully completed this course will be able to: 1. Develop client-side web pages that utilize client-side code, data representation and manipulation, styling, and asynchronous communication with a server. 2. Develop web pages with object-oriented server-side code. 3. Design and implement web-based systems which specify an appropriate client-server architecture and state management strategy. 4. Design, implement, and consume web services and server-side components 5. Develop database-driven web applications that support inserting, updating, and deleting of data 6. Design, implement, and consume custom, reusable GUI components. Instructor Information Instructor Dr. Dave Gibson, 1128 Nevins, 229.333.7151 (office), 229.253.4410 (Dept. office) Office Hours MW: 11-12, T,Th: 1-2, F:11-2 Email dgibson@valdosta.edu, All email addressed to me should: • Be from a VSU account • Have a subject that begins with: CS 3340 (e.g. CS 3340-HW 1 question) • Be signed with your full name in the body of the message (e.g. Dave Gibson) Class Information • Class: 2-3:15 Monday & Wednesday, 2115 Nevins • Course Website: The course website is found by going to my homepage: http://mypages.valdosa.edu/dgibson, and choosing the CS 3340 link which will display the course Schedule. The Schedule provides a list of exactly what we do in class, assignments, and due dates. It is your responsibility to check the Schedule regularly. • Textbook: There is no textbook for the course. • General Policies: • Be on-time for class. Don’t miss class. There is no book for the course so it is very important that you attend all classes. • Do not leave the classroom once lecture has started, excepting an emergency. 2 • Electronic devices are allowed for viewing course notes. Any other use is not allowed. • Phones are turned off and stored in your book bag off the surface of your desk and not within sight. Phones are not to be used in any capacity during class. • Check the Schedule on the website regularly. Check your VSU email account regularly. • Drinks with a lid are OK. Food/candy/snacks are not allowed. • Class and VSU requirements: (1) always were a mask that covers your mouth and nose, (2) sit and maintain separated by 6’. • Attendance: We will follow the hyflex model. The class has been divided into two groups: Group 1 & Group 2 which have been distributed via email and are on the Schedule. When you are assigned to attend remotely, the lecture will be streamed via Teams. • Special Services: Students requesting classroom accommodations or modifications due to a documented disability must contact the Access Office for Students with Disabilities located in the Farber Hall. The phone numbers are 245-2498 (V/VP) and 219-1348 (TTY). • Academic Honesty: You are expected to work individually for all Assignments, Tests, Projects unless indicated otherwise. You may (and should) discuss assignments with others in your class. You may not possess work (including computer code), in any form, from someone else in the class, if the work is part of a graded assignment or test. In other words, talk out, in as much detail as desired, approaches to a problem, but write up the work (code) yourself. Violation these and any other related policies are unacceptable and will not be tolerated. See Academic Honesty & Plagiarism section at the end of this document for more details. Assessment • Grade Components: Tests (35%), Labs (15%), Homework (50%). The Course Average is computed from these weights. Final grades are assigned according to where your course average (rounded) falls on the following scale: 90-100=A, 80-89=B, 70-79=C, 60-69=D, 59 or below=F. • Tests: There are 3-4 tests. The last test occurs on the day of the final exam. • Final Exam: There is no final exam, per se; however, the last test will be given during the final exam period. • Labs: There will be 10-15 graded lab assignments. These will generally be started in class and finished outside of class. There is a 50% penalty for labs that are submitted late, and by the next class period after they are due. • Homework: There will be 6-8 graded programming assignments. These are submitted on Blazeview. There is a 20% penalty for labs that are submitted late, and by the next class period after they are due. Additional Information The delivery of this course, in general, is more broad than deep. My goal is to show you enough of a topic (a) so that you can do some useful things with them and (b) so that you have enough background so that you can learn new things yourself. There is no text for the course. I provide notes and examples for each topic. The notes will have links to running examples. You can download the examples (and notes) so that you can study/modify/build from them. You are expected to do this. 3 For each topic, there will be 1-2 labs. Usually, we will do a lab as a preview of the topics we will consider in subsequent lectures. The pace of this course is fast. The workload and complexity is reasonably heavy and grows as the semester unfolds. If you do not have the time to commit, please consider taking this course in a future semester. The homework for this course will take a lot longer than you think. They will be conceptually straightforward, but web programming takes longer than Java assignments in CS 1302. Tips for Success 1. Notes – Read and study the notes posted on the Schedule and take notes in class. 2. Sample Code – Download the provided code and experiment. 3. Baby Steps – Take baby steps. Just write a line or two of code and then compile, run, test. 4. Debugger – Learn to use the debugger. In general, you must be a very savvy debugger to succeed. You must learn to isolate conditions by commenting out code, using the debugger, and doing experiments. Debugging web programs is much more challenging than the debugging you have done in 1302. However, VS provides a lot of help. Still, it will be more complex and time consuming than you are used to. Debugging your code is part of the assignment, so I expect you to do that. 5. Start Early – Start as early as possible on assignments. You will have problems no matter how straight forward you think the assignment is. Realize that some problems you encounter may take 30 minutes to figure out, or may take several hours, and/or you may have to come back to them over several days. Get started as early as possible! You will probably encounter many more difficulties that you did in learning to program in Java. 6. Experiment – You must learn to experiment (debug). What do I mean? You are working on an assignment, you think you know what you are doing, but it is not working. You’ve tried quick fixes and looking back at the notes, but it is still not working. What this usually means is that you do not understand how a method/control really works. You must do an experiment to find out how it works. What does this mean? It means you start a new project and write the minimum amount of code to test out a method/control. You tinker with it, change variable values and/or parameters, etc, until you understand how it works. 7. Start Over! – Occasionally, none of the above are working. You should start over using baby-steps and many times using code from my examples that works. Or, start with one of my examples that works, and baby- step in the changes. 8. Help! – Learn to use the MSDN and Google to find answers to your questions. Do not use Google to find answers to your assignments, or major parts of. If you turn in such work, it is considered plagiarism for this course. 9. Call the Doctor! – I am always here to talk about problems you are having with your code. If you are wanting me to look at your code, then this is the way my help works: 4 You explain your problem to me using the proper names for the class(s), properties and methods that are involved. I may offer a solution, things to try, and/or refer you to the code samples. I may also decide to look at your code. If I do request to look at your code, it is preferred for me to be able to run it off a flash drive as opposed to your laptop. I know that may be inconvenient, but I cannot see it very well and it very significantly slows down my ability to help you. So, don’t charge into my office with your laptop open and wanting me to look at code. Explain first. Academic Honesty & Plagiarism • For all “homework” for this course, the code you turn in must be entirely your own work. Any suspicion of violation of this policy will result in: 1. Minimally, a grade of zero on assignment for all involved (copiers & source) 2. A Report of Academic Dishonesty, which is attached to the student’s permanent file in the Dean of Students Office. For more information, see: http://www.valdosta.edu/academics/academic-affairs/vp-office/academic-honesty-policies-and- procedures.php • YOU MAY: discuss with others, what the problem is, how to solve it, including specific techniques. • YOU MAY NOT: print your code for someone else nor write any portion of someone else’s code, nor ask someone to do either of these things. You may not possess any portion of someone else’s code either printed or electronic. • Coding for this class should be an individual activity.