A first course in object-oriented programming for the Computer Science student. Emphasis will be on program specification, analysis, problem solving and implementation using an object-oriented language such as JAVA. Topics include definitions of classes and objects, algorithm development and methods, primitive and reference data types, arrays, and strings. More advanced topics such as exceptions and use of inheritance will be explored as well. Successful completion of this course with a C or better is required for further progress in Computer degree programs. Several major programming projects will be assigned to be completed outside of class and lab.
Prerequisite: MTH 172 Or MTH 175, Or CIS 100 and MTH 165, Or MTH 165 and CPT 101, Or MTH 165 and CPT 114, all with a grade of C or better
Course Learning Outcomes 1. Design algorithms that require conditional and repetitive logic. 2. Create a fault-tolerant computer program from an algorithm using the object-oriented paradigm following an established style. 3.Choose test data that evaluates all logic paths of the solution in order to debug programs. 4.Design programs that use inputs, outputs, and process numerical data. 5. Process data stored in single and multi-dimensional arrays, and arrays of objects. 6. Design programs that create and use classes, objects, and methods used as solutions to complex problems. 7. Identify the concept of Inheritance.
An introduction to basic data structures, and a continuation of CSC 101 for Computer Science majors. Topics include sequential lists, linked lists, stacks, queues, recursion, binary trees, searching and sorting. Other topics include algorithm analysis and design, inheritance, polymorphism. An object oriented language such as Java will be used to implement algorithm and further develop general programming skills. Students will be required to complete several programming projects outside of class.
Prerequisite: CSC 101 with a grade of C or better.
Course Learning Outcomes 1.Use a computer programming language to create Abstract Data Types such as a Sequential List, Linked List, Stack, Queue, Tree, or Binary Tree. 2.Design and develop a computer programming language solution to a problem using the appropriate Abstract Data Type. 3.Use Big-O Notation to evaluate the computing time analysis (complexity) of an algorithm written in a computer programming language. 4.Analyze functionality and effectiveness of various searching and sorting algorithms. 5.Use effective group problem solving skills on team projects and activities.
The student will learn how to program, interface and troubleshoot a modern embedded processor such as the Motorola 68HC12 in both C and Assembly Language. Microcontroller architecture will be stressed. Topics include Synchronous and Asynchronous Input/Output, Analog to Digital Conversion, Pulse Width Modulation, Timer/Counters, Interrupts and Parallel Port Programming. Laboratory work will focus on program development, implementation and debugging techniques. Several programming projects will be assigned to be completed outside of class and in lab. A final project and student presentation are required.
Prerequisite:MTH 165 with a C or better and CIS 200 or CPT 101 or CSC 101 or ENR 161 or ENR 157 with a C or better.
Course Learning Outcomes 1.Write low level program code in Assembly Language. 2.Write low level language program code in C-language. 3.Describe the architecture of a modern embedded microcontroller including features such as native integrated peripheral hardware or input/output (I/O) components. 4.Write procedures within applications that utilize the microcontrollers native integrated peripheral hardware or I/O components. 5.Solve common errors that arise in programming microcontroller I/O operations. 6.Write a bi-directional I/O communications procedure. 7.Write an interrupt based I/O device control procedure. 8.Apply C-language programming skills to solve a complex problem. 9.Apply Assembly language programming skills to solve a complex problem. 10.Use effective group problem solving skills on team projects or activities.
This course provides an introduction to the design of the digital computer. Topics include number systems, digital gates, Boolean Algebra, design and implementation of combinational and sequential circuits, decoders, encoders, multiplexors, flip-flops, counters, registers and memory devices. Laboratory experiments include building combinational and sequential circuits.
Prerequisite(s): CIS 200 or CPT 101 or CSC 101 with a grade of C or better.
Course Learning Outcomes 1. Demonstrate the use of binary arithmetic and number systems associated with the design of digital logic based systems. 2. Apply Boolean algebra as well as other common mathematical tools to simplify circuit design and analysis. 3. Build, test, and troubleshoot circuits, which incorporate discrete logic gates utilized in state-of-the-art digital computer systems. 4. Apply combinatory and sequential logic concepts to design complete digital solutions to complex circuit problems.
This course introduces the student to the basic elements of digital image acquisition and processing by examining how CCD's (charge coupled devices) function and how they are used in a camera to capture an image. Practical hands-on laboratory projects reinforce concepts while the student learns how a truly scientific grade, low noise CCD camera is built from ground-up using discrete components. The students problem solving skills are put to the test as they work in small specialized groups to attack challenging problems. Practical programming skills are developed as the student learns how to apply a high level programming language such as Java, C, Python and/or LabVIEW to facilitate in design, experimentation, data acquisition, image processing and analysis. Topics covered include: types of image sensors, performance characteristics, noise, digitization, scaling, color and gray scale rendition. This course is typically offered in the Spring, biannually.
Prerequisite(s): MTH 165 or higher and one of: CIS 200 or CSC 101 or CPT 101 or CSC 223, both with a grade of C or better.
Course Learning Outcomes 1. Use an appropriate application to analyze and describe the composition and quality of digital image in terms of signal resolution, noise content, and dynamic range. 2. Describe software techniques that may be employed to enhance the contrast, brightness, and sharpness of a digital image. 3. Describe both hardware and software techniques that may be used to reduce noise and increase the dynamic range of a digital image. 4. Explain why certain sensors (Frame Transfer, Full Frame and Interline, Front Illuminated versus Back-Thinned, Integrated Color Filter Array versus External Filters) are particularly well suited for specific applications.
A course designed to introduce the student to the Linux operating system. Topics will include system installation and configuration, basic system administration, system updates, network services configuration, printer configuration, system services, and scripting.
Prerequisite(s): CIS 200 or CSC 101 or CPT 101 with a grade of C or better or permission of instructor.
Course Learning Outcomes 1. Explain the function and structure of the Linux operating system 2. Perform basic and customized operating system installations 3. Apply basic system commands to manage processes and files 4. Perform basic system administration tasks on an operational system 5. Design and develop simple system administration scripts
This course presents the principles of computer programming using the C++ language. Topics covered include the use of variable types, expressions, control structures, pre-processor commands, functions, arrays, strings, pointers, structures, classes, objects, and files. Several major programming projects will be assigned to be completed outside of class and laboratory time. Students can earn credit for only one of the following courses: CIS 223, ITP 202, CSC 223.
Prerequisites(s): CPT 101 or CSC 101 or CIS 200 with a grade of C or better.
Course Learning Outcomes 1. Analyze a problem and define the best approach to a solution. 2. Define the input and output needs of the program specifications. 3. Write effective code using built-in and user defined functions. 4. Define an efficient design strategy for a given problem using functions. 5. Design a solution to a given programming problem using procedural paradigms. 6. Define the best variables and data types (structure and classes) to use in coding a program using the object oriented paradigm. 7. Demonstrate the use of data processing from sequential files by producing output to files in a prescribed format. 8. Explain how the program solution works to produce the output needed. 9. Differentiate procedural and object oriented programming concepts.
A second course in Java programming focusing on advanced language features. Topics will include Object Oriented Analysis and Design (OOAD), methodologies, automatic documentation generation using JAVADOC, Graphical User Interface (GUI) development, threads, database programming using Java Database Connectivity (JDBC), network programming using sockets and Remote Method Invocation (RMI), N-tier programming using Common Request Broker Architecture (CORBA), object serialization and remote objects, and collections. Students can earn credit for only one of the following: CIS 225, ITP 201, CSC 225.
Prerequisite: CSC 101 or CSC 223 with a grade of C or better
Course Learning Outcomes 1.Design object-oriented computer software using established techniques. 2.Utilize web-enabled documentation techniques for Java applications. 3.Implement graphical user interfaces (GUIs). 4.Develop multithreaded solutions to solve common concurrent processing problems. 5.Demonstrate the use of Collections to solve general categories of programming problems. 6.Construct networked software solutions. 7.Create database connectivity solutions. 8.Explain Java technologies utilized for distributed processing.