ITCS Computer Science (ITCS)

ITCS 1010 Programming Logic 3 Credits

Prerequisite: ITIS 1005 (can be taken concurrently) or ITIS 1007 (can be taken concurrently), 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 1120 C Programming for Technicians 3 Credits

This course introduces fundamental structured C and C++ programming concepts as applied to technical problem solving and hardware programming. Students will develop applications using branching, looping, disk input/output, arrays, pointers, operators, and structures. They will also develop, test, and debug hardware control and monitor applications in the laboratory. No previous programming experience is necessary. This course is cross-listed as CPET 1120. Students who have taken this course under the alternative course ID should not take this course..

(5 contact hours: 2 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 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 Programming for Data Analytics 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, 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: ITCS1820 or ITCS1870 or permission of instructor.

This course introduces the basic principles and concepts of software engineering (SE) and provides the necessary foundation for subsequent SE courses at the upper division level. Topics include basic terminology and concepts of software engineering, working with project teams to contribute to larger systems, developing documentation, examining requirements tradeoffs, and analyzing large systems from multiple perspectives.

(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 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 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 2848 .NET Programming 3 Credits

Prerequisite: ITCS 1820 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: ITCS 1870, 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 and physical devices.

(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)