Applied Computing Course Descriptions

56:137:500 Introduction to Programming for Computational- Hybrid Course- (1) students registered for this course will need to attend class at Rutgers-Camden 3 times during the semester (once for the first lecture, and then two more times for exams/projects, (2) each lecture will be live streamed, and (3) students will need to be present online via Sakai during the lecture (Thursdays, 6 to 8:40pm) because the professor intends to use a flip classroom approach which will require students to work on quizzes and problem solving during class. 

56:137:500 CS Essentials I (3 credits)
Description: Introduction to programming and object-oriented design in Python/ Fundamental programming constructs like conditional execution, iteration, recursion, basic data types and object-oriented programming, and exception handling. Problem-solving: modeling and algorithm development. Modules and application programming interfaces (APIs), e.g. for graphs and regular expressions. Software design and maintenance: command-line interfaces, debugging and unit-testing, and software version control.

56:137:501 CS Essentials II (3 credits)
Prerequisite: 56137:198:xx1
Description: Programming with data structures and algorithms. Introduction to algorithms, data structures, and algorithmic paradigms: searching, hashing, sorting, and dynamic programming. Introduction to scientic computing (including matrices and multimedia) with MATLAB. Software engineering and integration: makeles and databases.

56:198:510 Applied Algorithm Engineering (3 credits)
Prerequisite: 56:198:xx2 or equivalent
Description: This course provides practical access to the topic of algorithms, with greater emphasis on design than analysis. The initial third of the course covers topics in formal foundations of Computer Science, such as counting and inductive proofs. The remaining two-thirds of the course will focus on algorithms most relevant to real applications, such as graph algorithms and combinatorial search and heuristic methods, and the appropriate choice of data structures for such algorithms. Specic examples will be used to illustrate the process of formulating a real-world problem as one to which well-known algorithmic paradigms can be applied. There will be a heavy emphasis on implementation projects.

56:198:546 Computer Networks (3 credits)
Prerequisite: 56:198:xx3 or equivalent
Cross-listed with 50:198:446 and 56:198:546
Description: Introduction to computer communication networks, including physical and architectural components, communication protocols, switching, network routing, congestion control, and ow control. End-to-end transport services, network security and privacy. Networking software and applications. Network installation, testing and maintenance.

56:198:551 Database Systems (3 credits)
Prerequisite: 56:198:500 or equivalent
Cross-listed with 50:198:451 and 56:198:551
Description: Relational database theory and practice, including database design. Database concepts, relational algebra, data integrity, query languages, and views. Introduction to object-oriented databases. Application project with a practical database management system.

56:198:556 Computer Graphics (3 credits)
Prerequisite: 56:198:xx2 or 50:198:213 or equivalent
Cross-listed with 50:198:456 and 56:198:556
Description: Graphics systems and imaging principles, graphics programming using packages like OpenGL, input devices and interactive techniques, animation techniques, geometric transformations and modeling in two and three dimensions, viewing in 2D and 3D, lighting and shading, fundamental graphics algorithms (such as clipping, hidden surface removal etc.).

56:198:575 Cryptography and Computer Security (3 credits)
Prerequisite: 56:198:xx3 or equivalent
Cross-listed with 50:198:475 and 56:198:575
Description: Secret-key cryptography, public-key cryptography, key agreement, secret sharing, digital signatures, message and user authentication, one-way functions, key management; attacks; practical applications to computer and communications security.

56:198:549 Network Coding (3 credits)
Prerequisite: 56137:198:xx3 or equivalent
Cross-listed with 56:198:xx4
Description: Introduction to theoretical foundations and applications of network coding, including content distribution, peer-to-peer design, and enabling high-throughput wireless networks.

56:198:552 Information Retrieval (3 credits)
Prerequisite: 56:198:xx3 or equivalent
Cross-listed with 56:198:xx5
Description: Construction of inverted indexes for document collections; Boolean retrieval and rank-ordering of documents for search queries; Probabilistic models for scoring relevance and text classication; Web search, web crawlers and link analysis.

56:198:559 Digital Image Processing (3 credits)
Prerequisite: 56137:198:xx2 or equivalent
Cross-listed with 56:198:xx6
Description: Fundamentals of digital images, commonly used intensity transformation techniques such as image smoothing and image sharpening, Fourier transforms for image altering, Image segmentation and registration, Image restoration and reconstruction, and Image compression. Programming assignments using software such as MATLAB will illustrate the application and implementation of digital image processing.

56:198:548 Security in Mobile Computing (3 credits)
Prerequisite: 56:198:xx2 or equivalent
Cross-listed with 56:198:xx7
Description: Two topics in mobile computing are addressed. Security in mobile applications: strategies of how to develop and install applications on a mobile device, e.g. smart phone, to access an enterprise system so that the security of the device and system would not be compromised. Security in Internet-based computing, often termed as cloud computing: issues and related strategies of how to balance the service, security and cost of an enterprise system involved in computing via Internet, e.g. how to release medical treatment records to a client for a research purpose without patients' privacy being compromised, with a security overhead of reasonable cost.