NCSSM has several offerings in computer science that are designed specifically for people who have never programmed before.
CS4040: Game Development & Simulation - Students will apply proper game design techniques to developing playable games in multiple formats. Students will learn foundational programming concepts with Ruby and associated libraries and use it to develop a text adventure game, 2D, and 3D programs and simulations.
CS4120: Computing for Everyone - This course is an introduction to basic programming skills and to the Python 3 programming language. Students will learn to develop and code solutions to problems consistent with challenges found in mathematics, science, engineering and the humanities. Note: the Durham residential offering may be provided in a synchronous remote format from Morganton faculty.
CS4200/MA4200: Cryptography - Learn the fundamentals of cryptography. Those without computer science skills can learn them through additional activities in this course and receive computer science credit. You can choose to have this course count towards graduation requirement credit in Mathematics or Engineering and Computer Science.
EE4100: Introductory Robotics - Use the LEGO EV3 hardware with industry-level software to program a robot that senses and responds to the environment in the project-driven class.
The following courses have prerequisites, or a student can take a placement test to demonstrate competence in the necessary skills. (see placement below).
CS4070/AR4070: Art, Technology, and Computing - This course asks students to expand on their definition of art to include technology as a platform for creativity. Students will be introduced to the resources in NCSSM's FabLab and our new Creative Technology Lab, which houses a Virtual Reality Painting Studio. Students will also learn electronics and programming to enable the use of the Arduino electronic platform to sense the environment and respond with light, sound, and motion.
CS4100 - Human and Computer Interaction - Whether you are designing a website, a phone app, or a software system, the more you know about humans, the more likely it is that you will create a usable product. This course is designed to introduce students to a user-centered approach to the design of software artifacts.
CS4240: Procedural and Object-Oriented Programming - This intermediate course develops procedural and object-oriented programming and problem-solving skills using Python and Java programming languages.
CS4300: Topics in Computer Science - Cybersecurity: This course will introduce and provide an overview of the basics of Cybersecurity and the value it delivers to an enterprise in this modern digitally connected world.
CS4250: Data Visualization - This course will provide you with the knowledge and practical skills necessary to develop a strong foundation for data visualization, and to design and develop advanced applications for visual data analysis. In particular, you will learn how to perform data visualization and analysis using data visualization libraries written for the Python programming language including Matplotlib, Seaborn and Pandas.
CS4320: Machine Learning - This course teaches basic machine learning concepts, algorithms and their applications using Python and associated software libraries. Applications may include implementation of decision trees, neural networks, and other frameworks. This course requires advanced programming skill and expects mastery of the Python programming language.
CS4280: Advanced Java - In this course we emphasize advanced programming beyond the AP syllabus, such as event driven GUI programming in Java FX.
CS4340: Data Structures with C - This course uses C to explore programming "close to the hardware" where knowledge of how data is stored and referenced, and means of efficiently organizing, retrieving, and using data, are important. This course is typical of what one would see at the undergraduate level and a high level of intellectual maturity is required.
CS4380: Algorithms - Students use the C programming language to study and implement basic data structures, including heaps, priority queues, and hash tables and the relevant algorithms and applications. Students choose and implement a case study of a related advanced topic.