ITCS Computer Science (ITCS)

ITCS 1010 Programming Logic 3 Credits

Prerequisite: ITIS 1005 or ITIS 1007, a grade of "SC" or better in MATH 0850 or placement test; or permission of instructor, This course provides an introduction to problem-solving techniques, the steps of the program development cycle, and fundamental skills needed for programming in any computer language.

Students will develop logic plans and create programs using core programming instructions to solve a variety of problems and will use one or more programming languages to gain experience with the complete program development process. The course includes an introduction to object-oriented and event-driven programming, and to the IDE (Integrated Development Environment).

(4.5 contact hours: 1.5 lecture, 3 lab)

ITCS 1011 History of Computing 2 Credits

Prerequisite: ITIS 1005 (can be taken concurrently) or ITIS 1007 (can be taken concurrently) or ENGR 1000 (can be taken concurrently) or permission of instructor.

This course traces the history of computational devices, pioneers, and principles from the early ages through the present. Topics include early computational devices, mechanical computation in the 19th century, events that led to electronic computing advances in the 20th century, the advent of personal computing and the Internet, and the rise of social networks. This course also includes a history of programming languages, electronic communication protocols, operating systems, processors, and computing platforms.

(2.5 contact hours: 1.5 lecture, 1 lab)

ITCS 1105 Web Programming I (CTAG) 3 Credits

Prerequisite: GRDS 1375 or ITCS 1010, ITIS 1102; or permission of instructor.

This course provides introductory and intermediate techniques using the current version of HTML (Hypertext Markup Language) to create and manage web pages. Students will explore ways of presenting text, data, and graphics in a browser based environment. Students will explore the use of several HTML editing tools to aid in site management.

(4.5 contact hours: 1.5 lecture, 3 lab)

ITCS 1820 Java Programming I 3 Credits

Prerequisite: ITCS 1010 or permission of instructor.

This course provides an introduction to application development, object-oriented programming, and the Java development system. Students will write object-oriented Java applications and applets using methods, variables, operators, strings, arrays, loops, selection statements, classes, inheritance, and encapsulation.

(5 contact hours: 1 lecture, 4 lab)

ITCS 1825 Programming I for iOS 3 Credits

Prerequisite: ITCS 1010 or permission of instructor.

This course introduces students to Apple's current development language and object-oriented programming concepts. Students will write programs using classes, methods, input/output, inheritance, and polymorphism for the iPhone/iPad.

(5 contact hours: 1 lecture, 4 lab)

ITCS 1870 Python Programming I 3 Credits

Prerequisite: ITCS 1010 or permission of instructor.

This course introduces students to the Python programming language. Students will write procedural and object-oriented applications. Student programs will include arithmetic operations, strings, functions, decisions and loops, and object-oriented constructs. (5 contact hours: 1 lecture, 4 lab)

(5 contact hours: 1 lecture, 4 lab)

ITCS 1880 R Programming I 3 Credits

Prerequisite: ITCS 1010, ITDB 1401, ITIS 1520, MATH 1550 or MATH 2130; or permission of instructor.

This course introduces students to the R programming language. Students will write procedural and object-oriented applications. Student programs will include arithmetic/statistical operations, strings, functions, decisions and loops, and object-oriented constructs. Students will read data into R, access packages, profile code, and present meaningful output of results.

(5 contact hours: 1 lecture, 4 lab)

ITCS 2010 Systems Analysis and Design 3 Credits

Prerequisite: ITCS 1010 (can be taken concurrently) or ITON 1205 (can be taken concurrently) or CNET 1100 (can be taken concurrently) or permission of instructor.

This course provides an in-depth experience of the business information systems development process, with emphasis on the investigation, analysis, and design phases. Students will study the role of the systems analyst, examine methodologies and apply tools used for system design, and, through participation in a team project and presentation, gain experience with the design of a business information system.

(4 contact hours: 2.5 lecture, 1.5 lab)

ITCS 2012 Discrete Structures 3 Credits

Prerequisite: MATH 1650 or higher, CPET 1120 or ITCS 1825 or ITCS 1820 or ITCS 1870; or permission of instructor.

This course provides an introduction to the foundations of discrete mathematics as they apply to computer science, and focuses on providing a solid theoretical foundation for further work. Topics include logic, set algebra, equivalence relations and partitions, functions, mathematical induction, cardinality, recurrence relations, basic combinatorial methods, and trees and graphs; with an emphasis on applications in computer science.

(3 contact hours)

ITCS 2080 Fundamentals of Software Engineering 3 Credits

Prerequisite: ITCS 1820 or ITCS 1825 or ITCS 1870; or permission of instructor.

This course introduces the basic principles and concepts of software engineering and provides the necessary foundation for subsequent SE courses at the upper division level. Topics include: basic terminology and concepts of software engineering; system requirements, modeling, and testing; object oriented analysis and design using UML; frameworks and APIs; client-server architecture; user interface technology; and the analysis, design, and programming of simple servers and clients.

(4 contact hours: 2.5 lecture, 1.5 lab)

ITCS 2105 Web Programming II 3 Credits

Prerequisite: ITCS 1105, ITCS 1820, ITCS 2120 (can be taken concurrently); or permission of instructor.

This course introduces intermediate and advanced techniques using various markup languages for the Internet in a microcomputer environment. Students will use previously mastered procedural and object-oriented techniques and concepts to develop complex programs using intermediate XHTML, CSS, XML, Internet programming languages, and other advanced techniques as the languages and protocols evolve. Students will also learn the vocabulary and process of group based code and user interface review. Students who have taken the prerequisite courses more than two years prior to attempting this course may wish to retake those courses before attempting ITCS 2105 to ensure current knowledge of the information and the profession.

