What's here?

Useful information in the navigation area on the left includes the following.

• The outcomes folder gives learning outcomes for each class.
• The syll folder gives a typcial course syllabus for each class. Some details in these may be overriden in your instructor's local guide to the class.
• The file ap.php discusses the Advanced Placement Exam in Java.

Getting Started in Computer Science at NCSSM

Where do I start? If you have never programmed before, you should begin with CS352, which is designed specifically to be a starting point for someone new to programming. This course will have these major components.

The only prerequisite to this class is good critcal reading skills, and an interest in computing.

This class will teach you these essentials.

• Linux and the Command-Line Environment You are used to interacting with your file system using a graphical usr interface, and you organize your data into folders and files. In Linux, we do the same thing, but we do so by issuing commands into a termianl window. You will become conversant with editing managing files in this environment. Most websites are created and maintained on linux servers. Also, if you take more programming courses here or at The Big University, this skill will come in very handy.
• HTML/CSS HTML (Hypertext Markup Language) controls the structure of web pages, and CSS (Cascading Style Sheets) control their apperance. You will learn how to create a static web page using these two tools. You will also learn how to use the browser debugging tools to detect and get rid of errors.
• JavaScript JavaScript is a Turing-complete programming lanaugage that will enable you to create dynamic web pages that respond to user interaction. You will learn to program in this language and use it to make interctive web pages.

There will be several projects you will complete. This class is at one lab and lecture; you will have plenty of opportunity to get your hands durty writing code. You are also strongly encouraged to particupate in the the class. Asking questions, seeking out knowledge, and sharing it with with the class are strongly encouraged.

I have programmed before, what do I do? To be eligible for advanced placement of any kind, you must take the CS placement test. You need to be conversant in any Turing-complete language, and you must demonstrate skill in programming at the UNIX command line. You will need to take a test on this during orientation.

If you are a good programmer, learning the UNIX command line is not that difficult. You can see the relevant chapter here. Download, read and understand it before the term starts. The Learning the Shell pages at linuxcommand.org is a good online resource. If you are an NCSSM student, you can request an account on our student computing server. Just see one of the CS instructors and you can be "created" in just a few minutes.

You can do an install of linux on a USB drive, and use this to practice.

If you have programmed in a Turing-complete language, we recommend you begin in CSC 402. You will be asked to write a project that demonstrates your mastery of the languge you know, in addition to passing the UNIX test. Allow a few hours to learn to use Linux.

What about AP Computer Science 'A'? To attempt to take the AP exam, you should take CS 424, 426 and 428. You can take the exam after CSC426, but you should do some work outside of class with the guide so you get the topics that are addressed in CSC 428. See the document ap.php linked on the left to learn more, and to know exactly what to do to properly prepare for the exam. Currently (2016-17) the AP 'A' exam is based upon the Java language.

What if I have scored 4 or 5 on the AP Java Exam? You should begin in CSC 426. No AP classes do the cool stuff we do with event driven GUI programming in Java FX; the 426 course is a one-of-a-kind offering which is done at NCSSM. It is also very unlikely that you know how to use lambdas or Java's functional programing interface. You need to catch the event-driven train and learn about lambdas. You will also learn about fileIO and proper exception handling. It is unlikley you have studied streams, filtering and Java's new functional programming features. These come out in CSC 428.