First Year in a Computer Science Module @ Western 1 Overview First year computer science students take: Primary 2 course sequence Computer Science 1026A (Computer Science Fundamentals I) and Computer Science 1027B (Computer Science Fundamentals II) 1025A is available for students with programming background that wish to engage in more advanced concepts/challenges Calculus 1000A and Calculus 1201B/1301B/1501B or Linear Algebra 1600A/B Three options: At least one option must be an Arts or Social Science full year credit Linear Algebra 1600A/B could be useful later on in Computer Science, if student plans to take any graphics courses 2 Bioinformatics Bioinformatics first year student must take: Computer Science 1026A (or 1025A) and Computer Science 1027B Calculus 1000A and Calculus 1201B/1301B/1501B or Linear Algebra 1600A/B Biology 1222/1223 Chemistry 1050 One Arts or Social Science option 3 Possible Modules Honors Specialization in Information Systems Honors Specialization in Computer Science Specialization in Computer Science Major in Computer Science Minor in Computer Science Minor in Software Engineering Minor in Applications of Computer Science Minor in Computer Algebra Minor in Game Development Minor in Theoretical Computer Science Honors Specialization in Bioinformatics (Computer Science Concentration) Honors Specialization in Bioinformatics (Biochemistry Concentration) Combined Honors BSc Computer Science/LLB 4 CS1026A: Computer Science Fundamentals I Introduction to Computer Science concepts; fundamentals of programming and design Object-oriented programming Programming skills developed in Java 5 CS1026A Key Concepts Objects and Object-oriented design Primitive types, variables, modularity, classes Problem solving techniques: from problem to programming solution Learn to read code; make use of existing libraries Makes use of a development environment: Dr. Java (similar to Eclipse, NetBeans) Uses a multimedia approach Images, sound, video Representation Processing, e.g. pixel manipulation 6 CS1026A Programming done in Java 3 Lecture hours and 1 2-hour hands on lab per week Evaluation Labs: 10% Programming Assignments: 35% Mid-term: 20% Final: 35% 7 CS1026A Types of assignments Images and pixel manipulation Combine several images into one Morphing one image to another Create sequence of images to produce a “movie” Text manipulation; file processing Process list of students, including photos 8 CS1026A Expected outcomes Basic understanding of the challenges of programming Understanding of basic object-oriented programming concepts Some problem solving ability Basic programming proficiency in Java 9 CS1025A: Computer Science Fundamentals I+ Assumes programming experience (with real programming languages, e.g., C, Java, C++ … - HTML is NOT a real programming language) Ensures students are prepared for CS1027B (i.e., appropriate Java programming concepts and experience) Explores additional concepts Some team problem solving More challenging (and interesting??) assignments Gene matching using downloads from Genbank Monte Carlo simulation of options market 10 CS1025A Expected Outcomes Proficiency in Java, at least at the level of CS1026A Greater awareness of problem solving techniques Broader understanding of the utility of computing in solving problems in different domains 11 CS1027B – Computer Science Fundamentals II Intended for students who may want to go on in Computer Science Much more difficult than CS1026a/b! Main focus: Organization and Manipulation of Data Collections: Lists, Stacks, Queues, Trees Concept, Use, Implementation, Analysis Also: Searching and Sorting Techniques, Analysis of Algorithms (math!) 12 CS1027B Programming done in Java 3 lecture hours and 1 hands-on lab hour per week Evaluation Labs (10%) Programming assignments (35%) Midterm test (10%) Final exam (45%) 13 CS1027B Types of programming assignments: Problem solving using various data structures Puzzles (Sudoku) Games (Bingo, card games) Simulations Comparison of algorithms 14 CS1027B Expected Outcomes Ability to choose an appropriate data structure for solving a problem Ability to do a time analysis of algorithms for solving a problem, and so to choose an efficient one Ability to differentiate between "interface" (design) and implementation of a data structure More familiarity with object-oriented design principles 15 CS1037B – Computer Science Fundamentals II For Engineers Main topic: basic data structures for Electrical Engineering students Electrical Engineering requires C++ Tricky as a first programming language Extremely diverse background among students 2/3 are EE students who do not know "pointers" after completing the ENGSCI 1036 prerequisite 1/3 of software engineering have substantial background (could join the course in mid October). One hour weekly labs are critical. 16 Other First Year Computer Science Courses CS1032A/B Information System and Design Primarily for Management and Organization Students Topics include technological needs of businesses, using/building databases and spreadsheets CS1033A/B Multimedia and Communications Primarily for Arts and Social Science Students Topics include graphics, text, video, sound, website design 17 Courses in Development Multimedia and Communications II A follow-up to CS1033A/B Topics include advanced website design, video and image processing, introductory IP Medical Computing A course covering topics including patient records management, medical imaging, computer aided diagnosis, modeling (epidemiological, kinesiological, etc.), robotic surgery 18 Courses in Development Introduction to the History of Computing and Computers A survey course focusing on the cultural, political, economic, and technological history leading to the development and use of the modern computer The Internet: Triumph of Technology A course examining the great ideas in computing that have contributed to the creation of the Internet Computers: The Expected and the Unexpected A course focused on what computers are capable and incapable of, either now or in the future, contrasting their capabilities against expectations 19 Questions? 20