The College of New Jersey Logo

Apply     Visit     Give     |     Alumni     Parents     Offices     TCNJ Today     Three Bar Menu

Special Topics Courses

Below is a list of all the special topics courses that the Computer Science Department has offered in the past few years. These courses satisfy major option requirements, and their content is highly specialized to various sub-fields of computer science.


Fall 2023: CS III, John DeGood
This course expands on the principles and techniques of software development covered in CS I and CS II: how to write software that is reliable, secure, modular, and reusable. Topics include abstraction, secure programming, the software development lifecycle, version control, scripting, and parallel processing.

Spring 2023: Secure Coding, John DeGood
A comprehensive introduction to secure software design and implementation. The student will learn to approach software security from a design perspective, to use design patterns for secure code, and to write, test, and debug programs using secure programming techniques. Topics of this course include domain-driven design principles; application security; system software security; cloud security; the zero trust security model; failures and exception handling; and problems with legacy codebases. Students will demonstrate their knowledge through hands-on programs, exercises, and case study assignments.

Spring 2023: 3D Game Development, Sharif Shahnewaz Ferdous
This course covers all aspects of 3D game development using popular game development platform Unity. The topics include modeling, C# scripting, light, camera, collisions/ physics, audio, character animation, GUI, shadows, level generation, and deployment in windows, linux, android, and virtual reality systems (e.g., Oculus, HTC Vive, Google Daydream, etc.)

Fall 2022: Information Systems Security, John DeGood
This course provides an overview of security challenges and countermeasure strategies in the information systems environment. Topics include terms, concepts, elements, and goals incorporating industry standards and practices with a focus on the confidentiality, availability, and integrity aspects of information systems. The course is designed to provide a rich learning experience through the use of discussions and hands-on exercises. Learning is reinforced with a course-long project that provides an opportunity to apply the concepts covered throughout the course to a real-world scenario. Course topics will cover a majority of the objectives of the CompTIA Security+ certification exam.

Spring 2021: Smart Grid Communication Networks, Uddipan Das
This course will introduce various aspects of information-sharing and communication networks in smart grids. This course will cover what defines smart grids, introduction to power systems (transmission, generation, and distribution), the role of information and communication technologies (ICT) in smart grids, and topics of current research and application in the area of smart grid communication networks. Students will be introduced to the NS-3 simulator, a discrete event network simulator, in this course. This simulator will allow students to design and implement communication models, applicable for smart grids, using C++

Fall 2020:  3D Game Development, Sharif Shahnewaz Ferdous
This course covers all aspects of 3D game development using popular game development platform Unity. The topics include modeling, C# scripting, light, camera, collisions/ physics, audio, character animation, GUI, Terrain, shadows, level generation, and deployment in Windows, Linux, Android, and Virtual Reality (VR) systems (e.g., Oculus, HTC Vive, etc.).  The gaming and VR industry is expanding rapidly. Knowledge of game development can open doors for job opportunities in gaming industries as well as many research opportunities. As part of the Collaborating Across Boundaries initiative at TCNJ, students in CSC 470 will work closely with peers from COM 487 – Student-Faculty Advanced Research course, taught by Dr. Hu where she will focus on using VR for social, cultural, and health issues. Therefore, upon completion of CSC 470, students will acquire a deeper understanding of different social, cultural, and health issues and make VR games to address those.

Spring 2020:  Natural Language Processing, Michael Bloodgood
This course provides an introduction to NLP (Natural Language Processing). The major aspects of automated language processing will be covered, including foundational methods for computational processing of words, syntax, and semantics. In addition, students will be introduced to major applications of NLP technologies, including information extraction, question answering, and machine translation.

This course is now a regular CS Option offering – CSC 427: Natural Language Processing.

Spring 2019:  Machine Learning, Michael Bloodgood

Machine learning is when computers learn from patterns in previously observed data how to make useful predictions about new data. This course will provide an introduction to machine learning. The course will cover mathematical and computational foundations of machine learning algorithms. Supervised machine learning algorithms such as support vector machines and neural networks will be covered, as well as applications.

This course is now a regular CS Option offering – CSC 426: Machine Learning.

