Course Descriptions CSCI 1105   Introduction to Computer Programming
CREDIT HOURS: 3
This course provides a general introduction to computer programming. The main focus is on programming skills and how to apply these skills in solving a variety of problems. Procedural programming concepts are stressed.
NOTES: Students who complete CSCI 1110 with a grade of C or greater BEFORE completing CSCI 1105 will not receive credit for taking CSCI 1105.
EXCLUSIONS: INFX 1600X/Y.18, CSCI 1100.03, grade C or higher in CSCI 1110.03

CSCI 1107   Social Computing
CREDIT HOURS: 3
A hands-on course on technologies and the underlying infrastructure for social computing, including digital collaboration media, social networks and visualization, and their social impact. Students will use various applications, such as Twitter, YouTube, and wikis to examine their functionalities, and explore infrastructure technologies including databases, computer networks and Web-servers that facilitate their execution.

CSCI 1108   Introduction to Experimental Robotics
CREDIT HOURS: 3
This course is an introduction to computing in the real world, experimental evaluation, and basic team work and project management. These themes are explored through the study of the challenges and techniques for modeling, designing, and programming robotic systems to perfom complex tasks in a changing and uncertain environment.
FORMAT: Lecture

CSCI 1109   Practical Data Science
CREDIT HOURS: 3
This course will provide students with a practical overview of the world of data science research. Through hands-on use of Python’s data science libraries and publicly open datasets students will be exposed to the research methods and cutting-edge analyses used to effectively manipulate, process and investigate data from diverse disciplines.
EXCLUSIONS: CSCI 2203.03

CSCI 1110   Introduction to Computer Science
CREDIT HOURS: 3
This course provides a general introduction to computer science and the hardware and software of computers. The main focus is on programming skills and how to apply these skills in solving a variety of problems. Algorithmic concepts, linear data structures are emphasized.
NOTES: This course assumes that the student has some programming experience.
FORMAT: Lecture
EXCLUSIONS: CSCI 1101.03

CSCI 1120   Introduction to Computer Systems
CREDIT HOURS: 3
This course introduces some key concepts in computer systems. Students will learn fundamental systems concepts and apply them to explain how the hardware and software environment affects program behaviour. Topics include data and program representation, program translation, operating systems, software engineering, and networking.
FORMAT: Lecture
EXCLUSIONS: INFX 1615.03, INFX 1616.03

CSCI 1170   Introduction to Web Design and Development
CREDIT HOURS: 3
This course introduces students to key web concepts and skills for designing, implementing, and maintaining web content. Topics include introduction to the Web, UI and UX best practices, hypertext markup languages such as HTML, style sheets, client side programming, multimedia foundations, dynamic content and web content organization and maintenance.
NOTES: This course assumes that the student has some programming experience.
FORMAT: Lecture
EXCLUSIONS: CSCI 1206.03, INFX 1606.03

CSCI 1200   Introduction to Computing for Non-Majors
CREDIT HOURS: 3
This is a course of technical computer literacy. Students can expect to learn about computers in a general way and how computers affect the way we live and work. Students will be given an opportunity to become familiar with typical applications of software such as word processors, spreadsheets and database applications. Other topics will include the use of the internet, creation of web pages, and simple programming concepts. No previous computer experience is required. This course is open to Arts and Social Sciences and Health Education students only.
NOTES: This course cannot be counted towards the Bachelor of Commerce or a Minor in Business.
CROSS-LISTING: ASSC 1000.03

CSCI 1206   Web Design and Development for Everyone
CREDIT HOURS: 3
If you are curious about how the World Wide Web works, how websites are designed and built, or how web browsers interact with the web, this course is the right one for you. Designed specifically for students with little to no experience in web design and development, this course introduces students to the processes involved in designing and developing websites. From a design perspective, we will explore graphic design principles as applied on the web, web accessibility and usability principles, as well as The Web Standards Project and UX design best practices. From a development perspective, we will focus on the three core languages of web development: HTML for content structure, CSS for styling, and Javascript for adding a dynamic layer to your webpages.
NOTES: This course is only available to Non-CS Majors.
EXCLUSIONS: CSCI 1170, INFX 1606

CSCI 1300   Calculus in Computer Science
CREDIT HOURS: 3
This course is an introduction to calculus with a focus on applications to computer science. Students will be exposed to examples from graphics, machine learning, robotics, simulation, and other areas of computer science. Topics covered will include single variable limits, derivatives, integrals, differential equations, and Fourier series.
PREREQUISITES: Nova Scotia Mathematics advanced 11 and 12 or pre-calculus. Pre-calculus is highly recommended.
EXCLUSIONS: MATH 1000, MATH 1215, MATH 1280, MATH 1500