(5 contact hours: 1 lecture, 4 lab)

ITCS 2120 JavaScript Programming I 3 Credits

Prerequisite: ITCS 1820 or ITCS 1825 or ITCS 1870, ITCS 1105; or permission of instructor.

This course introduces JavaScript programming in a hands-on microcomputer environment. JavaScript programming is used extensively in web page design to allow information to be processed on a web page before being sent to a web server for processing. Students will also learn the vocabulary and process of group based code and user interface review. Students who have taken the prerequisite courses more than two years prior to attempting this course may wish to retake those courses before attempting ITCS 2120 to ensure current knowledge of the information and the profession.

(4.5 contact hours: 1.5 lecture, 3 lab)

ITCS 2155 PHP Programming 3 Credits

Prerequisite: ITCS 1105, ITCS 1820, ITDB 1401 (can be taken concurrently); or permission of instructor.

This course introduces PHP Hypertext Preprocessor (PHP) technologies for the Internet in a microcomputer environment. Students will study intermediate and advanced HTML, server-side scripting techniques, processing of data to and from databases and non-traditional data formats, and other techniques to create dynamic web pages.

(6 contact hours: 2 lecture, 4 lab)

ITCS 2170 Introduction to ASP.NET 2 Credits

Prerequisite: ITCS 1010, ITCS 1105, ITDB 1401; or permission of instructor.

This course introduces ASP.NET programming for the Internet in a microcomputer environment. Students will study intermediate HTML, Web scripting, and other advanced techniques to create dynamic Web applications using server-side technology with ASP.NET.

(3.25 contact hours: 0.75 lecture, 2.5 lab)

ITCS 2188 Advanced Concepts in Web Development 3 Credits

Prerequisite: ITCS 1105, ITCS 2120, ITCS 2155, PHOT 2300.

This intermediate-level course provides students the tools to develop an automated workflow for website design and/or interactive design environments. Students will use multiple programming and site development techniques to create, test, and implement techniques to improve workflow efficiencies.

(5 contact hours: 1 lecture, 4 lab)

ITCS 2820 Java/Android Programming II 3 Credits

Prerequisite: ITCS 1820, ITDB 1401 (can be taken concurrently) or ITDB 1430 (can be taken concurrently); or permission of instructor.

This course provides advanced instruction in current standard Java program development methodologies and object-oriented programming with an emphasis on mobile application development. Students will use mobile class libraries and J2ME (Java 2 Micro Edition) to create applications for mobile devices.

(5 contact hours: 1 lecture, 4 lab)

ITCS 2821 Java/Android Programming III 2 Credits

Prerequisite: ITCS 2820.

This course provides advanced instruction in Android's current development environment with an emphasis on designing, creating and publishing professional Android mobile applications.

(3.5 contact hours: 0.5 lecture, 3 lab)

ITCS 2825 Programming II for iOS 3 Credits

Prerequisite: ITCS 1825, ITDB 1401 (can be taken concurrently) or ITDB 1430 (can be taken concurrently; or permission of instructor.

This course provides advanced instruction in Apple's current development language methodologies and object-oriented programming with an emphasis on mobile application development. Students will use mobile class libraries and the Apple Coco class library to create applications for mobile devices.

(5 contact hours: 1 lecture, 4 lab)

ITCS 2826 Programming III for iOS 2 Credits

Prerequisite: ITCS 2825.

This course provides advanced instruction in Apple's current development environment with an emphasis on designing, creating and publishing professional iOS mobile applications.

(3.5 contact hours: 0.5 lecture, 3 lab)

ITCS 2848 .NET Programming 3 Credits

Prerequisite: ITCS 1820 or ITCS 1825 or permission of instructor.

This course provides advanced instruction in application development for the .NET programming environment. Students will apply previously acquired programming knowledge from prerequisite programming classes to enhance object-oriented programming expertise. Students will learn various skills, including the Visual Studio Integrated Development Environment, reflection, threading, regular expressions, database connectivity, web application, and more to create professional applications.

(5 contact hours: 1 lecture, 4 lab)

ITCS 2870 Data Structures 4 Credits

Prerequisite: CPET 1120, ITCS 1820, MATH 2500; or permission of instructor.

This traditional computer science course introduces students to advanced data structure concepts including objects and inheritance, algorithm analysis, recursion, stacks, queues, lists, randomization, trees, sorting and searching, hash tables, and graphs and paths.

(6 contact hours: 2 lecture, 4 lab)

ITCS 2873 Python Programming II 3 Credits

Prerequisite: ITCS 1870 or permission of instructor.

This course introduces intermediate and advanced aspects of the Python programming language. Students will explore object-oriented concepts of encapsulation, inheritance, and polymorphism; exception handling; iterators; decorators; and networking and remote data handling.

(5 contact hours: 1 lecture, 4 lab)

ITCS 2875 Computer Architecture and Organization 3 Credits

Prerequisite: ITCS 2870 or ITCS 2873; or permission of instructor.

This course provides a study of the principles of Von Neumann computer architecture, data representation, and memory addressing as well as processor organization and its impact on system and application software. It also includes discussion and utilization of assembly language and computer processor simulators.

(5 contact hours: 1 lecture, 4 lab)

ITCS 2900 Special Topics in Information Technology/Computer Science 1-4 Credits

These specialized courses provide in-depth examinations of Information Technology Computer Science/Programming topics not covered in detail elsewhere in the curriculum.

(1-4 contact hours)