Spring 2019:  3D Game Development, Sharif Shahnewaz Ferdous

This course covers all aspects of 3D game development using the popular game development platform Unity. Topics include modeling, C# scripting, light, camera, collisions/ physics, audio, character animation, GUI, terrain, shadows, level generation, and deployment in Windows, Linux, Android, and virtual reality systems (e.g., Oculus, HTC Vive, Google Daydream, etc.).

Spring 2018:  HPC Systems Design and Implementation, Shawn Sivy

This course will explore what defines a high performance computing system. The components of a typical HPC system ‐ including head nodes, compute nodes, communications interconnects and resource scheduling & provisioning software ‐ will be examined in detail. The hands‐on portion of the course will allow students to build their own basic HPC cluster in a virtual environment using open source clustering software. The course will also discuss typical problems that can be solved using HPC systems.  Example cluster‐enabled applications will be built to demonstrate the benefits and limitations of using HPC systems over traditional desktop or single server computing.

Spring 2017:  Semantic Multimedia Analysis, Sejong Yoon

In this course, students will learn about both classic and state-of-the-art semantic information analysis algorithms and techniques for multimedia data. The course will focus on introducing wide variety of methods used in modern multimedia analysis-based software development. Topics covered include low- and mid- level feature extraction, spatio-temporal models, multimodal analysis, and affective computing. If time permits, we will also explore how deep learning-based techniques can be applied in this domain.

Fall 2016:  Natural Language Processing, Michael Bloodgood

This course provides an introduction to NLP (Natural Language Processing). The major aspects of automated language processing will be covered, including foundational methods for computational processing of words, syntax, and semantics. In addition, students will be introduced to major applications of NLP technologies, including information extraction, question answering, and machine translation.

Fall 2016:  Mobile Application Development, Ying Mao

Mobile devices are becoming ubiquitous along with the high demand for mobile application serving millions of end-users. In this course, students will learn to use the Android Development Platform to develop mobile applications. Topics covered will include activities, intents and fragments; user interface design; Android views; services and content providers; location and maps; networking on mobile devices; permission control.

Spring 2016:  Machine Learning and Its Applications, Vinayak Elangovan

Machine learning has evolved from artificial intelligence and is being applied in various domain applications, catalyzing major breakthroughs in recent years including in self-driving vehicles, smartphones, facial recognition, email spam filtering, smart and personalized web search, cloud computing, and gene analysis. The objective of this course is two-fold. The first objective is to provide a broad introduction into the background of machine learning methods and its principles. The second objective is to provide the students with an understanding of the potential of machine learning methods, and hands-on experience in how they can be applied to solve real-world problems. This course includes theoretical aspects of supervised and unsupervised learning methods, discussions of case studies and applications of machine learning in different domains including pattern recognition, data analysis, knowledge extraction, Optical Character Recognition (OCR), and other contemporary applications.

Spring 2016 and 2019:  Advanced Browser Technologies, Mark Russo

Web browsers have been transformed from simple hyperlinked document rendering engines to full-featured application development platforms. This hands-on course will review core topics in computer science and investigate how each is represented as part of modern web browser applications. Topic areas include: a survey of programming languages and where JavaScript fits; networking, sockets, request-response protocols and persistent full-duplex connections; multitasking models and the browser’s ability to perform multithreading and background task execution; computer graphics, implementations of 2D and 3D models and hardware acceleration; databases and local storage capabilities; and application development toolkits including debugging, network analysis, memory utilization, ECMAScript, Canvas API, asynchronous execution, websockets, modules, document object model, web workers, web storage API, scalable vector graphics, and prototype inheritance.

Spring 2014 and 2016:  Human Computer Interaction, Andrea Salgian

This course will introduce students to the fundamental concepts and the latest technologies used in the field of human-
computer interaction, including usability, design principles, interaction styles, and the development process. By the end of the course, students will be able to analyze the usability of a computer system, will know how to apply the guidelines and principles of human-computer interaction and will understand the basic concepts behind traditional and non-traditional human computer interaction styles.

This course is now a regular CS Option offering CSC 355: Human Computer Interaction.