CSCI 1315   Discrete Mathematics for Computer Science
CREDIT HOURS: 3
This course is an introduction to formal reasoning and discrete mathematics with applications to computer science. Students will be introduced to formal notation and reasoning about problems and algorithms. Topics include: sets, sequences, and summations, simple proof techniques, elementary number theory, back-of-the-envelope approximations, combinatorial objects. Applications and relevance of these concepts in computer science will be emphasized.
NOTES: Students should either have some programming experience or be taking an introductory course on programming at the same time as this course.
PREREQUISITES: Nova Scotia Advanced Mathematics 441 or equivalent
EXCLUSIONS: CSCI 2112.03 or MATH 2112.03

CSCI 1503   Programming for Business
CREDIT HOURS: 3
This course provides an introduction to computer programming for business. The focus is on using programming skills to solve business problems related to data cleaning, data entry automation and business data processing. This course takes a case-based approach and is designed to prepare students for the Bachelor of Management and Bachelor of Commerce programs.
EXCLUSIONS: CSCI 1100, CSCI 1101, CSCI 1105, CSCI 1110

CSCI 1615   Concepts in Computing
CREDIT HOURS: 3
This course introduces some key concepts in computing and places them in context with a survey of applications. The skills developed in this course include research, redaction, problem solving and abstraction. The themes covered are the following: Data and storage, operating systems, networking and the Internet, database systems, artificial intelligence and computer graphics. This course is eligible to partially cover the writing requirement for students in the Faculty of Computer Science.
FORMAT: Lecture
FORMAT COMMENTS: Meets partial writing requirement for students in the Faculty of Computer Science.
LECTURE HOURS PER WEEK: 3
CROSS-LISTING: INFX 1615.03

CSCI 1616   Applications in Computing
CREDIT HOURS: 3
This course covers professional aspects of the computing industry. The main themes are: project management, software engineering and computer languages. It explores how technological advances impact the workplace for non-technical people. It also includes a module on proofreading and editing. This course is eligible to partially cover the writing requirement for students in the Faculty of Computer Science.
FORMAT: Lecture
FORMAT COMMENTS: Meets partial writing requirement for students in the Faculty of Computer Science.
LECTURE HOURS PER WEEK: 3
CROSS-LISTING: INFX 1616

CSCI 1800   Computing and Society in History
CREDIT HOURS: 3
This course introduces students to the history of computing from early mechanical devices to the internet. Students will learn to read, write, and discuss scholarly arguments about how computing has shaped society, and how society has shaped computing, over time.
FORMAT: Lecture
EXCLUSIONS: HSTC 1800.03, HSTC 1200.06, HIST 2074.06 HSTC 2200.06, and SCIE 2000.06

CSCI 1801   Case Studies in Computing and Society
CREDIT HOURS: 3
This course introduces students to specific topics in the history of computing. Topics may include algorithms, automation, or information. Students will learn to read, write, and discuss scholarly arguments about how computing has shaped society, and how society has shaped computing, over time.
FORMAT: Lecture
EXCLUSIONS: HSTC 1801.03, HSTC 1200.06, HIST 2074.06, HSTC 2200.06, SCIE 2000.06

CSCI 1900   Academic Foundations for Computer Science Studies
CREDIT HOURS: 3
This course lays the foundations for academic success in computer science studies via development of academic literacies and language skills. In this seminar-style course, students develop the ability to use academic English flexibly, in spoken and written modes, according to the norms of the language practices in computer science studies.

CSCI 2100   Workplace Communications for Computer Science
CREDIT HOURS: 3
This course helps students communicate effectively and with confidence in a variety of workplace settings. Students learn to understand their audience and to deliver accurate, effective messages. Written assignments and oral presentations allow for the development of these skills through practice.
PREREQUISITES: Two of (CSCI 1800.03 or ASSC 1800.03), (CSCI 1801.03 or ASSC 1801.03), and CSCI 1900.03
EXCLUSIONS: COMM 2701.03, COMM 1701.03, COMM 1702.03, MGMT 3602.03

CSCI 2110   Data Structures and Algorithms
CREDIT HOURS: 3
This course provides a comprehensive introduction to data structures and algorithms, including their design, analysis, and implementation. In discussing design and analysis there is a strong emphasis on abstraction. In discussing implementation, general approaches that are applicable in a wide range of procedural programming language are emphasized, in addition to a focus on the details of implementations. Topics include an introduction to asymptotic analysis and a review of basic data structures (stacks, queues, lists, vectors), trees, priority queues, dictionaries, hashing, search trees, sorting (MergeSort, QuickSort, RadixSort) and sets, and graphs (traversals, spanning trees, shortest paths).
PREREQUISITES: CSCI 1101.03 or CSCI 1110.03

CSCI 2112   Discrete Structures I
CREDIT HOURS: 3
See the course description for MATH 2112.03 in the Mathematics section of this calendar.
CROSS-LISTING: MATH 2112.03