## My Schedule

This trimester I have three sections of CSC 352, Web Development. These occur in blocks B, C, and F.

My schedule can be viewed in technicolor here.

## Computer Science TAs

There are four CS TAs this year. They can help you with a wide array of issues, including getting your lappy ready for this class.

Jefferson Bishop

Alex Cini

Matthew Houk

Noah Kellar

## Important Dates for All Classes

For your convenience, all scheduling annoyances, deadlines, and other important dates here that apply to all classes. The modified schedules will be shown just after this list; scroll down to see them.

• 13 August 2018, Everyone's on Campus!
• 15 August 2018, Convocation
• 16 August 2018, T1 Begins. Start your engines! Also: altered schedule: Evacuation Drill
• 17 August 2018, Altered schedule: Lockdown Drill
• 3 September 2018, Extended: Labor Day
• 14 September 2018, College Eve
• 15 September 2018, Family Day
• 20 September 2018, Midterm Grades
• 1 October 2018, Extended
• 5 October 2018, Alumni Weekend
• 6 October 2018, SAT@NCSSM
• 10 October 2018, PSAT@NCSSM/College Day
• 8-12 October 2018, IWeek
• 25 October 2018, Last Day for us
• 26 October 2018, Last Day, T1
• 1 November 2018, Exam Period Ends, Trimester break begins, 5PM.
• Both extendeds occur on Mondays, so it appears there will be no lab day schedules this trimester.

## Course Prerequisites

Really.... none. Point-and-click proficiency with a modern computer is nice, but this can be learned quickly if you are unfamiliar with it. Be able to open files, save files, and to use a web browser. Everything else you will learn in here from scratch. Good critical reading ability also helps. If you already know how to program, you should be in CSC424. If you are a programmer and want to learn how to make web apps, this is a great place. Please be a good citizen in this class and be helpful to your classmates.

## Get your Lappy Ready

You will use the following software items in this class. All are freely available. Install them right at the beginning of this class. The TAs can help you with this process.

• If you use Windoze, obtain PuTTy, a terminal emulator. If you are Mac or Linux, no action is required on this item.
• FileZilla will enable you to transfer files back and forth between your lappy and the departmental server. It works for Mac, Linux, and Windoze.
• Chrome Install this browser for its developer tools.
• Firefox Install this browser for its developer tools. Obtain Firebug and the developer tools from th e The Mozilla Addons Site

You will need a plain text editor. Several choices are available; pick the one you like the best. You will not want or need a word processor in this class. All work in this class is submitted as plain text, save for media files (images, audio, video) you might submit as part of a project. Your hallmantes who have taken CS courses here are familiar with these.

• Atom is a plain text editor that makes life good in this class. It works great for Mac, Windoze and Linux.
• VS Code is an excellent editor for all platforms.
• Notepad++ is great for Windoze users.
• If you are a mac or Linux user, you have the option of using vim. Place this file in your home directory, and name it .vimrc. It will give you sanity in programming classes.
    set tabstop=4
set et
set nohslearch
set backsapce=indent,eol,start

Type this exactly as shown.

## Class Materials

Your class website On the left, you will see directories the various months. These will contain the course calendars. The file basicStuff.php linked at the left will answer your most basic questions about this class.

The specs directory will contain specifications for all major projects.

The pages contains some sample web apps which you will find useful in this class. Take some time to check them out.

Materials may also be present on our internal server cs2.ncssm.edu. You will get an account on this server and you will learn how to interact with its command-line interface. You will be asked to post certain assignments and projects there.

This course will be on canvas as well. Canvas will be used for reading quizzes, and it provides a portal for you to upload programming assignments. All grades are entered into the canvas gradebook.

## Communication

Contact Information This can be found here.

My Google Calendar Use this to schedule appointments.

Class Structure This class is at once lecture and lab. It will have a big "dirty hands" component. You will learn about coding constructs and algorithms. When we run across these, we will work with examples and do calculations or write code. Here is what to bring to class.

• You, on time. Some quizzes will ask questions about reading for the class day. These will occur promptly at the beginning of class and will have a time limit.
• Your lappy. When you arrive, open the appropriate applications.
• Your power charger. It's no fun for your computer to shut down in the middle of class when it runs out of juice. We have power strips in our classrooms.
• A notebook: You should keep notes on paper; research reveals that the note-taking process enhances your learning. To find out why, click on the notebook link and find out. My experience reveals that this works very well for my students. Sometimes, we will put our computers at "third mast" so we focus on class discussion that does not require a computer.

