Computer Programming

Computer science is a study of the structure, theory and application of computers and computer programs. It includes the study of algorithms, the representation and organization of information, the management of complexity, and the relationship between computers and their users. Computer science is a mathematical discipline. It utilizes mathematical techniques for abstraction and representation of complex systems. From another perspective, computer science is an engineering discipline concerned about the design and construction of systems in order to solve complex problems.

Computer science department homepage

Minor requirements

CSC 171QR - Computer Science I
(4 credits) (NWCore option under Quantitative Reasoning) This is the firstin a two-semester sequence of courses that introduces students tofundamental aspects of the field of computing; focusing onproblem-solving, software design concepts and their realization ascomputer programs. Topics include procedural abstraction, controlstructures, iteration, data types and their representation. Anintroduction to a high-level language, for the purpose of gaining masteryof these principles, will be provided in lectures and hands-on laboratoryexperiences.Prerequisite: C- or better in MAT090, an ACT math score of 20 or above(SAT 510 or above), or a passing score on the MAT090 placement exam.
CSC 172WI - Computer Science II
(4 credits)(Writing intensive) This course moves students into the domain of software design, introducing principles that are necessary for solving large problems. Here, the classical software design process serves as a basis for treating such topics as abstract data types, specifications, complexity analysis and file organization. Basic data structures and transformations are introduced as representative of the fundamental tools that are used to aid in this process. A high-level language will be used for the purpose of gaining mastery of these principles through lectures and independent hands-on laboratory experiences.Prerequisite: CSC171.
Choose one course: 4
CSC 220 - Web Development
This course will introduce the basics of web development. Various languageswill be used to design and develop a front-end web page including HTML, CSS,and JavaScript. This will include a discussion of website accessibilityrequirements and other legal and ethical considerations. The basics ofinteracting with a back-end server and database may also be explored.Co-requisite: CSC172WI. (4 credits; alternate years, consult department)
CSC 291 - Database Management Systems
This course examines database concepts, theory, design and management. Emphasis will be on the relational model. Topics will also include normalization, query languages, database recovery and security aspects. This course will include experience with a relational database system and programming database access into computer applications via a high-level programming language.Prerequisite: CSC171.(4 credits; alternate years, consult department)
CSC 321 - Principles of Software Engineering
Software engineering is the process used to gather requirements for a software solution from a user and develop a piece of software to meet the needs of that user. Several things usually contribute to a successful project including proper version control, requirements gathering, software design, software lifecycles, code reviews as well as testing and maintenance of the software. This course will cover those topics and ask students to work on a team to create a large software project to demonstrate mastery of the topics covered in class. Prerequisite: CSC 172WI. (4 credits; alternate years, consult department)
Choose one course: 4
CSC 270 - Computer Organization
This course explores architecture and computer design issues in modern computers. Part of the course is spent looking at the basic building blocks used to design and build a computer. The rest of the course deals with how to work with the computer at the level of the central processing unit, main memory and registers. Programming assignments are done in assembly language to see what commands the computer really understands.Corequisite: CSC172.(4 credits; alternate years, consult department)
CSC 351 - Data Structures
This course deals with data structures and their algorithms. Emphasis is given to good data abstraction and efficiency. The data structures covered include arrays, linked lists, trees, graphs and strings. Other topics covered may include design patterns, analysis of algorithms, and complexity classes. Programming is done in an object-oriented language.Prerequisite: CSC172.(4 credits; alternate years, consult department)
Any elective course at the 200 level or higher.

Total credits required: 20