Apply     Visit     Give     |     Alumni     Parents     Offices     TCNJ Today     

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.

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 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 and memory utilization.

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.

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

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.

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.

* 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.
** The topic Security of Computers and Network is now a regular course offering, CSC 450 Computer and Network Security, and approved through the College-wide course approval process.