Spring 2013 and 2015:  Cloud Computing, Peter DePasquale

This course will explore the cloud computing paradigm that has been exploding in popularity in the last few years.
Students will examine the offerings of various cloud vendors and develop software that will run on “the cloud”. We
will also explore the various cloud service paradigms: SaaS, PaaS, and IasS. We will be working extensively both the
department’s cloud offerings and with the Amazon Web Services (AWS) cloud. One or more field trips may be
required as part of this class. Some programming work is required in Java, PHP, Ruby, Python, Android, iOS, .NET, or
Node.js. You must have experience in one of these platforms to take this class. Advanced UNIX skills are a
requirement.

Spring 2015:  Computer Forensics, Elizabeth Carter 

This course will explore cybercrimes and cybercrime law, the process behind digital investigations and how to perform a digital investigation, file system forensic analysis and acquiring digital evidence on different platforms, network forensic analysis and evidence acquisition including traffic analysis, and data mining with respect to Computer Forensic data. Students will receive be assigned activities and projects where they will practice the analytical and investigative methods taught. Projects will present students with investigative scenarios where they will need to analyze system(s) to gather forensic evidence as though they were performing an actual investigation.

Fall 2014:  Mobile Computing, Deborah Knox

Recent scholarly conference presentations and common news articles alike highlight that development of mobile applications is a key focus in industry today. Whether motivated by the entertainment and financial value of mobile games or focused on the intrinsic value gained by extending enterprise apps to mobile platforms for companies throughout the business world, computing professionals recognize that mobile app development is a technical asset. This course provides opportunity for students to enhance their understanding and gain practical experience in mobile app development. Students will develop native applications for iOS and Android platforms, exploring typical lifecycle phases such as obtaining product insight, designing and developing software, integrating instrumentation, testing, deployment, and management. The student experience will be a combination of peer-led seminar presentation and discussion of readings/exercises from course texts and other resources, and team-based application implementation.

Fall 2013 and 2014:  Algorithmic Techniques in Computational Biology, Dimitris Papamichail

This course will cover theoretical and practical components of genomics and bioinformatics. The major topics will include mapping and sequencing genomes, sequence alignment of nucleic acids and proteins, haplotype maps, analysis of complex traits, parallel profiling of gene expression, proteomics, phylogenetic analysis, and data mining. The laboratory will begin with the in silico analysis of gene families, continue to the formulation of a testable hypothesis about gene function, writing a mini-grant for peer review, testing of the hypothesis in a model organism, and conclude with a formal presentation of the data generated during the semester. This course is best suited for undergraduates who wish to continue with a career in basic science or biomedical research.

This course is now a regular CS Option offering – CSC 448: Algorithms in Computational Biology.

Fall 2012:  Social Computational Systems, Monisha Pulimood

There are many scientific problems that computers cannot yet solve despite their ability to handle large computations and data sets. This course investigates the emerging and growing field of social computational systems that enable and support computations carried out by groups of people, leveraging abilities that computers do not yet have but that are innate to humans, such as intuition, superior visual processing, and an understanding of the real world. Students will consider what types of problems are amenable to crowdsourcing approaches and how the “wisdom of crowds” effect can be utilized to accomplish tasks that are easy for human beings but difficult for computers in order to solve large computational problems. They will gain hands-on experience in open source development as they design and implement a module of such a system.

Fall 2009 and 2010 and Spring 2010 and 2011 Conducting Robots*, Andrea Salgian

Spring 2009:  Security of Computers and Networks, Jikai Li

This course examines current concepts and practical techniques in computer and network security. In addition to participating in a broad discussion of system security, students gain hands-on experience in diagnostic and development techniques. Students apply their depth of understanding in a broad array of computer science areas, such as computer architecture and organization, operating systems, networking, and software design to the security projects developed in this course.

This course is now a regular CS Option offering – CSC 450: Computer and Network Security.


* The topic Conducting Robots was an interdisciplinary course offered as part of the Creative IT grant for which Salgian was the PI. It was team taught with faculty from Mechanical Engineering, Interactive Multimedia and Music, and cross-listed in those programs.

Top