Getting Started in Computer Science at NCSSM
2017-18
Where do I start? If you have never programmed before, you should begin with any of these courses, which are designed specifically to be a starting point for someone new to programming. The only prerequisite to these classes are good critical reading skills, and an interest in computing.
These class will teach you these essentials, the Big 5, which are common to all computer languages. In all of these classes you will learn about debugging, the fine art to tracing a problem to its roots and extirpating it. They are all "hands-dirty" experiences that will ask you do DO rather than to FOLLOW..
- CSC 352, Web Development. This introduces programming via the web. You will learn to crate interactive web pages ans web apps.
- E 316, Introduction to Robotics. This class uses the Lego Mindstorm platform along with LabView to control robots to get them to do specified tasks.
- CSc 302, Computing with Engineering Applications. You learn to program in MatLab and use it to solve an applied problem in environmental engineering.
What's the big deal? In all of these three introductory courses, you will learn about these foundational concepts, the "Big 5" of programming.
- Objects This refers to items stored in memory. You can obtain data from them by sending them messages. Objects belong to species called types.
- Variables Variables are names that refer to objects. Variables have scope, or lifetime. They are stored in a data structure called a symbol table. The Blofeld Principle says variables should not outlive their usefulness, or they become a form of pollution.
- Functions Functions allow you to store a procedure under a name. Doing something over and over again? Wrap it in a function!
- Conditional Logic This allows programs to make decisions based on the values held by variables in the visible symbol tables.
- Iteration Iteration causes programs to run a chunk of code some specified number of times or while some condition holds.
If you do not have a firm grip on the Big 5, you should start at the beginning.
I have programmed before, what do I do? The course CS424 is our Procedural Programming course. By and large, it is a skill-building experience. We will blithely assume you can cope with the Big 5. The first course is "basic training." Yeah, you can now bench 100 lbs or perform a simple plié.
This course will amp up your computing powers and challenge you with devililsh puzzles. After this, you can manage to bench 150 or to do an en pointe pas de deux.
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 can exempt procedural programming if you wish. 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.
Life After Procedural Programming (424) You can do the any of thefollowing.
- Take the Java sequence 426-428.
- Take Databases
- Take Data Structures I (Largely C programming), then Data Structures II or III; these are sibling courses and one is not a prerequisite for the other. They can be taught in C, Python, or Java.