The quality of this class depends on you. What makes this class fun and interesting is your involvement. When you find something mysterious speak up! There is only one dumb question: it is the question you walk out that door wishing you had asked. The eternal battle in our classes is that against saysquattery. What's that? A saysquat is a student who sits in class and who never says squat.

There will be in-class activities that you will do to gain an active command of the material. You will sit in a "pod" with classmates and can share ideas with them when doing these daily assignments.

When we do code examples, you will often see me asking you for your input. If you have an idea and are unsure, share it. This often kicks off a productive discussion. It gets your classmates thinking, and it gets them to chip in ideas.

I respond very quickly to your input. It is not unusual for a student question at the beginning of a class to cause me to drop my original plan and to do something entirely different that addresses that question. Your input and contributions really drive this class. I do not keep static course notes. I do things in real time.

If I am moving too fast, do not be afraid to ask me to slow down and to spend more time on a puzzling topic. Remember: This class is your class. Be a good stakeholder and citizen in it.

The Textbook I am the author of this live document. I will give you a link to it in class. It has been developed specifically for this class. The reading will help you understand what is happening in class.

If you see things that are baffling or you see a typo, let me know. I can edit the manuscript and upload a corrected version. It is formatted in PDF format, which can be read on on all platforms. I produce new examples each time I teach this class. You will see examples in the book that are different: look at these and you will have a broader context as we move along.

I strive for economy of thought. You will see lots of code examples. Copy these, paste them into a code window, and run them. . You can modify them and experiment with them to test your knowledge and to do explorations. You will not see a lot of the asides and "boxes" that plague committee-written textbooks. I try to take a clear path through the material.

Course Syllabus This page, along with the Specs Page, which contains complete information about grading and assignments, constitute the official course syllabus. Reading assignments and daily assignments will be in the course calendars; these are listed in the directories with month names at the left. We do use canvas and all grades will be maintained in the Canvas gradebook. Canvas will be programmed to compute grades according to the scheme outlined on the specs page. You should use your Google calendar to keep track of upcoming due dates for this and all of your other classes.

Working Offline The Working Offline page has directions. Make sure you prepare your computer as instructed above.

Web Apps pages, linked at the left, contains some useful web apps for this class. You are encouraged to look at them; by the end of this term you will know how to write something like these. One is a base converter which will be useful to you when we study the representations of numbers early in the term.

## Some FAQ for CS at NCSSM

What if I've never programmed before? You are in the right place, CSC 352, Web Development. The web development course is particularly suited to students who have never programmed before. You learn basic ideas about computers, how to navigate in UNIX, HTML5/CSS3, and then JavaScript. You will learn about delimitation, debugging, and the fundamental ideas of programming. All of this is done from complete scratch.

Are there extracurricular learning opportunities? Join the Computer Science club. You will make lots of friends who are interested in computer science and in programming competitions.

Is there a Linux culture in the land of the Unicorn? You bet. The most popular distro is Ubuntu, but you will find people running Arch Linux, Linux Mint, Fedora, and other distros. You can download and experiment with these. The halls of NCSSM abound with Linux fanatics.

Is there a uniform Linux environment for NCSSM students? Any NCSSM student can request an account on student computing server, cs2.ncssm.edu . If you are enrolled in an NCSSM CS course, your first homework will be to obtain and enable an account on this server. By using the server, you consent to its storage and netiquette policies. These are posted here.

What's important at NCSSM? Some fools will tell you "Chemistry!", "Math!", "Bio!", "Physics!" All will be wrong. Dead wrong. No, not "Literature", not "History." Forget these. What magic do we make? It is the magic of creating the new. Those fields mentioned above? Yes, they are important playgrounds. But creation is all. Take some time and watch some of these things. They will add to your life.

1. Chuck Jones, on Geting Started
2. Chuck Amuck. Prepare to laugh. Also absorb a serious message. He was a singular creative genius.
3. Randy Pausch, The Last Lecture. Yes. he does die. "It is what it is; we cannot change the cards we are dealt."
4. Picasso, on creativity, ohne wörter
5. Ferdinand, who understands what is important.
6. Learn about Tex Avery!
7. The act of creation: Rachmanivov[2] concerto

## Modern Teaching Technique

Sam Wu, NCSSM '09, UNC '11, UNC School of Medicine '15 gains knowledge of Java by giant-hammer blows. Note his successful trip through medical school, and his match as Dermatology resident at Eastern Virginia Medical School.

All of our students get instruction in the gladiatorial arts.